日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 技术篇- linux下mysql数据库利用binlog文件进行数据回滚实例演示,binlog恢复数据库的两种方式

發布時間:2025/4/16 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 技术篇- linux下mysql数据库利用binlog文件进行数据回滚实例演示,binlog恢复数据库的两种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL 數據庫數據回滾

  • 第一章:利用 binlog 進行數據回滾
  • ① 查看 binlog 文件所在位置
  • ② 查看主數據正在存儲數據的 binlog 文件名
  • ③ 在控制臺查看 binlog 文件內容方法
  • ④ 回滾方式一:通過時間點導出 sql 語句
  • ⑤ 注意:對比服務器和本地時間算出時間差,避免時間截取錯誤
  • ⑥ 回滾方式二:通過位置點導出 sql 語句
  • ⑦ sql 文件恢復方法一: 通過 source 方法恢復數據庫
  • ⑧ 技巧:篩選導出指定庫相關的 sql 腳本
  • ⑨ sql 文件恢復方法二: 導入恢復數據庫
  • ⑩ 技巧:binlog 直接恢復方法

第一章:利用 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"

④ 回滾方式一:通過時間點導出 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 分鐘的內容。

⑥ 回滾方式二:通過位置點導出 sql 語句

首先看兩個恢復點中間的位置信息。
上面是通過兩個時間點截取,這個是通過兩個位置點截取。


通過指定位置導出數據庫。

[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 文件恢復方法一: 通過 source 方法恢復數據庫

登錄數據庫、切換數據庫、恢復數據庫。

[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 - GPLCopyright (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 文件恢復方法二: 導入恢復數據庫

導入恢復數據庫。

[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

喜歡的點個贊?吧!

總結

以上是生活随笔為你收集整理的MySQL 技术篇- linux下mysql数据库利用binlog文件进行数据回滚实例演示,binlog恢复数据库的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。