ウェブサイト管理者は、さまざまな理由や操作により、ウェブサイトのデータを誤って削除したり、ウェブサイトのバックアップを怠ったりすることが多く、その結果、損失を被り、ウェブサイトの運営や収益に悪影響を与えることもあります。そこでこの記事では、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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: vue3 のコンポーネントの互換性のない変更の詳細な説明
この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...
テスト用の MySQL ライブラリのセット。以前使用されていたバージョンは、centos6 のデフォ...
MySQL クエリ結果をcsvにエクスポートするには、通常、php を使用して mysql に接続し...
目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...
inline-block について学習しているときに、境界線と inline-block を持つ複数...
目次1. 準備1. 環境を整える2. インストール方法3. ネットワークカードの構成2. インストー...
まず、nginx コンテナ内の構造:コンテナを入力します: docker exec -it b511...
この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...
この記事の例では、スライダー間隔コンポーネントを実装するためのjsの具体的なコードを参考までに共有し...
目次序文axiosカプセル化の利点パッケージのアイデア設定の優先順位axiosインスタンス構成1. ...
目次Vuex は単一の状態ツリーを使用するため、すべてのアプリケーション状態が比較的大きなオブジェク...
序文私は以前から、SQL 文がどのように実行され、どのような順序で実行されるのかを知りたいと思ってい...
Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...
MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...
その理由は、このタイプの Web ページが WAP と呼ばれるワイヤレス プロトコルから生成されたた...