server_uuid是5.6的gtid特性引入的一个配置,把mysql5.7的rpl_slave.cc文件中get_master_uuid函数换成5.6对应的函数就可以了。
GTID 对于单源复制还是很方便,但是对于多源复制,这里就需要特别注意:
要先停止所有的从库 stop slave
然后清理本机所有的 GTID,reset master
再进行 SET @@GLOBAL.GTID_PURGED='xxxxx' gtid 设置
这里就会引入一个问题,如果是级联复制的情况下,reset master 的时候,会把本机的所有 binlog 清理掉。如果下一级的从库存在延迟,没有及时的把 binlog 传过去,就会造成主从中断,这里我们该怎么避免呢?看这里:做 reset master 的时候,先看看下游的从库是否存在很大的延迟。如果存在,把当前的 binlog 和后面未同步的 binlog 全部备份下;
待添加好从库的 channel 后,再把未同步的 binlog 文件手动拷贝到 binlog 目录;
更新下 mysql-bin.index 文件;
注意,binlog 不能同名,需要手动更新下文件。开启步骤: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'
配置文件中GTID_MODE = ON
ENFORCE_GTID_CONSISTENCT
平滑关闭步骤:
(1):stop slave(如果是主库就不必执行此步骤)
(2):SET GLOBAL GTID_MODE = 'ON_PERMISSIVE'
(3):SET GLOBAL GTID_MODE = 'OFF_PERMISSIVE'
(4):SET GLOBAL GTID_MODE = 'OFF'
之后查看状态:
select @@GLOBAL.GTID_MODE
配置文件中GTID_MODE = OFF
关闭ENFORCE_GTID_CONSISTENCY:
在线修改 :SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = off
配置文件中 :ENFORCE_GTID_CONSISTENCY = off
传统主从复制的binlog和position号选择切换时间的第一个binlog的第一号
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)