MySQLのバイナリログからデータを回復

まず、利用可能mysqlのが存在する必要があり、インストール手順は、ここではテーブルではない、との記事前の導入がインストールされています。

1.ビンログをオンにします。

ビンログ、レコードバイナリログを開くことが最初から回復できるようにするには:

猫な/etc/my.cnf

次の行を追加します。

=はmysql-ビンログビン#は、同じディレクトリに/var/lib/mysql/mysql-bin.000000xでbinlogの物理ファイル、などのmysql-bin.indexファイルのbinlogに示し、
 sync_binlog = 1  #提出すべてのものをディスクに書き込ま考えのbinlogは、これは非常に重要な、そうでない場合はオープンで、不整合が生じることがあり、マスタからのデータの時間レプリケーションからショットを呼び出す
 = 1#、だけでなく、XA内政を通って、バイナリログを確実にオープンXA分散トランザクションのサポートinnodb_support_xa実際のデータに一貫性がある
binlog_format = ROW #binlogフォーマットROW、3つのオプション:STATEMENT、ROW、MIXED 
サーバー上のID = 7#はこの1つを設定せずにログだけビンを設定し、これを書かなければならないが言及した、MySQLサービスが異なりますIPが最後、伝え書かれた推薦サーバのエラーが、起動しません

うまく修正した後、MySQLサービスを再起動します。

systemctl再起動mysqld.service

まあ、今のbinlogを開き、あなたはは/ var / libに/ mysqlの中に以下のファイルを見つけることができます。

 

mysqlコマンドライン(mysqlの-uroot -pxxxxxx)への最初のログは、状況を見て:

あなたは現在位置が154で記録するには、このビンログファイル現在使用してMySQL-bin.000001を見ることができ、私は少し操作があった場合、位置は154になり、それぞれのバイナリログのファイルで観察しました。

あなたはまた、いくつかの変数に関連binlogのを見ることができます:

 

2.テストデータ復旧

以下のいくつかのテストデータを追加します。

作成し たデータベースtestbindbを。
使用testbindb;
作成 テーブル test_order(IDのINT10)、プライマリ キー(ID))エンジン= InnoDBテーブルと、
挿入  test_orderの1 )。
挿入  test_orderの2 )。
挿入  test_orderの3 )。
挿入  test_orderの4 )。
インサート test_order 5 )。
挿入  test_orderの6 )。
挿入  test_orderの値が7);

ビンは、テーブルを見て:

 

 そして、このテーブルを削除します。

ドロップ テーブル test_orderを。

その後ビンログ義務が書かれており、バイナリログファイルを再度開きます:

フラッシュログ;

表を見て、彼は消えていました。

 

状態を見てください:

、テストデータを追加するテーブルやその他の操作はmysqlの-bin.000001それに記録されている、削除、すでに使用中の以前のビルドテーブルに相当秒ビンログファイルを、見ることができます。

文書の内容を見てみBINLOG:

我々は手術台が悪用され、削除と仮定し、私たちは、データが削除操作の終了前の状態に復元することができます願っています。

目的を達成するためにmysqlbinlogは順序を使用します。

mysqlbinlogは/ VAR / libに/ mysqlの/ mysqlの- binに。000001  - 開始位置154 --stop-位置2327 | MySQLの-uroot -p

ここで表さは注意するには、2つの場所があるのmysql-bin.000001ファイル回復位置154から2327の間で動作する必要があります。

  1. 絶対パスを使用してバイナリログファイルの場所、それ以外の場合は回復することができないファイルを、見つけることができないと言うだろう
  2. 続く| mysqlの-uroot -pを省略することができない、私は個人的には、ログインする必要性を回復するための時間だと思う、あなたは理解することができます

回復が完了したら、ちょうど背中にそのテーブルを削除:

mysqlbinlogはコマンドは次のパラメータが用意されてい持っていると言われています。 

  1. --start-日時を:指定されたバイナリログに等しいまたはそれ以降のローカルコンピュータのタイムスタンプよりも読み出し
  2. --stop-日時:指定された時刻から読み出しバイナリログは、タイムスタンプの値以下であると言ったように、ローカルコンピュータ
  3. --start-位置は:バイナリログからのスタート位置としてイベントを読み込むための位置を指定します。
  4. --stop-位置は:イベントは終了と位置からバイナリログイベントを読み込むための位置を指定します。

おすすめ

転載: www.cnblogs.com/lihan829/p/11408061.html