ndbクラスタがまだこわいので、とりあえず安定稼働が見込める段階になるまで、レプリケーションで対応しようとおもい、とりあえずMySQL4.1.20x2台でレプリケーションを実装してみました。僕はびびりです。。。
なので、手順を記録します。
既にうちの環境の場合、1台のサーバでMySQL4.1.20が稼働しているので、このマシーンをマスターにし、2代目のマシーンにスレーブの設定をすることにしました。最終的に以下のような構成にします。
hoge1 マスター
hoge2 スレーブ (バックアップとしても使う)
【手順】
・hoge1のmy.cnfに以下の設定がされているか確認をします。もしされていなければ、以下の一行を[mysqld]セクションに追加しmysqldを再起動してください。
[mysqld]
log-bin
・hoge1のデータベースのスナップショットをとります。
hoge1$ mysql -u
mysql > exit;
hoge1$ cd $MYSQL_DATA_DIR
hoge1$ tar zcf mysql.tar.gz .
hoge1$ mysql -u
mysql >exit;
・hoge1のmy.cnfに以下の設定をします。設定をしたらmysqldを再起動してください。
[mysqld]
server-id=1
・以下のコマンドを実行し内容を控えておいてください。
hoge1$ mysql -u
+—————–+———-+—————+——————–+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————–+———-+—————+——————–+
| db1-bin.000004 | 158304 | | |
+—————–+———-+—————+——————–+
★Fileと、Positionの値を保存しておいてください。
・ここで作成したmysql.tar.gzをhoge2へ移し、データディレクトリに展開します。
hoge2$ cd $MYSQL_DATA_DIR
hoge2$ tar zxf mysql.tar.gz
hoge2$ chown -R mysql.mysql .
・hoge2のmy.cnfに以下の設定をします。
[mysqld]
server-id=2 #以降スレーブサーバを追加する際には、それぞれのサーバのmy.cnfのここの部分を3,4,5と増やしていってください。
・hoge2のサーバを起動します。
hoge2$ service mysqld start
・hoge2にスレーブとしての設定を行います。
hoge2$ mysql -u
-> MASTER_HOST=’マスターサーバのURL’,
-> MASTER_USER=’接続ユーザ’,
-> MASTER_PASSWORD=’ユーザのパスワード’,
-> MASTER_LOG_FILE=’Fileの内容’,
-> MASTER_LOG_POS=Positionの内容;
・レプリケーションを開始します。
hoge2$ mysql -u
mysql> quit;
・これでレプリケーションの設定は完了です。実際にマスターDBに何か書き込みを行い、その内容がスレーブに反映されているか、確認をとってみてください。

