回答:
復元する必要のあるbinlogファイルとそこにある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
以下の手順を使用してバイナリログからデータを復元するか、このリンクを使用して復元プロセスを理解してください: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