なんと!
運用しているサイトのスレーブ側のレプリケーションが2週間ほど前から止まっていました!!
止まっていたことよりも、それに2週間も気がつかない自分にショックでした・・・
とにかく、くよくよしていてもしかたがないのでとりあえず修復。レプリケーションを再開させます。
原因追及として手がかりになるのは、スレーブ側で出ていたエラーメッセージで、『あるテーブルのidフィールドはユニークなのに重複しているものをインサートしようとしているよ!』ってことでした。なにやら、マスター側でのmigrationが原因なのでしょうか・・・
とりあえず、レプリケーションはバックアップの要素も兼ねているの、早々と復旧させます。
ここから、作業log
■マスター側で現在のポジションを確認
$ mysql -u -p
mysql> show master status;
+—————-+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————-+———-+————–+——————+
| db1-bin.000009 | 288992 | | |
+—————-+———-+————–+——————+
こんな、感じ。
■スレーブ側でレプリケーションを停止
$ mysql -u -p
mysql> stop slave;
■現在のポジションで上書き
mysql> change master to master_host=’db1.matatavi.com’,
master_user=’接続ユーザー’,
master_password=’接続パスワード’,
master_log_file=’db1-bin.000009′, #show master statusの内容
master_log_pos=288992; #show master statusの内容
■情報が保存されたか確認
$ cat relay-log.info
./ap1-relay-bin.000001
37784
db1-bin.000009
326731
■スレーブの起動
$ mysql -u -p
mysql> start slave;
これでエラーがでなければ修復完了です。やれやれ・・・
後は、なぜレプリケーションが止まっていたかの追跡を行っていく予定です。

