« 東大というブランド | メイン | 通販をはじめる。 »

mysqlがミスってしまった場合の対象方法

         

mysqlがミスってしまった場合の対象方法

DB-SERVER-MASTER

DB-SERVER-SLAVE

の単純な2者の関係で組んでいるのだが コピー時に変更差分を受け付けてしまった
おかげでスレーブのスタートに失敗している。
これではバックアップとかもままならないので、スレーブの復帰を目的とした
設定を行う。

MySQLのバージョンは 前回ソースからビルドしたものを利用します。
5.0.44(つまりバージョン変更はなしって事で、大まかなバージョンが
一致していれば大方大丈夫のようです。)

まずは何はともあれ、バックアップ
mysql> mysqldump --default-character-set=utf8 -u root DBNAME1 >dump0315
mysql> mysqldump --default-character-set=utf8 -u root DBNAME2 >dump2-0315

まずは古いバイナリーログはどの道いらなくなるので捨てる。

チェックする。
mysql> SHOW BINARY LOGS

+------------------+------------+
| Log_name | File_size |
+------------------+------------+
| mysql-bin.000012 | 1073742766 |
| mysql-bin.000013 | 1073741907 |
| mysql-bin.000014 | 1073742236 |
+------------------+------------+

mysql> PURGE MASTER LOGS TO 'mysql-bin.000013';
これで12まで消える。

日時以前だとこの方法を利用する。
mysql> PURGE MASTER LOGS BEFORE '2008-03-01 12:00:00';

MYSQLを読み専用モードロックを実施
mysqlコンソール上で
FLUSH TABLES WITH READ LOCK;

binlogの位置を確認
SHOW MASTER STATUS;

ここで出てくるファイルの位置と、ポジションが後のCHANGE MASTER TO構文で
利用するので控えて置く。

tar で固めてスレーブサーバに移動
tar -cvf /var/tmp/mysql-flashtable.tar /var/lib/mysql/

テーブルロックの解除
UNLOCK TABLES;
テーブルロックはファイルの取得が完了してからで問題ない。
そのためこの作成はかなり短時間で実行可能だと思う。

容量がでかいとかかるので要注意
scp /var/tmp/mysql-flashtable.tar DB-SERVER-SLAVER:/var/tmp/

CHANGE MASTER TO
master_host = DB-SERVER-MASTER,
master_user = replicator,
master_password = PASSWORD,
MASTER_LOG_FILE = 'mysql-bin.000013' ,
MASTER_LOG_POS = 365473474;

POSとファイルは、READフラッシュを実行した際に取得したポイントを確認。

参考になりました。
http://www.irori.org/doc/mysql-rep.html

         

トラックバック

このエントリーのトラックバックURL:
http://www.ostl.net/blog/mt-tb.cgi/305

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年03月16日 03:29に投稿されたエントリーのページです。

ひとつ前の投稿は「東大というブランド」です。

次の投稿は「通販をはじめる。」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
MT3系