[前][次][番号順一覧][スレッド一覧]

mysql:12908

From: "Kenta Hashimoto" <"Kenta Hashimoto" <kem@xxxxxxxxxx>>
Date: Mon, 3 Apr 2006 16:42:00 +0900
Subject: [mysql 12908] バイナリログからのデータの復旧

橋本です。
いつも、お世話になっております。

バイナリログからのデータの復旧に関して質問です。
バイナリログから、データを復旧する場合、レプリケーションの
Exec_Master_Log_Posを利用して、途中から適用するできますでしょうか?


今、DBのバックアップを取る仕組みを構築しています。

誤ってデータを消してしまったなどの障害が起きた場合に、
一日に一度とってある、mysqldumpしたファイルを、mysqlに流し込む
形で、復旧するところまではできています。

これに加えて、さらに、バックアップをとった後に走ったクエリからも、
データを復旧したいと思っているのですが、そこで詰まっています。
アドバイスをいただけるとありがたいです。


バックアップは、以下の手順を自動化して、とっています。

1.レプリケーションのスレーブを、STOP SLAVEする。
2.FLUSH TABLESする
3.relay-log.info の、Master_Log_Fileと、Exec_Master_Log_Posを保存する
4.mysqldumpで、バックアップを取る。
5.レプリケーションを再開する。

これで、データを消してしまった場合などには、このダンプファイルの時点の
データまでは復元できます。
ダンプファイルの時点まで復元した後、バイナリログからも復元したいのですが、
その場合は、ダンプファイルを取った時点よりも後のものだけを適用したいのです。

mysqlbinlogには、positionという引数があるようなのですが、これは、
バイナリログ内での場所であって、レプリケーションのExec_Master_Log_Posとは
別のもののようです。


こういう場合は、皆さんはどうしていらっしゃるのでしょうか?

・Exec_Master_Log_Posをもとにmysqlbinlogを使用する方法がある?
・バックアップを取るときに、マスターを一度とめて、その時点でのバイナリログの場所を、
 なんらかの方法で記録する?
・バックアップを取るときに、バイナリログのファイルを新しいものにする方法がある?

などのことを考え、調べたのですが、結局見つかりませんでした。

よろしくお願いいたします。

[前][次][番号順一覧][スレッド一覧]

->   12908 2006-04-03 16:42 ["Kenta Hashimoto" <k] バイナリログからのデータの復旧          
     12909 2006-04-03 17:01 ┣["F.Y" <fumi_sby@xxxx]                                       
     12910 2006-04-03 17:36 ┃┗["Kenta Hashimoto" <k]                                     
     12912 2006-04-04 18:00 ┗[Yasufumi Kinoshita <]                                       
     12916 2006-04-05 16:39  ┗["Kenta Hashimoto" <k]                                     
     12924 2006-04-12 15:29   ┗[Katsuyuki Sakai <sak]                                   
     12929 2006-04-19 17:40    ┗[Katsuyuki Sakai <sak]                                 
     12930 2006-04-20 11:28     ┗["Kenta Hashimoto" <k]