MySQLテクニカルチャプター-Linuxでのmysqlデータベースは、データのロールバック例のデモにbinlogファイルを使用します。binlogでデータベースを復元する2つの方法

第1章:データのロールバックにbinlogを使用する

①binlogファイルの場所を確認する

最初に、次のステートメントでbinlogファイルの場所を確認します。

show variables like '%log_bin%';

場所がわかります /usr/local/mysql-8.0.11/data/
ここに画像の説明を挿入

②マスターデータに格納されているデータのbinlogファイル名を閲覧

ビューshow master status
ここに画像の説明を挿入
は、格納されているデータを現在binlog.000025に配置している場所を見つけることができます
ここに画像の説明を挿入

③binlogファイルの内容をコンソールに表示する

binのmysqlbinlogツールを使用してbinlogファイル表示すると、何が記録されているかを確認できます。

[root@localhost bin]# "/usr/local/mysql-8.0.11/bin/mysqlbinlog" --no-defaults  "/usr/local/mysql-8.0.11/data/binlog.000025"

④ロールバック方法1:時間をかけてSQLステートメントをエクスポートする

誤って削除したときの様子をご覧ください。
見てください
中間時点介してSQLステートメントをエクスポートすると、ローカル時間とサーバー時間が同期されないため、特定の時間差が生じます。次のセクションでは、時間差の計算方法について説明します。

[root@localhost bin]# "/usr/local/mysql-8.0.11/bin/mysqlbinlog" --no-defaults  --start-datetime="2020.08.13 18:50:00" --stop-datetime="2020.08.13 18:55:00" "/usr/local/mysql-8.0.11/data/binlog.000025" > 0813.sql

ここに画像の説明を挿入

⑤注:サーバーと現地時間を比較して時間差を計算し、時間傍受エラーを回避します

サーバーの時刻を確認してください。

[root@localhost bin]# date
Thu Aug 13 07:44:36 EDT 2020

現地時間を確認すると、私の現地時間の方が約8分早くなっていることがわかります。ログを傍受する場合は8前に内容を確認する必要があります
ここに画像の説明を挿入

⑥ロールバック方法2:場所を通じてSQLステートメントをエクスポートする

まず、2つのリカバリポイント間の位置情報を確認します。
上記は2つの時点で傍受されますが、これは2つの場所で傍受されます。
ここに画像の説明を挿入
ここに画像の説明を挿入
場所を指定してデータベースをエクスポートします。

[root@localhost mysql-8.0.11]# "/usr/local/mysql-8.0.11/bin/mysqlbinlog" --no-defaults  --start-position=204590 -d ncc_0807mysql --stop-position=252554 "/usr/local/mysql-8.0.11/data/binlog.000025" > 0815.sql

⑦SQLファイルの回復方法1:ソースメソッドを使用してデータベースを回復する

データベースにログインし、データベースを切り替えて、データベースを復元します。

[root@localhost ~]# "/usr/local/mysql-8.0.11/bin/mysql" -uroot -p123456 -A
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ncc_0807auto       |
| ncc_0807mysql      |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.01 sec)

mysql> use ncc_0807mysql;
Database changed
mysql> source /usr/local/mysql-8.0.11/bin/0813.sql;
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

⑧スキル:指定したライブラリに関連するSQLスクリプトをフィルタリングしてエクスポートする

データベースを指定します:-dデータベース名、または-database =データベース名。

[root@localhost mysql-8.0.11]# "/usr/local/mysql-8.0.11/bin/mysqlbinlog" --no-defaults  --start-datetime="2020.08.13 06:50:00" -d ncc_0807mysql --stop-datetime="2020.08.13 06:55:00" "/usr/local/mysql-8.0.11/data/binlog.000025" > 0814.sql

⑨SQLファイルの回復方法2:回復データベースをインポートする

リカバリデータベースをインポートします。

[root@localhost mysql-8.0.11]# "/usr/local/mysql-8.0.11/bin/mysql" -uroot -p123456 ncc_0807mysql < "/usr/local/mysql-8.0.11/0814.sql"

⑩スキル:Binlog直接回復方法

直接binlog回復ライブラリメソッドの場所
転送せずに直接回復します。

[root@localhost mysql-8.0.11]# "/usr/local/mysql-8.0.11/bin/mysqlbinlog" --no-defaults  --start-position=204590 --stop-position=252554  "/usr/local/mysql-8.0.11/data/binlog.000025" | "/usr/local/mysql-8.0.11/bin/mysql" -uroot -p123456

気に入ったら気に入ってください❤!

おすすめ

転載: blog.csdn.net/qq_38161040/article/details/107989565