主从复制进阶
1. 延时从库企业级应用
1.1 场景介绍
逻辑损坏:
总数据量200G,误删除1个2G的库,有备份和日志.
1.2 配置
SQL线程延时:
数据已经写入relaylog中了,SQL线程"慢点"运行
一般企业建议3-6小时,具体看公司运维人员对于故障的反应时间
mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_DELAY = 300;
mysql>start slave;
mysql> show slave status \G
SQL_Delay: 300
SQL_Remaining_Delay: NULL
1.3 故障模拟
主库:
create database delaydb charset utf8mb4;
use delaydb;
create table t1 (id int);
begin;
insert into t1 values(1);
commit;
begin;
insert into t1 values(2);
commit;
begin;
insert into t1 values(3);
commit;
begin;
insert into t1 values(4);
commit;
begin;
insert into t1 values(5);
commit;
drop database delaydb;
1.1 恢复思路(延时从库):
1. 监控到故障,第一时间停掉从库SQL线程
2. 手工模拟SQL线程回放relaylog,停止在drop之前
起点:读取relay.info信息
终点:drop之前
3. 恢复业务
1.2 在测试环境中实践:
从库 :
1. 停止SQL线程
mysql> stop slave sql_thread