この記事では主にMysqlのバイナリログを介してデータベースデータを復元する方法を詳しく紹介します。興味のある方は詳細をご覧ください。
さまざまな理由や操作により、Web サイトのデータを誤って削除し、Web サイトのバックアップを作成しなかった結果、損失を被り、Web サイトの運営や収益に悪影響を与える Web サイト管理者がよくいます。そこでこの記事では、Mysql の 2 番目のメカニズム ログ (binlog) を通じてデータを復元する方法を紹介します。
オペレーティングシステム: CentOS 6.5
操作手順:
1. サイトにデータを追加します。 4.データを削除します。6. binlog 機能と基本的な操作を有効にします。 Mysql
の場合、まずMysqlの設定ファイル
でこの機能を有効にし、操作する必要があります。非常に簡単です。 Mysql 設定ファイルを見つけて、そのファイルに「log_bin = mysql-bin」という行を追加します。実際、私がインストールしたさまざまな Mysql 環境では、通常、この機能はデフォルトでオンになっています。 binlog機能をオンにすると、mysqlデータベースディレクトリにmysql-bin.000001、mysql-bin.000002などのファイルが作成されます。これはmysqlのバイナリログファイルです。 mysql が起動されるたび、またはログが手動で更新されるたびに、新しいバイナリ ログ ファイルが作成されます。 まず、mysql コマンドラインで「show master logs」コマンドを使用して、既存の binlog ファイルを表示します。 2. サイトにデータを追加しますWeb サイトの背景記事モジュールに、いくつかのテスト データを追加しました。
3. binlog ログを更新します 以前、mysql の binlog ファイルは mysql-bin.000001 であり、Web サイトのバックグラウンドで 3 つの記事がデータベースに追加されました。次に、binlog ログを更新すると、次のように新しい mysql-bin.000002 ファイルが生成されます:
flush logs; show master logs;
ここで、追加した 3 つの記事をすべて削除します。
5. バイナリログの内容分析Mysql のバイナリログファイルには、先ほどの削除操作などの mysql 操作が記録されます。ログファイルの具体的な内容を見てみましょう。mysql の mysqlbinlog コマンドを使用します:
mysqlbinlog /data/mysql/mysql-bin.000002
set
=utf8 を認識できないため、ここではコマンドに「--no-defaults」を追加しました。誰もがそこから学ぶことができます。以下はログ内容の部分的なスクリーンショットです:
6. 指定されたデータをリカバリします
mysql の binlog ログを通じてデータをリカバリする場合、特定の時点までのリカバリを指定できます。これはサーバーのスナップショット管理に似ています。そこで、削除したばかりの記事を復元したいと思います。削除前の時点を見つけて、その時点に復元します。
mysqlbinlog コマンドの使用方法については、次のように mysqlbinlog ヘルプ コマンドで確認できます。mysqlbinlog –no-defaults –help
ヘルプドキュメントにあるように、ここで時間または指定した場所を指定することでデータを復元できます。例を示します。 次のように、ログ ファイル mysql-bin.000001 を確認してみましょう:
mysqlbinlog -no--defaults /data/mysql/mysql-bin.000001
前の手順を通じて、データを削除する前に mysql-bin.000002 ログ ファイルが生成されたことが分かりました。上の写真で見つけたこの時点に戻ります。
コマンドは次のとおりです: 复制代码 代码如下: 这时我们在看后台,发现刚才删除的三篇文章都已恢复回来了,从而到达我们期望的目的。 总结: 本文和大家分享了如何通过mysql的二进制日志文件恢复数据。但还是要提醒大家,在平时要做好网站数据备份,现在的一些主流CMS建站系统都会内置数据库备份功能,比如这里我用的蝉知系统,数据是网站的命脉,做好数据备份以避免后期不必要的麻烦或损失。 以上がMysqlバイナリログからデータベースデータを復元する方法を詳しく解説(画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。mysqlbinlog –no-defaults –stop-datetime='2017-04-11 09:48:48'/data/mysql/mysql-bin.000001 |mysql –uroot –p123456