概要
masterdb.example.com | 10.0.0.1 | MySQL 5.5 |
slavedb01.example.com | 10.0.0.2 | MySQL 5.5 |
があって既にレプリケーション環境は出来ている状態です。
ここに2台目のスレーブサーバー
slavedb02.example.com | 10.0.0.2 | MySQL 5.5 |
を追加する手順です。
- masterdbのMySQLデーモンは止めない(無停止)。
- slavedb01はメンテナンス中はスレーブ機能は停止する。
手順
1. slavedb01に対しての参照をmasterdbへ向ける
レプリケーションが停止するので参照をスレーブではなくマスターに向け直します。
2. slavedb01のレプリケーションを停止
STOP SLAVE;
3. slavedb01でMaster_Log_File、ポジション情報確認
show slave status\G
必ず、STOP SLAVE;
後に行う。
Master_Log_File: mysqld-bin.000391 Read_Master_Log_Pos: 637218407 Slave_IO_Running: No Slave_SQL_Running: No
になっていることを確認します。
以下の手順は上記のファイル名、ポジション番号を使用します。
4. masterdbへslavedb02用のレプリケーションユーザを作成
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.0.3' IDENTIFIED BY 'password';
5. slavedb01からslavedb02へデータコピー
slavedb01の/var/lib/mysql
以下をそのままslavedb02にコピーします。
6. slavedb01のレプリケーション再開
データコピーが完了したら、スレーブを再開させます。
START SLAVE;
一応ここでSHOW SLAVE STATUS¥G
で同期されているか確認しておきます。
問題がなければ同期がマスターに追いつきます。
7. slavedb02のレプリケーション設定
CHANGE MASTER TO MASTER_HOST = '10.0.0.1',MASTER_USER = 'replication',MASTER_PASSWORD = 'password',MASTER_LOG_FILE = 'mysqld-bin.000391',MASTER_LOG_POS = 637218407;
8. slavedb02のレプリケーション開始
レプリケーションを開始します。
START SLAVE;
SHOW SLAVE STATUS¥G
で同期されているか確認します。
以上でスレーブサーバー追加作業は完了です。
9. masterdbに対しての参照をslavedb01, slavedb02に向け直す
手順1で参照をマスターに向けていましたが、スレーブに向け直します。