MySQLのレプリケーションのスレーブに、1台わざと遅らせたDBサーバを作りたいと思います。

【目的】万が一人為的オペレーションミスを起こし、○分前に戻りたいという事を実現したい。

方法は色々あると思いますが、見つかる限り多くの手段を教えて頂けませんでしょうか。
2つ例を挙げますが、全く同じというわけでなければ類似のアイディアでも大歓迎です。

例1. GREE Labsから配布されているMySQLレプリケーション遅延パッチを使う
問題点としては最新のMySQLではなく少し古い物なので、うまく調整する必要がある
http://labs.gree.jp/Top/OpenSource/MySQL_Slave_Delay.html

例2. 指定時間おきにLVM Snapshotを取っておく
一定時間おきにLOCK TABLESまたはmysqldを落としてSnapShotを取り続ける
http://labs.unoh.net/2006/09/lvm_xfs_mysql.html
http://nackedape.blogspot.com/2009/06/mysql.html

このようなタイムマシン的な要望を実現出来る方法をご存じ/ひらめいた方、お力を貸して頂けると幸いです。

回答の条件
  • 1人2回まで
  • 登録:2009/11/05 23:40:10
  • 終了:2009/11/12 23:45:02

回答(1件)

id:snow_leopard No.1

snow_leopard回答回数294ベストアンサー獲得回数222009/11/08 01:40:16

ポイント60pt

だったら、30分ごとにmysqlのディレクトリごとrsyncで同期をとるでもいいんじゃないですか?

id:ko-takada

確かに。rsyncを使えば数GB程のDBなら事前にLOCK_TABLES;を打っておけば問題なく出来ますね。

数GB、数十GB級の容量の場合にそれぞれ使えるロールバックの案をお持ちの方いらっしゃいましたらご教示頂けますでしょうか。

2009/11/11 23:27:15
  • id:khazad-Lefty
    その時間差は固定して構わないのもなのでしょうか?
    たとえば60秒とするなら、それ以降の変更は全て取り消されるし、連動停止がその60秒を経過すると完全におじゃんになります。
    そのあたり「確実に見切れる」というのであればOKかと。
    実際例1はそれを見切った運用を前提としているようなので。

    MS-SQLServerならトランザクションログから時間指定で復旧できるんで、
    復旧時間との兼ね合いを重視しないのならかなり柔軟な対応が可能なんですが…。

  • id:ko-takada
    固定で問題ありません。遅延は30分にしたいと考えています。
    何卒よろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません