gitd_mode |
解释 |
OFF |
不产生GTID,Slave只接收不带GTID的事务 |
OFF_PERMISSIVE |
不产生GTID,Slave接收不带GTID的事务也接收带GTID的事务 |
ON_PERMISSIVE |
产生GTID,Slave接收不带GTID的事务也接收带GTID的事务 |
ON |
产生GTID,Slave只接收带GTID的事务 |
stop slave;
change master to master_auto_position=0;
start slave;
主从库执行set @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
主库执行set @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
这个时候已经从gtid转到传统复制了,不过还是中间状态
在从库执行set @@GLOBAL.GTID_MODE = OFF_PERMISSIVE
主从库执行select @@GLOBAL.GTID_OWNED;是不是为空,直到输出值为空;等待存在于binlog 中的事物都已经apply到slave
主从库执行set global gtid_mode=0;
主库执行set global enforce_gtid_consistency=off;
记得配置文件修改
gtid-mode=ON
enforce-gtid-consistency=ON
实验二 将传统复制切换到GTID复制在主从库执行(没有先后之分)set global enforce_gtid_consistency=WARN;
在主从库执行行(没有先后之分) set global enforce_gtid_consistency=on;
主从库执行set @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
在从库执行set @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
在主库执行set @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
查看show status like 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';是否为0,等于0是表示所有连接都转为gtid复制
主从库执行set global gtid_mode=on;
stop slave;
change master to master_auto_position=1;
CHANGE MASTER TO MASTER_HOST='192.168.0.105', MASTER_USER='auto_repl', MASTER_PASSWORD='repbyxf123', MASTER_PORT=3333,MASTER_AUTO_POSITION = 1;
start slave;
记得更改配置文件