1主1从,从库延时5分钟,主库误删除1个库 1. 5分钟之内 侦测到主库发生了逻辑损坏误删除操作 2. 立即停止延时从库SQL线程 4.挂维护页 5. 截取relaylog进行恢复(人为模拟SQL线程工作,直到drop之前) 起点 :停止SQL线程时relay最后应用位置 终点:误删除之前的position(GTID) 6. 恢复截取的日志到从库 7. 从库身份解除,替代主库工作
故障模拟及恢复
1.确认已开启延时从库
mysql> show slave status \G SQL_Delay: 300 SQL_Remaining_Delay: NULL
2..主库数据操作故障模拟
create database delay charset utf8; use delay create table t1 (id int); insert into t1 values(1),(2),(3); commit; drop database delay;
3. 停止从库SQL线程
stop slave sql_thread;
4. 找relaylog的截取起点和终点
起点: mysql [(none)]>show slave status \G Relay_Log_File: xiaoyong-relay-bin.000002 Relay_Log_Pos: 476 [root@xiaoyong data]# cat ./3308/data/relay-log.info ./xiaoyong-relay-bin.000002 476 终点: mysql [(none)]>show relaylog events in 'xiaoyong-relay-bin.000002' | xiaoyong-relay-bin.000002 | 1146 | Query | 7 | 2291 | drop database delay | [root@xiaoyong data]#mysqlbinlog --start-position=476 --stop-position=1146 /data/3308/data/xiaoyong-relay-bin.000002>/tmp/relay.sql
5.从库恢复relaylog
[root@xiaoyong data]# mysql -uroot -p -S /data/3308/mysql.sock mysql [(none)]>set sql_log_bin=0; mysql [(none)]>source /tmp/relay.sql
6.从库身份解除
stop slave; reset slave all;