分享更有价值
被信任是一种快乐

MySQL如何在线开启/关闭GTID

文章页正文上

小编给大家分享一下MySQL如何在线开启/关闭GTID,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL DBA大都熟悉 MySQL 5.6版本开始提供基于GTID模式的主从复制,该特性简化复制和降低主从复制维护的难度,提高复制的可运维性,不再依赖binlog文件名和文件中的位置。 但是它有很多限制,5.7版本MySQL支持对GTID做了如下改进:a 不需要重启MySQL服务器.b 配置过程在线,整个复制集群仍然对外提供读和写的服务.c 不需要改变复制拓扑结构.d 可以在任何结构的复制集群中在线启用GTID功能.在线修改GTID时,必须按照如下顺序不能跳过其中环节,比如gtid_mode 从off 不能直接变为on,否则MySQL会进行提示。ERROR 1788 (HY000): The value of @@GLOBAL.GTID_MODE can only be changed one step at a time: OFF OFF_PERMISSIVE ON_PERMISSIVE ON. Also note that this value must be stepped up or down simultaneously on all servers. See the Manual for instructions.在实践online升级之前,我们需要了解MySQL 5.7版本的GTID_MODE 的含义:需要说明的是只有数据库版本是5.7.6以及之后的版本才能支持在线开启GTID. 在测试开启GTID的同时模拟主库的读写压测:sysbench –test=oltp.lua –oltp-tables-count=1 –oltp-table-size=500000 –mysql-db=sysbench –mysql-user=sysbench –mysql-password=sysbench –mysql-socket=/srv/my3316/run/mysql.sock –max-time=600 –num-threads=1 –oltp-test-mode=complex runset global1.不支持非事务引擎。
2.不支持create table … select 语句(在主库执行时直接报错)。
3.不允许一个SQL同时更新一个事务引擎和非事务引擎的表。
4.不支持create temporary table和drop temporary语句。如果没有任何warning 出现,则在所有实例上执行:set global ENFORCE_GTID_CONSISTENCY = ON;set global GTID_MODE = OFF_PERMISSIVE;让主库不产生GTID,Slave实例即接受不带GTID的事务,也接受带GTID的事务。确保一定要在所有实例中执行完该命令之后再执行接下来的步骤。set global GTID_MODE = ON_PERMISSIVE;主库开始产生GTID,Slave即接受不带GTID的事务,也接受带GTID的事务。在各个实例节点上执行如下命令检查匿名事务是否消耗完毕,最好多检查几次,以便确认该参数的值是0.如果在从库上检查只需要一次满足为0 即可。确保操作之前的所有binlog都已经被其他服务器应用了,因为匿名的GTID必须确保已经复制应用成功,才可以进行下一步操作。如何检查呢? 其实最简单的方式是在从库库执行show slave status检查应用位点的情况。如果追上了,则可以继续。否则需要等待从库应用完binlog之后在进行下一步。set global GTID_MODE = ON;该参数的功能是让系统产生GTID ,Slave只能接受带GTID的事务。设置slave 复制中MASTER_AUTO_POSITION=1。至此,将基于位点的复制关系升级为GTID模式。结束了吗?还没呢,记得修改my.cnf 添加关闭GTID的步骤其实和开启的步骤相反:set global GTID_MODE = ON_PERMISSIVE;set global GTID_MODE = OFF_PERMISSIVE;SELECT @@GLOBAL.GTID_OWNED;set global GTID_MODE = OFF;SET global GTID_MODE = OFF;SET global ENFORCE_免费主机域名GTID_CONSISTENCY = OFF;以上是“MySQL如何在线开启/关闭GTID”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解免费主机域名,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云技术行业资讯频道!

相关推荐: Mysql如何创建数据库

小编给大家分享一下Mysql如何创建数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!4.1 create and drop databaseC:Usersadmin>mys…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册