8

「データベースのドロップ」コマンドを使用して削除された mysql データベースを復元するにはどうすればよいですか? このタイプのロールバックを可能にするバイナリログにアクセスできます。

4

5 に答える 5

9

ドキュメンテーションは最悪です。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

どのバイナリログを使用するかを決定する方法は不明です。

ファイル システムの完全バックアップに勝るものはありません。そして、少なくともこれらをフォールバックする必要があります。

于 2008-09-18T00:15:01.200 に答える
5

データベースのバックアップがない場合は、運が悪いです。データベースの削除は永続的です。

于 2008-09-18T00:02:48.140 に答える
5

バックアップがあると仮定すると、バイナリログにはそのバックアップ以降に発生したものが保持されます。mysqlbinlog ユーティリティを使用すると、次のようなことができます。

mysqlbinlog the_log_file > update.sql

そのファイルを編集して、再度実行したくないもの (drop database ステートメントなど) を削除する必要があると思いますが。

幸運を!

于 2008-09-18T00:20:20.533 に答える
0

Kent Fredric の回答を補完drop databaseするために、データベースの作成以降にバイナリ ログを使用している場合は、コマンドをロールバックできます。

于 2015-02-09T14:58:32.390 に答える
0

バックアップもパーティーもありません。

だから私は答えます:

二度と同じ状況にならないようにするには、超シンプルで超強力な automysqlbackup をインストールします (Linux を使用している場合)。

sudo apt-get install automysqlbackup

それを構成します。

須藤ナノ /etc/default/automysqlbackup

次に、そのコンテンツをドロップボックス、ubuntu などに自動的にアップロードします。

それから幸せに生きてください:)

于 2013-10-03T09:11:29.900 に答える