MySQL控制软件及GTID功能介绍

Posted 09internet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL控制软件及GTID功能介绍相关的知识,希望对你有一定的参考价值。

mysql 5.6 版本引入了GTID功能,使得MySQL在主从复制数据一致性和数据安全方面有了巨大的提升,然而对于已经存在的基于binlog+position方式复制的MySQL集群,想要开启GTID,必须要停业务,重启MySQL,这一过程是很不友好的。

首先从重启MySQL来介绍,开启、关闭、重启MySQL的方式有很多,其中最方便的方法如下:

打开iis7服务器监控工具

技术图片

 

不管是重启、开启、关闭MySQL,都可以用它一键完成。

幸运地是,MySQL 5.7版本,提供了在线开启GTID的功能,可以在不中断业务、不重启MySQL的情况下开启GTID,下面具体介绍,MySQL 5.7 如何在线开启和关闭GTID。

MySQL 5.7 在线开启GTID:

确认MySQL集群中所有节点的版本都是 5.7.6 及以上,且所有节点的gtid_mode为OFF。在每个MySQL节点上设置 SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN; 观察一段时间MySQL的错误日志,有没有warnings,如果没有,进入下一步。如果有warnings,说明业务可能使用了与gtid不兼容的特性,要根据具体的日志信息来排查,直到没有warnings日志产生为止。在每个MySQL节点上设置 SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;在每个MySQL节点上设置 SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;在每个MySQL节点上设置 SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;在每个MySQL节点上,执行 SHOW STATUS LIKE ‘ONGOING_ANONYMOUS_TRANSACTION_COUNT‘; 确认所有节点上的该值为0,才能进入下一步。在每个MySQL节点上,执行 SET @@GLOBAL.GTID_MODE = ON;在每个MySQL节点上,把 gtid_mode=ON, ENFORCE_GTID_CONSISTENCY=ON 添加到配置文件 my.cnf。在每个MySQL从库上,执行STOP SLAVE;CHANGE MASTER TO MASTER_AUTO_POSITION = 1;START SLAVE;检查MySQL集群所有节点,基于GTID的主从复制是否正常。MySQL 5.7 在线关闭GTID:

确认MySQL集群中所有节点的版本都是 5.7.6 及以上,且所有节点的gtid_mode为ON。在每个MySQL从库上,执行STOP SLAVE;CHANGE MASTER TO MASTER_AUTO_POSITION = 0, MASTER_LOG_FILE = file, MASTER_LOG_POS = position;START SLAVE;在每个MySQL节点上,执行 SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;在每个MySQL节点上,执行 SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;在每个MySQL节点上,执行 SELECT @@GLOBAL.GTID_OWNED;确认该值为空,才能进入下一步。在每个MySQL节点上,执行 SET @@GLOBAL.GTID_MODE = OFF;在每个MySQL节点上,把 gtid_mode=OFF, ENFORCE_GTID_CONSISTENCY=OFF 添加到配置文件 my.cnf。检查MySQL集群所有节点,基于binlog+position主从复制是否正常。

MySQL GTID已是标配,也是大势所趋,对于使用MySQL 5.6 及以上版本的用户,强烈建议打开基于GTID的主从复制。

以上是关于MySQL控制软件及GTID功能介绍的主要内容,如果未能解决你的问题,请参考以下文章

MySQL5.7配置GTID主从---GTID介绍

MySQL主从复制之GTID模式介绍

MySQL-5.6 基于GTID及多线程的复制

HaaS100按键及LED使用介绍

CentOS6.8下MySQL5.6.40基于GTID主从及多线程复制

Mysql读写分离—5.7 gtid 主从 + ProxySql 配置及简单测试