データベースシリーズ-データベースデータを復元するためのMySQLバイナリログ

MySQL Binary Logは、bin-logとも呼ばれ、変更を実行するmysqlによって生成されるバイナリログファイルです。その主な機能は2つあります。
*データ回復
*マスタースレーブデータベース。スレーブ側で追加、削除、変更を行い、マスターとの同期を保つために使用します。

1.binlog機能と基本操作をオンにします

MySQLのbinloglog関数を使用するには、最初にMySQL構成ファイルで関数を有効にする必要があります。操作は非常に簡単です。MySQL構成ファイルを見つけて、log_bin = mysql-binという行をファイルに追加します。

(構成ファイルはmysqlインストールディレクトリ\ MySQLServer8.0の下のmy.iniです。log_bin= mysql_binを追加するだけです)

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录# 切记此处一定要用双斜杠
basedir=D:\\DevPackTool\\mysql-8.0.22-winx64 
# 设置mysql数据库的数据的存放目录
datadir=D:\\DevPackTool\\mysql-8.0.22-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#开启binlog
log-bin=mysql-bin
server-id=1  
[mysql]
# 设置mysql客户端默认字符集
default-character-set=UTF8MB4

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=UTF8MB4

誰もが環境を統一するのに便利です。独自の構成を提供します。

実際、私がインストールしたさまざまなMySQL環境では、この機能は通常デフォルトでオンになっています。

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

まず、MySQL コマンドラインで、show masterlogsコマンドを使用し て既存のbinlogファイル表示します。

 

2.データベースにデータを追加します

 

3.binlogログを更新します

以前は、MySQLのbinlogファイルは

+ --------------- + ----------- + ----------- +
| Log_name | File_size | 暗号化|
+ --------------- + ----------- + ----------- +
| binlog.000001 | 179 | いいえ|
| binlog.000002 | 952 | いいえ|
| binlog.000003 | 179 | いいえ|
| binlog.000004 | 179 | いいえ|
| binlog.000005 | 179 | いいえ|
| binlog.000006 | 179 | いいえ|
| binlog.000007 | 2172794 | いいえ|
| binlog.000008 | 433836 | いいえ|
| binlog.000009 | 1651 | いいえ|
+ --------------- + ----------- + ----------- +

これで、3つのデータがデータベースに追加されました。ここで、binlogログを更新すると、新しいmysql-bin.000010ファイルが生成されます(デフォルトはbinlogです)。次のように、私のものはmysql8です。

flush logs;
show master logs;

4.データを削除します

ここでは、追加した3つのデータをすべて削除します。

最初に追加

もう一度削除する 

 

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

MySQLバイナリログファイルは、削除操作などのMySQL操作を記録します。ログファイルの特定の内容を見てみましょう。

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

mysqlbinlog /data/mysql/mysql-bin.000010

注:ローカルのmysqlbinlogはbinlog構成のdefault-character-set = utf8を認識できないため、ここでコマンドに–no-defaultsを追加して、全員がレッスンを受けました。

 

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

MySQLのbinlogログを介してデータを回復する場合、サーバーのスナップショット管理に少し似ている特定の時点への回復を指定できます。そこで、削除したばかりの3つのデータを復元する必要があります。削除する前の時点を見つけて、その時点に復元することができます。

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

mysqlbinlog –no-defaults –help

ヘルプドキュメントに示されているように、時間または指定された場所を指定することでデータを復元できます。ここでは、例として指定された時間を取り上げます。

次のように、ログファイルmysql-bin.000009(つまり、現在のbinlogログの前のログ。現在のログは000010)を確認してみましょう。

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

>mysqlbinlog --no-defaults --stop-datetime="2020-12-08 16:03:09" binlog.000009 |mysql -uroot -p

このとき、背景を見てみると、削除したばかりの3つの記事が復元され、目的を達成していることがわかりました。

総括する

MySQLバイナリログファイルを介してデータを回復する方法、あなたは通常の時間にウェブサイトのデータバックアップの良い仕事をしなければなりません、データはウェブサイトの生命線です、将来の不必要なトラブルや損失を避けるためにデータバックアップの良い仕事をします。

 最後に、いくつかのbin_log操作を紹介し
   ます。1。現在の場所である最後のbinログファイルを確認します。

show master status;

  2.通常、データベースのバックアップ後に実行される新しいログファイルを有効にします。

ログをフラッシュします;

3。既存のbin-logをクリアします 

マスターをリセットします。

 

おすすめ

転載: blog.csdn.net/Coder_Boy_/article/details/110870799