适用场景
MySQL主从切换流程,切换步骤主要针对主备正常切换以及主库宕机备库切换两个场景,掌握正确的切换流程,可以有效避免切换过程中可能出现的数据不一致问题以及提高整体切换的时间
主从环境:
主库 | 备库 |
---|---|
mysql-master | mysql-slave |
场景一:
准备正常切换,此场景主要是针对在主备同步复制正常的情况下进行的主备切换,例如:灾备演练,计划性的主备切换。
切换步骤
1 切断应用对主库的流量
2 主库设置为只读
set global read_only=ON;
set global super_read_only=ON;
3 查看备库复制进程状态
show slave status\G
确认Slave_IO_Running,Slave_SQL_Running状态为YES,Seconds_Behind_Master为0
4.比对主备两边的GTID是否一致
获取主备两边的executed_gtid集合,进行比对
select @@global.gtid_executed;
主库
从库
5 从库停掉复制进程并清空主从信息
stop slave;
reset slave all;
6 从库关闭只读开启读写,转为新主库
set global read_only=off;
set global super_read_only=off;
7 主库设置执行新主库的复制链路,转为新备库,完成主从切换
查询从机ip
docker inspect mysql-slave
CHANGE MASTER TO MASTER_HOST='172.17.0.3',MASTER_USER='root',MASTER_PORT=3306,MASTER_PASSWORD='123456' ;
start slave;
show slave status\G;
验证
新主库
新从库
场景二
主库宕机备库切换为主库,这种情况主要是在异步模式或者非强一致半同步下,主库的异常宕机,可能存在数据没有完全同步到从库的情况,需要去核验追加数据。
参考下面连接
https://blog.csdn.net/sinat_36757755/article/details/124049382