当前场景

  当前某些业务还有未开启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. 1-Python3从入门到实战—基础之语法

    Python从入门到实战系列--目录 编码格式 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串 # -*- coding=utf-8 -*- 也可以 ...

  2. vis.js绘图库的一个BUG以及源码修正

    1. BUG 1.1 BUG触发情况 在使用vis.js绘图时,加入两个节点A和B之间既存在一条从A指向B的边,同时也存在一条从B指向A的边,那么这个绘图库就会崩溃. 1.2 BUG解析 vis.js ...

  3. Redis 总结精讲

    本文围绕以下几点进行阐述 1.为什么使用redis2.使用redis有什么缺点3.单线程的redis为什么这么快4.redis的数据类型,以及每种数据类型的使用场景5.redis的过期策略以及内存淘汰 ...

  4. PHP开发APP接口实现--基本篇

    最近一段时间一直在做APP接口,总结一下APP接口开发以来的心得,与大家分享: 1. 客户端/服务器接口请求流程: 安卓/IOS客户端   –> PHP接口 –> 服务器端  –> ...

  5. python 十进制整数转换为任意进制(36以内)

    def baseN(num, b): return ((num == 0) and "0") or (baseN(num // b, b).lstrip("0" ...

  6. Vue项目框架

    Vue项目框架 基本组件的使用: new Vue({ el, //要绑定的DOM element data, //要绑定的资料 props, //可用来接收父原件资料的属性 template, //要 ...

  7. 深入理解es6的promise

    一.promise入门 1. Promise对象是什么 回调函数的另一种原生实现,比之前回调函数的写法机构清晰,功能强大, 2.以前回调这么写 function a(fn){ let h = 1; s ...

  8. 【大数据】Spark内核解析

    1. Spark 内核概述 Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制.Spark任务调度机制.Spark内存管理机制.Spark核心功能的运行原理等,熟练掌握Spa ...

  9. office2013 激活方式

    1.下载   KMSpico_setup 2.关闭所有杀毒 3.打开  KMSpico_setup.exe 安装,下一步下一步,完成 4.打开word2013看下还有没弹出过期,没有即成功 5.卸载k ...

  10. (转)远程连接webservice遇到无法访问的问题解决办法

    原帖:http://stu-xu.i.sohu.com/blog/view/170429191.htm 如果在本地测试webservice可以运行,在远程却显示“测试窗体只能用于来自本地计算机的请求” ...