博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL5.7 GTID在线开启与关闭【转】
阅读量:6696 次
发布时间:2019-06-25

本文共 1989 字,大约阅读时间需要 6 分钟。

当前场景

  当前某些业务还有未开启GTID服务组,升级5.7后,如何检测是否符合开启GTID条件,如何在线修改切换使用GTID;已经升级5.7后,已经开启GTID,如何快速回滚后退;
线上gtid如何维护等等,以上场景通过归纳下面内容解决
  • gtid_mode参数新选项值
  • online gtid enable
  • online gtid disable

gtid_mode参数新选项

mysql 5.7.6后,mysql提供了两个额外选项off_permissive和on_permissive
off
off_permissive
on_permissive
on
上面四个状态变更必须是按照顺序变更,如不允许gtid_mode=off,直接变更为on_permissive;
当设置为off_permissive,不产生GTID事务,  Slave接受不带GTID的事务(匿名事务)也接受带GTID的事务
当设置为on_permissive时,新事务为gtid事务,slave接受GTID事务也接受不带GTID事务
gtid值master 与slave 兼容性列表
上表说明
Y: 表示master和slave的gtid值是兼容的
N:表示master和slave的gtid值是不兼容的
Y*:表示auto_positioning是可用的

online gtid enable 

限制条件: mysql 版本需5.7.6之后;所有server gtid_mode=off
1 、在每一台服务器上执行。err log没有任何warning产生 ,这是非常重要的一步,确保没有error log产生继续step 2;主要验证是否可以开启gtid,如create table select* from table 不支持事件

 

set @@global.enforce_gtid_consistency=warn;

2、在每一台server上执行

 

set @@global.enforce_gtid_consistency=on;

 

3、每一台server 执行,在那一台服务器执行没有先后之分

 

set @@global.gtid_mode=off_permissive;

 

4、每一台server 执行,执行顺序没有先后之分,要保证下一步操作之前,上面的操作都已在所有server上执行过

 

set @@global.gtid_mode=on_permissive;

 

5、保证每一台ongoing_anonymous_transaction_count状态值为零

 

show status like 'ongoing_anonymous_transaction_count';

 

6、等待步骤5生成的所有事务复制到所有服务器,此时不需要停止服务器更新,要保证所有的匿名事务都已经复制
7、步骤六完成,基本上可以进行步骤8.(此处没有考虑备份和restore情况)
8、设置 gtid_mode=on 

 

set @@global.gtid_mode=on;

 

9、持久化my.cnf ,每台slave上执行

 

stop slave; change master to master_auto_position=1 ; start slave;

 

online gtid disable

限制:所有server必须5.7.6之后;gtid_mode=on
1、每一台slave上执行

 

stop slave; change master to master_auto_position=0,master_log_file='mysql-bin.000383',master_log_pos= 245710922 ; start slave;

 

2、在每一台server上执行

 

set @@global.gtid_mode=on_permissive;

 

3、在每一台server上执行 保证下一步操作之前,上面的操作都已在所有server上执行过

 

set @@global.gtid_mode=off_permissive;

 

4、在每一台server上执行,保证global.gtid_owned变量字符串为空。

 

select @@global.gtid_owned;

 

5、等待存在于binlog 中的事物都已经apply到slave
6、没有略过,在此过程中需关注是否有备份或restore
7、每一台server执行

 

set @@global.gtid_mode=off ;

 

8、持久化gtid_mode=off 到my.cnf配置文件
 
转自

MySQL5.7 GTID在线开启与关闭 - CSDN博客

http://blog.csdn.net/aeolus_pu/article/details/78502846

你可能感兴趣的文章
实现主从关系Form中汇总行金额/数量
查看>>
Python学习笔记:协程
查看>>
原生js完成拼图小游戏
查看>>
[WP7]关于退出时确认对话框的实现
查看>>
Centos硬件信息
查看>>
如何在一个Activity里使用另一个xml布局文件
查看>>
饼图图例中显示百分比值
查看>>
forward和redirect
查看>>
打开hibernate文件报警告
查看>>
linux安装IDEA 2017
查看>>
Intellij IDEA 去掉Mapper文件中的背景
查看>>
Docker 安装 mysql
查看>>
阅读笔记《全景探秘游戏设计艺术》
查看>>
C# Json格式字符串
查看>>
sign-up 签约注册
查看>>
基于RDD实现简单的WordCount程序
查看>>
java8的新特性,Collections.sort(排序的List集合)的使用,对list封装Map里面的某个值进行排序...
查看>>
扩展Ubuntu的系统大小
查看>>
javascript闭包传参和事件的循环绑定
查看>>
gbk字库音序对照表
查看>>