kyototycoon dual master & recover by ulog + mysql backup
http://fallabs.com/blog/promenade.cgi?id=18
dual masterはお互いにreplicationするだけで良いみたい。
ulogのコピーは最後の方法で。
終わり。
mysqlバックアップの話。
http://aws.amazon.com/jp/rds/
> 最大5分前まで、保持期間内の任意の時点に DB インスタンスを復元させることができます。自動バックアップの保持期間は、最大35日間まで設定できます。
13.5.8. InnoDB データベースのバックアップと復旧
http://dev.mysql.com/doc/refman/5.1/ja/innodb-backup.html
× mysql enterprise backupってのは商用版でしか使えないそうです。
× mysqlhotcopyはisamのみinnodbではダメ
・停止してバイナリの完全バックアップ
・mysqldump
・バイナリログからの差分復旧
構成は、master – slaveにして、本番参照用slave以外に、
他システムから利用されない予備のslaveを作り、それを定期バックアップすると良い。
この状態であればサーバーを停止して完全なバックアップを取ることもできる。
予備のslaveはデータを直接見たりする管理にも使える。
slaveオプションに、log-bin log-slave-updatesが必要
http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_log-slave-updates
A -> B -> Cと書いてある部分
log-slave-updatesはAでの更新もBのバイナリログに出力
log-binはBだけのものなのでBでは両方必要
日
・バイナリバックアップ:そのまま使えるのでリストアが速い。
・msqldump:バイナリが壊れてる可能性があるので必須
(http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html
slave設定を停止してからdump開始。
mysql> STOP SLAVE SQL_THREAD;
mysql> SHOW SLAVE STATUS; //
mysqldump
–master-data=2 ( CHANGE MASTER TO をコメントにする
( To dump large tables, you should combine the –single-transaction option with –quick. )
slaveとして復帰させたい場合は、SHOW SLAVE STATUSでmaster_log_file と _posを確認しておく必要有り。master-data=1の場合は, dumpに書き込まれる
ここで、バイナリログを更新したいので、FLUSH LOGSする。
mysql> START SLAVE; // 再開
5分毎
・差分バイナリ:FLUSH LOGSで切替、ひとつ前のものをバックアップ
5分前に戻すことはある程度可能。
修復
☆ 起動するとき –skip-slave-start を忘れずに
マスターが壊れたとき
・昇格するスレーブ、他のスレーブにも同じバイナリを全部入れる。
・昇格するスレーブを開始
・スレーブにマスター設定
・バックアップ用のスレーブ設定
スレーブが壊れたとき
・バイナリ入れて、マスター設定
replication howto
http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html
他参考:mysqlbackupツール比較
http://www.submit.ne.jp/1211