当前场景

  当前某些业务还有未开启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

MySQL5.7 GTID在线开启与关闭【转】的更多相关文章

  1. MySQL 在线开启&关闭GTID模式

    MySQL 在线开启&关闭GTID模式 目录 MySQL 在线开启&关闭GTID模式 基本概述 在线开启GTID 1. 设置GTID校验ENFORCE_GTID_CONSISTENCY ...

  2. MySQL 5.7 在线启用和关闭GTID

    1.相关基础 MySQL 5.7.6之后GTID_MODE提供了两个新的选项分别为ON_PERMISSIVE和OFF_PERMISSIVEOFF_PERMISSIVE:不产生GTID事务, Slave ...

  3. mysql在线开启或禁用GTID模式

    在线开启步骤: 1.要求: (1)必须是5.7.6版本以上的mysql (2)GTID状态为OFF 2.开启步骤: (1):SET GLOBAL ENFORCE_GTID_CONSISTENCY = ...

  4. mysql5.7主从复制--在线变更复制类型【转】

    这里说一下关于如何在线变更复制类型(日志复制到全局事物复制),参考课程:mysql5.7复制实战 先决条件     (1)集群中所有的服务器版本均高于5.7.6(2)集群中所有的服务器gtid_mod ...

  5. MySQL5.7 GTID 浅析

    https://yq.aliyun.com/articles/68441 摘要: # GTID 简介 GTID (global transaction identifier)在MySQL5.6时引入, ...

  6. MySQL5.6 GTID新特性实践

    MySQL5.6 GTID新特性实践 GTID简介 搭建 实验一:如果slave所需要事务对应的GTID在master上已经被purge了 实验二:忽略purged的部分,强行同步 本文将简单介绍基于 ...

  7. NGUI 按钮点击音效统一管理开启与关闭

    之前就只是简单的在每个按钮(或者需要绑定单击事件的UISprite)对象上添加PlaySound组件,但这样就无法统一去设置按钮单击音效的开启与关闭! 由于我都是使用UIEventListener.G ...

  8. Android中如何监听GPS开启和关闭

    转自 chenming 原文 Android中如何监听GPS开启和关闭   摘要: 本文简单总结了如何监听GPS开关的小技巧 有时需要监听GPS的开关(这种需求并不多见).实现的思路是监听代表 GPS ...

  9. 实现开启和关闭android移动网络(转)

    开启和关闭移动数据网络有两种方法:一种是通过操作系统的数据库改变APN(网络接入点),从而实现开启和关闭移动数据网络,另一种是通过反射调用系统(ConnectivityManager)的setMobl ...

随机推荐

  1. 第四篇——Spring音乐登录界面设计及实现(C#)

    Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中:如果已有用户名,输入用户名和密码,点击登录,程序会 ...

  2. python 图像处理(从安装Pillow开始)

    python2.x及以下用的是PIL(图像处理库是 PIL(Python Image Library)),最新版本是 1.1.7  可在http://www.pythonware.com/produc ...

  3. 团队作业一 庆祝"十五万的总冠军"成立

    很荣幸能够撰写我们团队的第一篇博客. 我们这些同学能组成一个新的团队真的很高兴,团队中的每一个人都有自己的优点的长处.希望在工作中我们能竭尽 所能,充分发挥我们的本事,让我们大家各自发挥自己的才能.. ...

  4. WebView 5.0+闪烁以及白屏问题完美解决

    Android webView 在5.0+上启动硬件加速,造成部分手机出现闪烁.白屏等现象 必须写下这篇博客,遇到的问题搞了很久,百度谷歌就是没有完整的答案,记录下来,方便博友们: 需求:一个简单的W ...

  5. 【壹拾壹周】final分数分配

    组名: 新蜂 组长: 武志远 组员: 宫成荣 谢孝淼 杨柳 李峤 项目名称: java俄罗斯方块NEO 发布时间:12.3 git地址:https://git.coding.net/Boxer_/ho ...

  6. flex与滚动冲突

    如果设置方向用了flex,那么用滚动就没用

  7. Java之递归遍历目录,修改指定文件的指定内容

    EditProperties.java package PropertiesOperation.Edit; import java.io.File; /** * 替换指定Porpoerties文件中的 ...

  8. spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上

    spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上

  9. 去掉DataTable列中的重复行

    DataTable  dt = ds.Tables[0];    //获得 DataTable  DataView dv = new DataView(dt);DataTable dt2 = dv.T ...

  10. zk会话,快照,序列化,本地存储

    FolloewerRequestProcessor类 追随者 输入会有不同的形式,客户端请求,提议,提交事务 通过箭头来标示追随者处理的不同路径 本地存储 事务日志和快照 SyncRequestPro ...