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

This entry was posted on 火曜日, 11月 13th, 2012 at 1:12 AM and is filed under Kyototycoon/cabinet, mysql. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Unityによるゲームを公開しております iOS/Android
https://itunes.apple.com/jp/app/lost-knight-3d-action/id900917032
https://play.google.com/store/apps/details?id=com.groundroad.runknight

各種開発支援・機能開発等小さいお仕事などもお請けしております。
unity開発支援, PHPシステム開発, javascript/html5 フロント開発, titanium mobileアプリ開発
お気軽にお問い合わせください
大崎・五反田近郊での対面でのお打ち合わせはいつでも可能です。