复制环境中的故障切换:
第一时间检查Slave1~3各节点状态信息(通过show slave status),重点关注当前读取的Master节点日志文件和读取位置(Master_Log_File和Read_Master_Log_Pos),已经执行过的日志位置(Exec_Master_Log_Pos),Slave节点IO和SQL线程运行状态(Slave_IO_Running和Slave_SQL_Running),主从之间的延迟间隔(Seconds_Behind_Master)等信息。如果3个节点中,接收到的返回信息都相同,说明目前3个节点的数据处于一致状态。
登录到Slave2节点,执行如下命令:
Slave2>stop slave;
Slave2>reset slave;
这两条命令会清除Slave2节点中与Slave相关的配置,删除master.info、relay-log文件
Slave2>show master status;
修改前端应用层的连接地址,改为连接Slave2实例。对于其他Slave节点,最关键的master_log_file和master_log_pos两个信息,随时可以配置Slave1和Slave3两个实例,执行change master to命令,连接Slave2节点获取数据,重新回到Replication中。若Master节点也恢复功能,也可通过change master to语句将其变为复制环境中的一个Slave节点
延迟复制特性:
只需要将Slave节点中MASTER_DELAY选项即可,通过CHANGE MASTER TO语句进行设定
CHANGE MASTER TO MASTER_DELAY=n;
Slaves节点接收到Master节点生成的二进制日志,不会马上应用,而是等待,直到时间符合设定的延迟条件后才开始应用