深入理解MySQL主从原理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4.6 在线开启GTID

我们有时候需要在不影响业务的情况下从传统的主从切换为基于GTID的主从,应该执行如下步骤。

(1)主库/从库执行。

首先确定操作都支持GTID,生产环境建议设置本参数后观察一段时间,如果错误日志中输出违反GTID的事务则必须更改。

(2)主库/从库执行。

这一步一旦执行,违反GTID的操作都将被拒绝,比如create table as select操作。

(3)主库/从库执行。

主库生成的是匿名事务,从库可以应用匿名和GTID事务。

(4)主库/从库执行。

主库生成的是GTID事务,从库可以应用匿名和GTID事务。

(5)主库/从库执行。

确定已经没有匿名的事务。

多观察一段时间,确认这个统计值ONGOING_ANONYMOUS_TRANSACTION_COUNT为0,如果不为0,强行修改则可能导致数据丢失,然后确认从库 Retrieved_Gtid_Set、Executed_Gtid_Set正常增长。

到这一步,实际上GTID已经开始使用了。注意这一步非常重要,后面我们单独看看统计值ONGOING_ANONYMOUS_TRANSACTION_COUNT的含义。

(6)主库/从库执行。

(7)从库执行。

到这一步,所有老的relay log都清理掉了,新relay log包含的全是GTID操作Event。

(8)主库/从库执行。

修改配置文件my.cnf,将参数的更改加入配置文件。