「データベースのドロップ」コマンドを使用して削除された mysql データベースを復元するにはどうすればよいですか? このタイプのロールバックを可能にするバイナリログにアクセスできます。
5 に答える
ドキュメンテーションは最悪です。DROP DATABASE が回復可能であることをほのめかしていますが、奇妙な状況でのみhttp://dev.mysql.com/doc/refman/5.0/en/binary-log.htmlに慣れていません
Docs によると、バイナリログは、特定の参照ポイントに基づいて実行される一連のコマンドにすぎません。そのため、「DROP DATABASE」を行ったときに、「ああ、彼はデータベースをドロップしています。念のため今すぐバックアップする必要があります」という代わりに、最後のバイナリログに「DROP DATABASE」を書き込むだけです。回復は、テープを逆方向に再生するほど単純ではありません。
行う必要があるのは、データベースを最新の既知の正常な状態から回復し、その回復ポイントと DROP コマンドの間に発生したバイナリログを適用することです。
http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html
どのバイナリログを使用するかを決定する方法は不明です。
ファイル システムの完全バックアップに勝るものはありません。そして、少なくともこれらをフォールバックする必要があります。
データベースのバックアップがない場合は、運が悪いです。データベースの削除は永続的です。
バックアップがあると仮定すると、バイナリログにはそのバックアップ以降に発生したものが保持されます。mysqlbinlog ユーティリティを使用すると、次のようなことができます。
mysqlbinlog the_log_file > update.sql
そのファイルを編集して、再度実行したくないもの (drop database ステートメントなど) を削除する必要があると思いますが。
幸運を!
Kent Fredric の回答を補完drop database
するために、データベースの作成以降にバイナリ ログを使用している場合は、コマンドをロールバックできます。
バックアップもパーティーもありません。
だから私は答えます:
二度と同じ状況にならないようにするには、超シンプルで超強力な automysqlbackup をインストールします (Linux を使用している場合)。
sudo apt-get install automysqlbackup
それを構成します。
須藤ナノ /etc/default/automysqlbackup
次に、そのコンテンツをドロップボックス、ubuntu などに自動的にアップロードします。
それから幸せに生きてください:)