1. 延时从库 ***** 主要处理物理损坏
配置延时从库
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监控到数据库的逻辑故障
2停从库的sql线程,记录已经回放的位置点
stop slave sql thread ;
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 626
3 截取relaylog
起点:show slave status \G
终点:误删除之前的position(GTID)
4. 恢复截取的日志到从库
5. 从库身份解除,替代主库工作
故障模拟及恢复
1.主库数据操作
1.主库数据操作
db01 [(none)]>create database relay charset utf8;
db01 [(none)]>use relay
db01 [relay]>create table t1(id int);
db01 [relay]>insert into t1values(1);
db01 [relay]>drop database relay;
2. 停止从库SQL线程
stop slave sql_thread;
3.找relaylog的截取起点和终点起点:
起点:Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 626
终点:show relaylog eventsin'localhost-relay-bin.000002'
备份:mysqlbinlog --start-position=626 --stop-position=1286 /data/3308/data/localhost-relay-bin.000002>/tmp/relay.sql
set sql_log_bin=0;
source /tmp/relay.sql
从库身份解除
db01 [relay]>stop slave;
db01 [relay]>reset slave all;
2. 过滤复制*****
reset master; 清除日志
show master status;
主库:
Binlog_Do_DB
Binlog_Ignore_DB
从库:
show slave status\G
Replicate_Do_DB:
Replicate_Ignore_DB:
在 my.cnf加配置
3.GTID *****
重要参数
gtid-mode =on
enforce-gtid-consistency=true 打开从库
log-slave-update=1 slave更新日志
change master to
master_host='10.0.0.51',
master_user='repl',
master_password='123',
MASTER_AUTO_POSITION=1; 读取relay_log最后一个事件