バイナリログからデータを復元する方法


11

バイナリファイルからファイルと写真を復元するにはどうすればよいですか?

回答:


7

復元する必要のあるbi​​nlogファイルとそこにあるbinlogファイルの数を知っていますか?

mysqlbinlogユーティリティを使用して、binlogファイルの内容を表示できます。

それが単一のファイルである場合は、以下を使用して回復できます。

mysqlbinlog /var/lib/mysql-bin.000016 | mysql uroot pReset123

複数のファイルの場合は、すべてのコンテンツを1つの.sqlファイルに抽出して、直接復元します。

mysqlbinlog /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

allbinlof.sqlファイルに2番目のbinlogコンテンツを追加するには、以下のコマンドを使用します。

mysqlbinlog /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql

mysqlbinlogのオプションを使用して特定のステートメントを除外することもできます。オプションについては、以下をお試しください:

mysqlbinlog --help

4

以下の手順を使用してバイナリログからデータを復元するか、このリンクを使用して復元プロセスを理解してください:MySQLバイナリログの復元

まず、最新のバックアップからデータベースを復元します

mysql -u username -ppassword database_name < dump.sql

次に、次のいずれかを実行します。

  • バイナリログから残りのデータを復元します。

    MySQLサーバーで実行するバイナリログが複数ある場合、安全な方法は、サーバーへの単一の接続を使用してすべてを処理することです。

    mysqlbinlog mysql_bin.000001 | mysql -u root -ppassword database_name
    mysqlbinlog mysql_bin.000002 | mysql -u root -ppassword database_name

    または:

    mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
  • 時間に基づいてデータを復元する

    mysqlbinlog --start-datetime="2005-04-20 10:01:00" \
                --stop-datetime="2005-04-20 9:59:59" mysql_bin.000001 \
                | mysql -u root -ppassword database_name
  • 位置に基づいてデータを復元する

    mysqlbinlog --start-position=368315 \
                --stop-position=368312 mysql_bin.000001 \
                | mysql -u root -ppassword database_name

2
ドキュメントに記載されているように、複数のバイナリログを復元する最初の例は、特に安全ではありません。
ルーベン

2

-vオプションを使用して、.sqlファイルを読み取り可能な形式にすることができます。

例えば

mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.