MySQL如何在线开启/关闭GTID

介绍

小编给大家分享一下MySQL如何在线开启/关闭GTID,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

一前言

MySQL DBA大都熟悉MySQL 5.6版本开始提供基于,<强> GTID 模式的主从复制,该特性简化复制和降低主从复制维护的难度,提高复制的可运维性,不再依赖binlog文件名和文件中的位置。但是它有很多限制,5.7版本MySQL支持对GTID做了如下改进:

不需要重启MySQL服务器。

b配置过程在线,整个复制集群仍然对外提供读和写的服务。

c不需要改变复制拓扑结构。

d可以在任何结构的复制集群中在线启用GTID功能。

在线修改GTID时,必须按照如下顺序,

 OFF  & lt;→, OFF_PERMISSIVE  & lt;→, ON_PERMISSIVE  & lt;→,在

不能跳过其中环节,比如gtid_mode从掉不能直接变为,否则MySQL会进行提示。

错误1788 (HY000): @@GLOBAL的价值。GTID_MODE可以>,,,,,,:不产生GTID,奴隶只接受不带GTID的事务
OFF_PERMISSIVE:不产生GTID,奴隶即接受不带GTID的事务,也接受带GTID的事务
ON_PERMISSIVE,:产生GTID,奴隶即接受不带GTID的事务,也接受带GTID的事务上
,,,,,,:产生GTID,奴隶只能接受带GTID的事务。

二在线开启GTID

需要说明的是只有数据库版本是<强> 5.7.6以及之后强劲的版本才能支持在线开启GTID。在测试开启GTID的同时模拟主库的读写压测:

=oltp sysbench——测试。lua - oltp-tables-count=1——oltp-table-size=500000 -数据库=sysbench——mysql用户=sysbench——mysql-password=sysbench mysql-socket=/电脑/my3316/运行/mysql。袜子——max-time=600 num-threads=1——oltp-test-mode=复杂运行

2.1在主从复制结构中所有的实例中执行

设置global1。不支持非事务引擎。
2。不支持创建表……选择语句(在主库执行时直接报错)。
3。不允许一个SQL同时更新一个事务引擎和非事务引擎的表。
4。不支持创建临时表和删除临时语句。

如果没有任何警告出现,则在所有实例上执行:

设置全球ENFORCE_GTID_CONSISTENCY=> (RW)[测试:3316]在显示状态像& # 39;ONGOING_ANONYMOUS_TRANSACTION_COUNT& # 39;;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
| Variable_name,,,,,,,,,,,| |值
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
|> (RO)[测试:3316]在停止奴隶;
(RO)[测试:3316]在修改主MASTER_AUTO_POSITION=1;
(RO)[测试:3316]祝辞(RW)[测试:3316]祝辞开始奴隶;

至此,将基于位点的复制关系升级为GTID模式。结束了吗?还没呢,记得修添改my . cnf中所做加

 <代码类=" "> gtid_mode=> (RO)[测试:3316]在停止奴隶;
(RO)[测试:3316]在改变主MASTER_LOG_FILE=文件,
MASTER_LOG_POS=位置,MASTER_AUTO_POSITION=0;
(RO)[测试:3316]祝辞(RW)[测试:3316]祝辞开始奴隶;
3.2在所有的实例上执行:

设置全球gtid_mode=>以上是“MySQL如何在线开启/关闭GTID”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

MySQL如何在线开启/关闭GTID