位置: 编程技术 - 正文
推荐整理分享MySQL5.7不停业务将传统复制变更为GTID复制的实例(mysql停不掉),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql服务无法停止,mysql停不下来,服务里的mysql一直停止,mysql57停止后起不来,服务里的mysql一直停止,mysql停不掉,mysql停不下来,mysql停不下来,内容如对您有帮助,希望把文章链接给更多的朋友!
由于GTID的优势,我们需要将传统基于file-pos的复制更改为基于GTID的复制,如何在线变更成为我们关心的一个点,如下为具体的方法:
目前我们有一个传统复制下的M-S结构:
port master
port slave
如下为在线变更的具体的操作步骤:
前提:
1.要求所有的mysql版本5.7.6或更高的版本。
2.目前拓扑结构中所有的mysql的gtid_mode的值为off状态。
3.如下的操作步骤都是有序的,不要跳跃着进行。
补充一下全局系统变量GTID_MODE变量值说明:
OFF 新事务是非GTID, Slave只接受不带GTID的事务,传送来GTID的事务会报错
OFF_PERMISSIVE 新事务是非GTID, Slave即接受不带GTID的事务也接受带GTID的事务
ON_PERMISSIVE 新事务是GTID, Slave即接受不带GTID的事务也接受带GTID的事务
ON 新事务是GTID, Slave只接受带GTID的事务
需要注意的是,这几个值的改变是有顺序的,即
off<--->OFF_PERMISSIVE<--->ON_PERMISSIVE<--->ON
不能跳跃执行,会报错。
step1:在每个mysql实例上,将ENFORCE_GTID_CONSISTENCY设置为warning,哪台先执行不影响结果。
注意:执行完这条语句后,如果出现GTID不兼容的语句用法,在错误日志会记录相关信息,那么需要调整应该程序避免不兼容的写法,直到完全没有产生不兼容的语句,可以通过应该程序去排查所有的sql,也可以设置后观察错误日志一段时间,这一步非常重要。
step2:在每个mysql实例上,设置ENFORCE_GTID_CONSISTENCY为ON,哪台先执行不影响结果
在第一步完成后,就可以将值设置为on。
step3:在每个mysql实例上,设置GTID_MODE为off_permissiv;哪台先执行不影响结果
step4:在每个mysql实例上,设置GTID_MODE为on_permissiv;;哪台先执行不影响结果
step5:在每个mysql实例上检查变量ONGOING_ANONYMOUS_TRANSACTION_COUNT
需要等到此变量为0
step6: 确保所有的匿名事务(非GTID事务)已经被完全复制到所有的server上。
检查方法:
检查这两项Relay_Master_Log_File的值大于binlog.,
或者等于Relay_Master_Log_File等于binlog.并且Exec_Master_Log_Pos的值大于等于即可
或者slave直接用函数:
返回结果大于等于0就说明匿名事务已经全部复制完成
step7: 确认整个拓扑结构中已经没有匿名事务的存在,如之前产生的所有匿名事务已经全部被执行完毕,甚至二进制日志中也不要有匿名事务,可以通过flush logs,并让mysql来自动清理旧的二进制日志文件。
step8: 在每个mysql实例上,设置GTID_MODE为on,
step9: 在每个mysql实例的配置文件my.cnf上,增加gtid-mode=ON
验证:
至此完成从传统复制到GTID复制的在线转换。
以上这篇MySQL5.7不停业务将传统复制变更为GTID复制的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。
MySQL PXC构建一个新节点只需IST传输的方法(推荐) 需求场景:原有的pxc环境数据量已经比较大,新买的服务器要加入此集群中,如何让其用IST的方式传输,而不是SST.PXC传输数据有两种方式:IST:Incrementa
Mysql GTID Mha配置方法 Gtid+Mha+Binlogserver配置:1:测试环境OS:CentOS6.5Mysql:5.6.Mha:0...1.mysql1M..1.mysql2S..1.mysql3S2Mhamanage、Binlogserver2:配置/etc/my.cnf相关参
innodb_flush_method取值方法(实例讲解) innodb_flush_method的几个典型取值fsync:InnoDBusesthefsync()systemcalltoflushboththedataandlogfiles.fsyncisthedefaultsetting.O_DSYNC:InnoDBusesO_SYNCtoopenandflushthelogfiles,andfsync()toflushth
标签: mysql停不掉
本文链接地址:https://www.jiuchutong.com/biancheng/349956.html 转载请保留说明!上一篇:查看当前mysql使用频繁的sql语句(详解)(mysql查看当前执行的sql)
下一篇:MySQL PXC构建一个新节点只需IST传输的方法(推荐)
友情链接: 武汉网站建设