测试妹子删了库!

您所在的位置:网站首页 妹子库 测试妹子删了库!

测试妹子删了库!

#测试妹子删了库!| 来源: 网络整理| 查看: 265

目录测试妹子删了库!(1)模拟环境准备(2)全备(3)再次插入数据(4)测试妹子的误操作(5)恢复全备(6)进一步小心地恢复,跳过DELETE和DROP语句

=======================================================================

张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师

笔者微信:zhanghe15069028807,现居济南历下区

=======================================================================

测试妹子删了库!

上周二,测试组的一个妹子删了库,这件事不想再回忆了。今天把当时的场景用虚拟机还原一下,然后复现一下数据恢复的过程,就当是个总结吧!说多了都是泪啊~

(1)模拟环境准备 [root@mysql02 ~]# mysql -p'cba-123' mysql> create database bgxdb; mysql> use bgxdb; mysql> create table t1 (id int,name varchar(20)); mysql> insert into t1 values (1,"ccr"); mysql> insert into t1 values (2,"tfr"); mysql> select * from t1; +------+------+ | id | name | +------+------+ | 1 | ccr | | 2 | tfr | +------+------+ (2)全备 [root@mysql02 ~]# mysqldump -uroot -pcba-123 --all-databases --single-transaction --master-data=1 --flush-logs > /backup/mysql/$(date +%F%H)-mysql-all.sql

NOTE:我们每个星期天都会做一次全备

(3)再次插入数据 [root@mysql02 ~]# mysql -p'cba-123'; mysql> insert into bgxdb.t1 values -> (3,'tr1'), -> (4,'zx'), -> (5,'wq'), -> (6,'tj'), -> (7,'gwt'); mysql> select * from bgxdb.t1; +------+------+ | id | name | +------+------+ | 1 | ccr | | 2 | tfr | | 3 | tr1 | | 4 | zx | | 5 | wq | | 6 | tj | | 7 | gwt | +------+------+ (4)测试妹子的误操作 mysql> delete from bgxdb.t1 where id = '2'; mysql> drop database bgxdb; (5)恢复全备

我就是从这一步开始的,幸好有全备,而且也开启了binlog日志,但恢复起来我还是心惊胆战!特意在虚拟机上练了好几遍,我是这么做的,如下所示:

[root@mysql02 ~]# sed -i '23aSET sql_log_bin=0;' /backup/mysql/2019-11-2812-mysql-all.sql [root@mysql02 ~]# mysql -u root -p'cba-123' < /backup/mysql/2019-11-2812-mysql-all.sql [root@mysql02 ~]# mysql -u root -p'cba-123' -e "select * from bgxdb.t1" +------+------+ | id | name | +------+------+ | 1 | ccr | | 2 | tfr | +------+------+

还好,全备的数据全都正常恢复了

(6)进一步小心地恢复,跳过DELETE和DROP语句

下面的操作就要小心翼翼了,不能一下子把二进制日志里面全备以后的操作全部恢复,一旦全部恢复了,那测试妹子的删除操作也会恢复,我们只能跳过误操作的地方。

[root@mysql02 ~]# sed -n '22p' /backup/mysql/2019-11-2812-mysql-all.sql CHANGE MASTER TO MASTER_LOG_FILE='bin_log.000002', MASTER_LOG_POS=154; [root@mysql02 ~]# ls /log/mysql/ #全备之后只有一个` bin_log.000002`二进程日志文件 [root@mysql02 ~]# mysqlbinlog --start-position=154 --stop-position=577 [root@mysql02 ~]# mysqlbinlog --start-position=670 --stop-position=701 [root@mysql02 ~]# mysql -uroot -p'cba-123' -e "select * from bgxdb.t1" +------+------+ | id | name | +------+------+ | 1 | ccr | | 2 | tfr | | 3 | tr1 | | 4 | zx | | 5 | wq | | 6 | tj | | 7 | gwt | #被测试妹子删除的数据终于恢复回来了

注:上述案例在全备之后仅产生了一个二进制日志,如果有多个呢?该如何操作?如下所示

mysqlbinlog --base64-output="decode-rows" -v bin_log.000001 bin_log.000002 > test3.sql


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3