MySQLバイナリログを介してデータベースデータを復元する方法の詳細な説明

MySQLバイナリログを介してデータベースデータを復元する方法の詳細な説明

ウェブサイト管理者は、さまざまな理由や操作により、ウェブサイトのデータを誤って削除したり、ウェブサイトのバックアップを怠ったりすることが多く、その結果、損失を被り、ウェブサイトの運営や収益に悪影響を与えることもあります。そこでこの記事では、MySQL のバイナリ ログ (binlog) を通じてデータを回復する方法を紹介します。

システム環境:

オペレーティング システム: CentOS 6.5 X64 (仮想マシン);

WEB サービス: PHP+Mysql+apache;

ウェブサイト: 利便性のため、Chanzhi システムを使用してローカルで直接 DEMO サイトを構築します。

手順:

1. binlog機能と基本操作を有効にします。

2. サイトにデータを追加します。

3. binlog ログを更新します。

4. データを削除します。

5. Binlog ログコンテンツ分析。

6. 指定されたデータを復元します。

1. binlog機能と基本操作を有効にする

MySQL の binlog ログ機能を使用するには、まず MySQL 設定ファイルでこの機能を有効にする必要があります。操作は非常に簡単です。 MySQL 構成ファイルを見つけて、ファイルに「log_bin = mysql-bin」という行を追加します。実際、私がインストールしたさまざまな Mysql 環境では、この機能は通常デフォルトでオンになっています。

binlog 機能をオンにすると、mysql データベース ディレクトリに mysql-bin.000001、mysql-bin.000002 などのファイルが作成されます。これらは mysql のバイナリ ログ ファイルです。 MySQL が起動されるたび、またはログが手動で更新されるたびに、新しいバイナリ ログ ファイルが作成されます。

まず、mysql コマンドラインで「show master logs」コマンドを使用して、既存の binlog ファイルを表示します。

2. サイトにデータを追加する

ウェブサイトのバックエンドの記事モジュールに、いくつかのテストデータを追加しました。

3. binlogログを更新する

以前、mysql binlog ファイルは mysql-bin.000001 であり、Web サイトのバックグラウンドで 3 つの記事がデータベースに追加されました。ここで、binlog ログを更新すると、次のように新しい mysql-bin.000002 ファイルが生成されます。

ログをフラッシュする。

マスターログを表示します。 

4. データの削除

ここで、先ほど追加した 3 つの記事を削除します。

5. Binlogログコンテンツ分析

Mysql のバイナリ ログ ファイルには、先ほどの削除操作など、mysql の操作が記録されます。ログ ファイルの具体的な内容を見てみましょう。

mysql の mysqlbinlog コマンドを使用します。

 mysqlbinlog /data/mysql/mysql-bin.000002

注: ローカルの mysqlbinlog は binlog 構成の default-character-set=utf8 を認識できないため、ここではコマンドに "--no-defaults" を追加して動作するようにしました。これを教訓として受け止めてください。

以下はログ内容の部分的なスクリーンショットです。

6. 指定されたデータを復元します。

MySQL の binlog ログを通じてデータを復元する場合、特定の時点へのリカバリを指定できます。これは、サーバーのスナップショット管理に少し似ています。したがって、削除した記事を復元したい場合は、削除前の時点を見つけて、その時点に復元することができます。

mysqlbinlog コマンドの使用方法については、次のように mysqlbinlog help コマンドで確認できます。

mysqlbinlog –デフォルトなし –ヘルプ

ヘルプドキュメントに記載されているように、時間または場所を指定してデータを復元できます。ここでは、時間を指定する例を使用して説明します。

次のように、ログ ファイル mysql-bin.000001 を確認しましょう。

mysqlbinlog -no--defaults /data/mysql/mysql-bin.000001 

前の手順から、データを削除する前に mysql-bin.000002 ログ ファイルを生成したことがわかっているので、この時点まで復元するだけで済みます。この時間は上の図で確認しました。

コマンドは次のとおりです。

次のようにコードをコピーします

mysqlbinlog –no-defaults –stop-datetime='2017-04-11 09:48:48' /data/mysql/mysql-bin.000001 |mysql –uroot –p123456

この時、背景を確認したところ、先ほど削除した3つの記事が復元されており、目的を達成できました。

要約:

この記事では、MySQL バイナリ ログ ファイルを通じてデータを回復する方法について説明します。しかし、私は依然として、平常時にウェブサイトのデータをきちんとバックアップすることを皆さんに思い出させたいと思います。現在主流の CMS ウェブサイト構築システムには、ここで使用している Chanzhi システムのように、データベース バックアップ機能が組み込まれているものもあります。データはウェブサイトの生命線です。後で不要なトラブルや損失を避けるために、データをきちんとバックアップしてください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • mysql バイナリ ログ ファイル データベースの復元
  • MySQLデータベースのログファイル(binlog)を自動的に復元する方法を説明します
  • MySQL の binlog ログと、binlog ログを使用してデータを回復する方法を説明します。
  • MySQLはデータ復旧を実装するためにbinlogログを使用する
  • ログファイルからMySQLデータを復元する方法を教えます

<<:  Linux での SSH 非秘密通信の実装

>>:  vue3 のコンポーネントの互換性のない変更の詳細な説明

推薦する

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

MySQL innodb例外の修復に関する経験の共有

テスト用の MySQL ライブラリのセット。以前使用されていたバージョンは、centos6 のデフォ...

MySQLクエリ結果をCSVにエクスポートする方法

MySQL クエリ結果をcsvにエクスポートするには、通常、php を使用して mysql に接続し...

npmとcnpmを混在させる際の落とし穴の詳細な説明

目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...

インラインブロックを使用した複数のdiv間の間隔はプログラミング方法とは異なります

inline-block について学習しているときに、境界線と inline-block を持つ複数...

VMware を使用して PXE バッチ インストール サーバーをテストする詳細なプロセス

目次1. 準備1. 環境を整える2. インストール方法3. ネットワークカードの構成2. インストー...

docker nginxコンテナの起動とローカルへのマウントの詳細な説明

まず、nginx コンテナ内の構造:コンテナを入力します: docker exec -it b511...

Vueシャトルボックスは上下の動きを実現します

この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...

スライダー間隔コンポーネントのネイティブ js 実装

この記事の例では、スライダー間隔コンポーネントを実装するためのjsの具体的なコードを参考までに共有し...

プロジェクトにaxiosをカプセル化する実際のプロセス

目次序文axiosカプセル化の利点パッケージのアイデア設定の優先順位axiosインスタンス構成1. ...

vuex名前空間の使用

目次Vuex は単一の状態ツリーを使用するため、すべてのアプリケーション状態が比較的大きなオブジェク...

MySQL インフラストラクチャ チュートリアル: クエリ ステートメント実行プロセスの詳細な説明

序文私は以前から、SQL 文がどのように実行され、どのような順序で実行されるのかを知りたいと思ってい...

Centos7でファイルをバックアップするときは、バックアップファイルにバックアップの日付を追加します

Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...

MySQL アップグレードのベストプラクティス

MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...

小さな画面のモバイルデバイス向けにWebページを設計する際に注意すべきこと

その理由は、このタイプの Web ページが WAP と呼ばれるワイヤレス プロトコルから生成されたた...