在线将GTID模式复制改为传统模式复制
1、关闭基于GTID模式的复制,调整为传统复制;
STOP SLAVE;
show slave status\G;
##获取其中的
##Relay_Master_Log_File: mysql-log-bin.000004
##Exec_Master_Log_Pos: 28417624
CHANGE MASTER TO MASTER_AUTO_POSITION=0,MASTER_LOG_FILE='mysql-log-bin.000004',MASTER_LOG_POS=28417624;
START SLAVE;
注意所有从节点需要执行
2、在每一台服务器上设置GTID_MODE=ON_PERMISSIVE;
SET @@GLOBAL.GTID_MODE=ON_PERMISSIVE;
3、在每一台服务器上设置GTID_MODE=OFF_PERMISSIVE;
SET @@GLOBAL.GTID_MODE=OFF_PERMISSIVE;
4、等待所有的服务器上的变量@@GLOBAL.GTID_OWNED为空,表示正在由线程执行的全局GTID集合;
SELECT @@GLOBAL.GTID_OWNED;
注意:On a replica, it is theoretically possible that this is empty and then nonempty again. This is not a problem, it suffices that it is empty once.
5、等待所有的SLAVE上都复制完成匿名事务;
6、在每一台服务器关闭GTID;
SET @@GLOBAL.GTID_MODE=OFF;
7、修改my.cnf的配置;
enforce_gtid_consistency=OFF
gtid_mode=OFF