QA@IT

【MySQL】オペミスによってテーブルが削除された場合のリカバリ方法について

7606 PV

お世話になります。
さっそく質問させていただきます。

環境
MySQL 5.5.27

オペミスによりデータベースを削除してしまった場合は、
以下の手順でリカバリが実施可能だと考えております。

1.データベース指定でバックアップ取得時点のデータをリストア
 mysql -uroot -p [db_name] < all_db.dump
2.バイナリログからバックアップ取得時点のポジション以降のデータベースに対する更新を出力
 mysqlbinlog --position=12345 mysqld-bin.000010 -d [db_name] > binlog.sql
3.binlog.sqlから対象DBのDROPステートメントを削除

4.binlog.sqlを用いてロールフォワードを実施
 mysql -uroot -p < binlog.sql

一方、テーブルを削除してしまった場合は、どのような
リカバリ設計をするのがベストプラクティスなのでしょうか。

データベースを削除してしまった場合のリカバリ方法でも
可能といえば可能なのですが、たった一つのテーブルリカバリのために
データベースをまるっとリカバリするのは得策とは思えません。

皆様がどのようなバックアップ・リカバリを行っているか等の事例をご教示頂ければ幸いです。

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

  • 物理削除させるのが間違え。 DELETE/DROP 権限等を剥奪したユーザーを基本利用すれば誤って必要なデータが飛ぶことはない。 -
  • alice-asahinaさん
    コメントありがとうございます。
    DELETEやDROP、TRUNCATE等のステートメントは権限を分けて利用しております。
    DBAによるメンテナンス等の作業で誤ってデータを削除してしまった際のリカバリ方法は検討しておく必要があると考えており、今回の質問を投げさせて頂きました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。