ホームページ  >  記事  >  データベース  >  MySQL - データベースの増分データ回復のグラフィック コード例

MySQL - データベースの増分データ回復のグラフィック コード例

黄舟
黄舟オリジナル
2017-03-09 11:27:201425ブラウズ

この記事では、MySQL データベースの増分データ回復のグラフィック コード例を紹介します。必要な友人は参照してください

1. 使用シナリオ

  • MySQL データベースは毎日 0 時に自動的に完全に準備されます

  • ある日の朝9時に、Zhang Sanは誤ってデータベースをドロップしてしまいました

  • 完全なデータファイルと増分binlogファイルを通じてデータを回復する必要があります

2. 主なアイデアと原則

  • 完全に準備された SQL ファイル、binlog ファイル、およびその場所ポイント情報に記録されている CHANGE MASTER ステートメントを使用して、binlog ファイルの増分部分を見つけます

  • mysqlbinlog コマンドを使用して上記の binlog ファイルをエクスポートしますをSQLファイルに変換し、その中のdrop文を削除します

  • 完全なファイルと増分binlogファイルのSQLファイルをエクスポートすることで、完全なデータを復元できます

3. プロセス図

4. 操作プロセス

1. データをシミュレート


2. 完全なコマンド

3. データの挿入とデータベースの削除を続行します


りりー

これで完全な準備後にエラーが発生しました。操作中に、ユーザーが書き込んだデータは binlog にあるため、復元する必要があります


4. 完全バックアップ後に新しく追加された binlog ファイルを確認してください


CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  `age` tinyint(2) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `index_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 

mysql> insert student values(1,'zhangsan',20); 
mysql> insert student values(2,'lisi',21); 
mysql> insert student values(3,'wangwu',22);

これは完全バックアップ時の binlog ファイルの場所、つまり mysql-bin.000003 の 107 行目なので、このファイルより前の binlog ファイル内のデータはすでにこの完全な SQL ファイルに含まれています


5. binlog ファイルを移動して SQL を読み取り、drop ステートメントを削除します


# mysqldump -uroot -p -B -F -R -x --master-data=2 test|gzip >/server/backup/test_$(date +%F).sql.gz

参数说明:
-B 指定数据库
-F 刷新日志
-R 备份存储过程等
-x 锁表
--master-data 在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息

完全なデータを復元する前に、binlog ファイルを移動する必要があります。そうしないと、ステートメントはリカバリ中に引き続き binlog に書き込まれます。 6. データの復元


5. 概要


引き起こされた誤操作に適しています人間の SQL ステートメントによる修復条件


には、すべてのデータの完全バックアップと増分データが必要です

復元する場合は、外部更新を停止する、つまりデータベースの更新を禁止することをお勧めします


    最初に全額を復元し、完全バックアップ時間の経過後に増分データを復元します。ログを作成し、順番に SQL ファイルに復元してから、ファイル内の問題のある SQL ステートメントを削除します (時間と場所のポイントを使用することもできます) 、データベースに復元します

以上がMySQL - データベースの増分データ回復のグラフィック コード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。