■移行前すべてslaveの状態を確認
すべてのスレーブがリレー ログ内のクエリを処理したかどうかを確認してください。
それぞれのスレーブでは、STOP SLAVE IO_THREAD を発行して、Has read all relay log を確認できまるまで、
SHOW PROCESSLIST の出力をチェックします。
すべてのスレーブでこれが確認できたら、これらを新たな設定として構成できます。
show slave status\G
・readMasterPostion,execMasterPositionは同じであること
■slaveをマスターに
・log-slave-updateは無効であること
stop slave
RESET MASTER
■マスター変換
stop slave;
reset slave;
CHANGE MASTER TO
MASTER_HOST='',
MASTER_USER=''
MASTER_PASSWORD=''
MASTER_PORT=
MASTER_LOG_FILE='?'
MASTER_LOG_POS=?;
start slave;
show slave status\G;
※移行じゃないの場合:
CHANGE MASTER では、Slave1 のバイナリ ログ名や読み込み先のバイナリ ログ位置を指定する必要はありません。
※移行じゃないの場合:
CHANGE MASTER のデフォルトでは、一番初めのバイナリ ログ、そして位置は 4 です。
==>とりあえず、MASTER_LOG_FILEとMASTER_LOG_POSを指定する方が無難
■A(master)ー>B(master+slave)ー>C(slave)
Bでlog-slave-updateを有効にする必要、じゃなと、binログに内容を出力しない
■安全措置
・結果を予測できないない、skip-slave-startで起動時slaveを無効にして、
readMasetLogPosition,execMasterLogPositionを記録する
・relay-bin.infoで上記の情報もある。