バックアップとバイナリログを組み合わせてデータを復元します。
シナリオ: 昨夜すべての準備を行った後、今朝ユーザーは誤ってテーブルを削除してしまいました。
解決策: 元の運用環境で直接復元することはお勧めできません。データベース全体とログを別のマシンに復元してから、運用環境にインポートすることをお勧めします。 (私の場合はローカルです。本番環境はローカルであってはなりません)
マスター ステータスを表示するには、必要な binlog フォワードをバックアップします
-- binlog ログを忘れずにコピーしてください「itpuxdb-binlog.000003」に binlog イベントを表示します'; mysqlbinlog itpuxdb-binlog.000003 |grep "DROP TABLE"
mysqlbinlog itpuxdb-binlog.000003 |grep "itpuxfg1" (
ログには 2 つの異なるバージョンがあることに注意してください。区別してください
)
デモ:
itpux ライブラリを削除します。 データベース itpux; 復元: 最初にデータベースを作成します:
mysql> -- 条件が明確でない場合元のデータベースで show create database mysql; を実行することをお勧めします。 show tables;
-- binlog ログによる増分リカバリ テーブル削除前[root@mysqldb binlog]# mysqlbinlog -vv --start-position=219 --stop-position=913 --database=itpux itpuxdb -binlog.000001 >sa.sql-- これを復元します テーブルを元のデータベースに置きますまず別のデータベースからテーブルをバックアップしますmysqldump -uroot -p itpux itpuxfg1 > sa.sql本番データベースを直接復元します (元のデータベースのテーブルは削除されています)mysql -uroot -p itpux mysql> select * from itpuxfg1;1) このテーブルをソース データベースに復元しますmysqldump -uroot -p itpux itpuxfg1 > ;sa.sql
関連する推奨事項:
mysql で削除されたデータベースをバックアップなしで復元する方法 MySQL レプリケーション + スナップショットリカバリの誤削除操作の実験テスト
以上がMySQL はバックアップとバイナリログを組み合わせて、誤って削除された操作データを復元しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。