- 深入理解MySQL主从原理
- 高鹏
- 419字
- 2021-04-16 16:29:23
1.4.6 在线开启GTID
我们有时候需要在不影响业务的情况下从传统的主从切换为基于GTID的主从,应该执行如下步骤。
(1)主库/从库执行。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_43.jpg?sign=1739580929-XKLhLdRhjliR2xMQdY2IPShcuqP1gwzt-0-6f91df242b079472c272d60fb0453f1e)
首先确定操作都支持GTID,生产环境建议设置本参数后观察一段时间,如果错误日志中输出违反GTID的事务则必须更改。
(2)主库/从库执行。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_44.jpg?sign=1739580929-AoAfSeZj0VC9xE5cp71mcsLVmyprTPtU-0-44e2a660526876d18d78ac01a08c92c2)
这一步一旦执行,违反GTID的操作都将被拒绝,比如create table as select操作。
(3)主库/从库执行。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_45.jpg?sign=1739580929-N2RMaCkOdnVTWxyPp3jryzT7lamyd3fs-0-8b17cc69fed1f65ea0e27206ae132e4c)
主库生成的是匿名事务,从库可以应用匿名和GTID事务。
(4)主库/从库执行。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_46.jpg?sign=1739580929-F7mJrVLWnbqXxotqneojwiv3pBbxznmJ-0-2d26cc401267fb5e1c6ea7049069cb23)
主库生成的是GTID事务,从库可以应用匿名和GTID事务。
(5)主库/从库执行。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_47.jpg?sign=1739580929-CJNBMPuzqkOuI3b1mc0A6ZYaElJ9Lm5P-0-0b1b1c9ef9effbe796c5a426ee15dc6d)
确定已经没有匿名的事务。
多观察一段时间,确认这个统计值ONGOING_ANONYMOUS_TRANSACTION_COUNT为0,如果不为0,强行修改则可能导致数据丢失,然后确认从库 Retrieved_Gtid_Set、Executed_Gtid_Set正常增长。
到这一步,实际上GTID已经开始使用了。注意这一步非常重要,后面我们单独看看统计值ONGOING_ANONYMOUS_TRANSACTION_COUNT的含义。
(6)主库/从库执行。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_48.jpg?sign=1739580929-ByO9PwO9HYQzieuIKb3Y9mH5RY8bCQww-0-b03b8816e2ceae38779f62700df23dc5)
(7)从库执行。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_49.jpg?sign=1739580929-vcLnKqQkgCAbF1jRIx5SwogBmjZ3cVBl-0-cc6580bbb1f6d6fddb58175ba6b89b19)
到这一步,所有老的relay log都清理掉了,新relay log包含的全是GTID操作Event。
(8)主库/从库执行。
修改配置文件my.cnf,将参数的更改加入配置文件。