ふたつの川うるおう日記
2005-12-24 (Sat)
_ [Server] 双方向MySQLレプリケーション
MySQLだとお手軽にレプリケーションが出来るわけですが、2台で双方向でも出来るんだね。ただし、非同期式なので、双方に更新できるようにする場合は使うクエリに注意が必要だけど、ロードバランサー使ってホットスタンバイで用意しておいて切り替えるとかする場合には有用っぽい。
んで、構築するのはそんなに問題無いんだけど、片方のHDDがクラッシュしたと想定してデータコピーからやり直すのにハマりました。マスタとする方も復旧する方のスレイブになっているので、そのデータを復旧するサーバにコピーした後、起動するとスレイブ用のログを探しに行ってしまうのでした。
解決方法は、スナップショット取る時にスレイブ設定を一旦、停止・リセットしてからやればOK。
- Server1 - terminal 1
SLAVE STOP; -- スレイブ設定停止 RESET SLAVE; -- スレイブ設定リセット FLUSH TABLES WITH READ LOCK; -- スナップショット取るためにテーブルロック SHOW MASTER STATUS; -- ログファイル名とポジション記録
- Server1 - terminal 2
tar czf mysql.`date -I`.tar mysql # スナップショット化 scp mysql.`date -I`.tar.gz root@server2: # Server2へコピー
- Server1 - terminal 1
UNLOCK TABLES; -- テーブルロック解除
- Server2
- 通常の手順でスレイブ化
CHANGE MASTER TO ... (省略) -- Server1のスレイブに
- Server1
- 通常の手順でスレイブ化
CHANGE MASTER TO ... (省略) -- Server2のスレイブに
[ツッコミを入れる]
[]


