DevOps开发运维
成长之路

MySQL企业故障恢复案例

背景环境

正在运行的网站系统,mysql-5.7.20 数据库,数据量50G,日业务增量1-5M。

备份策略

每天23:00点,计划任务调用mysqldump执行全备脚本

故障时间点

年底故障演练:模拟周三上午10点误删除数据库,并进行恢复.

思路

1、停业务,避免数据的二次伤害
2、找一个临时库,恢复周三23:00全备
3、截取周二23:00 --- 周三10点误删除之间的binlog,恢复到临时库
4、测试可用性和完整性
5、方法一:直接使用临时库顶替原生产库,前端应用割接到新库
方法二:将误删除的表导出,导入到原生产库
6、开启业务
处理结果:经过20分钟的处理,最终业务恢复正常

故障模拟演练

准备数据

create database backup;
use backup
create table t1 (id int);
insert into t1 values(1),(2),(3);
commit;
rm -rf /data/backup/*

周二 23:00全备

mysqldump -uroot -p123456 -A -R -E --triggers --set-gtid-purged=OFF --master-data=2 
--single-transaction|gzip > /data/backup/full_$(date +%F).sql.gz

模拟周二 23:00到周三 10点之间数据变化

use backup
insert into t1 values(11),(22),(33);
commit;
create table t2 (id int);
insert into t2 values(11),(22),(33);

模拟故障,删除表(只是模拟,不代表生产操作)

drop database backup;

恢复过程

此部分内容加密,请输入密码查看

赞(0)

评论 抢沙发

评论前必须登录!

 

LNMP社群 不仅仅是技术

关于我们网站地图