サーバのHDDを増設・増強するため、構築し直す。
とりあえず、やることを列挙してまとめてみた。
■既存サーバデータの退避
1.MySQLのデータをバックアップする。
mysqldumpコマンドで全ユーザ全データ対象でバックアップすること。
2.以下ファイルをバックアップしておくこと。
root:rootアクセス権の設定ファイルなので同じ場所にコピーしておけばそのまま使える
/etc/my.cnf
/etc/php.ini
/etc/httpd/conf/httpd.conf
postfix, dovecotの設定ファイルも同じく
3.メディアファイルをバックアップ
4.サイト用のソフトやHTMLファイル
■再構築
1.CentOSを再インストール
LVボリュームでパーティションを準備 (あとでパーティション変更・増量等可能になる)
ユーザ名、IPアドレス等は以前の物と同じにすること
2. Mysql, PHPのインストール
3.設定ファイルを上書き(元ファイルは_defaultなどして退避すること)
4.mysql.dumpバックアップファイルをリストア
5.CentOSのファイアウォール設定 以下ポートを許可すること
80 tcp/udp (For HTTP)
22 tcp/udp (For SSH)
5900 tcp/udp (For VNC)
3306 tcp/udp (For Mysql)
110 tcp/udp (ForPOP3)
143 tcp/udp (ForIMAP4)
25 tcp/udp (ForSMTP)
6.SSH鍵ファイル作成、鍵をクライアントマシンに読み込ませる。
7.VNCサーバ動作させる設定。サーバ再起動後も動作するようにする。
(パスワードは8文字しか入力できないがそれ以上入力すればちゃんと読み込まれているので長いパスワードにすること)
8. HP用、サービス用ファイルを元あった場所にコピー
<確認>
1. ホームページアクセスできるか?
ファイアウォールの80番ポート許可していなければNGになるので注意
2. VNCクライアントでリモートデスクトップ使えるか
ファイアウォールの5900番ポート許可していなければNGになるので注意
3. SSHで鍵を使用して接続できるか?
ファイアウォールの22番ポート許可していなければNGになるので注意
4. データベース
スポンサードリンク
2012年6月18日月曜日
2012年6月9日土曜日
MySQLパーティショニング
MySQLは、1つのテーブルに大量にデータを登録すると、
検索するときにものすごく時間がかかる。
これは、全部のデータをまず読み込んでから検索するからとのこと。
1つのテーブルの中でインデックスを使うと多少は検索速度向上するが、
大量のデータになるとやはり遅くなる。
大量のデータが登録されることが事前に分かっているのであれば有効なのが、
「パーティショニング」という機能だ。
その設定方法についての備忘録。
※ Noをインデックスとし、Noが0から2000まであるとする。
このとき、Noが500毎にパーティションを作成する。
mysql > create table テーブル名
mysql > (
mysql > No Decimal(5,0)
mysql > , Name varchar(128)
mysql > , Age int
mysql > , KEY Index1 (No)
mysql > constraint KEY_NAME primary key(No)
mysql > )
mysql > ENGINE=MyISAM DEFAULT CHARSET=utf8 PARTITION BY RANGE(No))
mysql > (
mysql > PARTITION p0 VALUES LESS THAN (500)
mysql > PARTITION p1 VALUES LESS THAN (1000)
mysql > , PARTITION p2 VALUES LESS THAN (1500)
mysql > , PARTITION p3 VALUES LESS THAN MAXVALUE
mysql > )
以上
検索するときにものすごく時間がかかる。
これは、全部のデータをまず読み込んでから検索するからとのこと。
1つのテーブルの中でインデックスを使うと多少は検索速度向上するが、
大量のデータになるとやはり遅くなる。
大量のデータが登録されることが事前に分かっているのであれば有効なのが、
「パーティショニング」という機能だ。
その設定方法についての備忘録。
※ Noをインデックスとし、Noが0から2000まであるとする。
このとき、Noが500毎にパーティションを作成する。
mysql > create table テーブル名
mysql > (
mysql > No Decimal(5,0)
mysql > , Name varchar(128)
mysql > , Age int
mysql > , KEY Index1 (No)
mysql > constraint KEY_NAME primary key(No)
mysql > )
mysql > ENGINE=MyISAM DEFAULT CHARSET=utf8 PARTITION BY RANGE(No))
mysql > (
mysql > PARTITION p0 VALUES LESS THAN (500)
mysql > PARTITION p1 VALUES LESS THAN (1000)
mysql > , PARTITION p2 VALUES LESS THAN (1500)
mysql > , PARTITION p3 VALUES LESS THAN MAXVALUE
mysql > )
以上
登録:
投稿 (Atom)