ウェブサイト管理者は、さまざまな理由や操作により、ウェブサイトのデータを誤って削除したり、ウェブサイトのバックアップを怠ったりすることが多く、その結果、損失を被り、ウェブサイトの運営や収益に悪影響を与えることもあります。そこでこの記事では、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 パスワードをリセットする方法を説明しました。一部の学生から、データベース...
個人的には、WeChat アプレットの開発フレームワークは VUE と概ね似ていると感じていますが、...
デフォルトの Linux カーネル パラメータは最も一般的なシナリオに基づいており、高い同時アクセス...
シナリオリクエストが 10 件あるが、同時リクエストの最大数は 5 件で、リクエスト結果が必要である...
さっそく、レンダリングを見てみましょうソースコードは以下のとおりです <!DOCTYPE ht...
目次序文: 1. Navicatの紹介2. シンプルなチュートリアルの共有接続管理ライブラリテーブル...
max_allowed_packet は、受け入れるパケットのサイズを設定するために使用される ...
目次1. 挿入のいくつかの構文1-1. 通常の挿入文1-2. 挿入または更新1-3. 挿入または交換...
目次1. フロントエンド制御1. router.js ファイル内 (router.js にそれぞれ静...
序文フロントエンドページを書くとき、小さなアイコンなどの画像を使うことが多いです。画像を使うとコード...
この記事では、Linux で PHP curl 拡張機能をインストールする方法について説明します。ご...
以前、プロジェクトでQRコードをスキャンして情報を表示する機能を開発する必要がありました。インターネ...
インターネット上には Linux サーバーを監視するためのツール、コンポーネント、プログラムが多数あ...
多くの人は、Scss を使用する瞬間からコンパイル方法を説明されてきました。したがって、コマンドのコ...
目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...