前情提要: 在前一天的部分我们备份好user资料库数据,和准备资料的动作 <<
那就直接进入主题->还原步骤
mysql> SET sql_log_bin=0;
mysql> use user
mysql> source /mnt/mysql_data/mysql/user_backup_20210817.sql
root@mysql-master-1:/mnt/mysql_data/mysql# mysqlbinlog -vv mysql-bin.000013 | cat -n | grep -iw 'delete'
root@mysql-master-1:/mnt/mysql_data/mysql# mysqlbinlog -vv mysql-bin.000014 | cat -n | grep -iw 'delete'
78 ### DELETE FROM `user`.`user_powers`
84 ### DELETE FROM `user`.`user_powers`
90 ### DELETE FROM `user`.`user_powers`
96 ### DELETE FROM `user`.`user_powers`
102 ### DELETE FROM `user`.`user_powers`
root@mysql-master-1:/mnt/mysql_data/mysql# mysqlbinlog -vv mysql-bin.000014 | cat -n | sed -n '55,120p';
4.导入binlog复原後续操作纪录
恢复范围:
mysql-bin.000013: 还记得我们在备份时有刷新log 产生新纪录档mysql-bin.000013 所以内容直接全部恢复。
mysql-bin.000014: 纪录范围则到(# at 467)执行删除资料前的位置(参考上图)。
如果在备份时没有刷新log,等於後续纪录包含在某个binlog中。这时候要从哪边开始恢复就是看备份时纪录的POS位置等於要设定 ex. --start-position=154
使用注意: 在前面备份还原时我们针对单一DB做数据库还原,不会动到其他DB数据。透过binlog还原後续资料时如果没指定单一库 --database=user,执行到一些其他DB的异动像已经删除的或是插入值异动是会喷错的!!
=binlog纪录是包含所有DB操作内容的=
root@mysql-master-1:/mnt/mysql_data/mysql# mysqlbinlog --stop-position=467 mysql-bin.000013 mysql-bin.000014 --database=user --skip-gtids | mysql -uroot -p1234
成功回到误删资料前的状态
mysql> select * from user_powers;
+----------+-----------+----------+---------------------+
| user_id | nick_name | group_id | updated_at |
+----------+-----------+----------+---------------------+
| 1021211 | ken | 119201 | 2021-08-10 08:33:56 |
| 1232123 | siangx | 19200 | 2021-08-17 02:08:05 |
| 18675543 | kitty | 19200 | 2021-08-10 08:33:51 |
| 23122141 | kiki | 1242000 | 2021-08-12 09:01:54 |
| 24122441 | snow | 119201 | 2021-08-10 08:33:51 |
| 38921112 | shawn | 19200 | 2021-08-12 10:33:51 |
| 4356231 | lisa | 19200 | 2021-08-10 08:33:56 |
| 64121211 | kevin | 389110 | 2021-08-10 08:33:51 |
| 72197123 | eric | 19200 | 2021-08-15 01:33:51 |
| 7622441 | ben | 213123 | 2021-08-10 08:33:56 |
| 91311233 | alex | 389110 | 2021-08-10 08:33:56 |
| 91675543 | kay | 123321 | 2021-08-10 08:33:56 |
| 98112111 | leo | 19201 | 2021-08-13 12:33:56 |
| 98212321 | sara | 119201 | 2021-08-10 08:33:51 |
+----------+-----------+----------+---------------------+
14 rows in set (0.00 sec)
明天来介绍一下对於日志不断增长好用的日志切割管理工具~
在一个Action中倘若想实现多种结果返回或者多种输入参数 就势必要能够支援多种路由模板 可能搭配不...
回圈 loop 昨天小光更进一步的认识了逻辑判断式,也开始自己开发了一个心情显示器,不过如果要表现1...
FB登入 第10步:开启 /app/res/values/strings.xml 档案。 FB会自动...
柒、第六章 风险管理 这个章节是ISO标准设置来取代以前「预防措施」的概念,在条文中首先强调的是风险...
草莓正在奋力地练习之前学过的 JavaScript,熊熊刚下班急忙忙地跑过来。 「草莓啊不好意思,公...