在线启用GTID,这样就不会对生产造成影响。

1.在每个Server上,执行 SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=WARN;确保在ErrorLog中没有WARN【警告】,若有请修复后再进行下一下。

2.在每个Server上,执行SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=ON;

3.在每个Server上,执行SET @@GLOABL.GTID_MODE=OFF_PERMISSIVE;该步在Server间的执行先后无关,一定要在所有Server都执行守我后在进行下一下。

4.在每个Server上,执行SET @@GLOABL.GTID_MODE=ON_PERMISSIVE;

5.等待直到所有Server上的ONGOING_ANONYMOUS_TRANSACTION_COUNT都为0.可用下面检测:
  SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

6.确保每个slave上的anonymous transactions都复制完成,用于在线切换复制模式:先在Master上 SHOW MASTER STATUS;再在每个Slave上执行以确定要等待的时间:SELECT MASTER_POS_WAIT(file,position);

7.在每个Server上,执行 SET @@GLOBAL.GTID_MODE=ON;

8.修改每个Server上的配置文件,添加gtid_mode=ON;为了在启动时自动Fail-over,可以执行下面的,若为多源复制,则要为每个channel执行。

  STOP SLAVE[FOR CHANNEL 'channel'];

  CHANGE MASTER TO MASTER_AUTO_POSITION=1 [FOR CHANNEL 'channel'];

  START SLAVE [FOR CHANNEL 'channel'];

在线取消 GTID事务,改为BinLog:

1.为每个Slave执行下面的:

STOP SLAVE [FOR CHANNEL 'channel'];
CHANGE MASTER TO MASTER_AUTO_POSITION = 0, MASTER_LOG_FILE = file, \
MASTER_LOG_POS = position [FOR CHANNEL 'channel'];
START SLAVE [FOR CHANNEL 'channel'];
2.在每个Server上:SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

3.在每个Server上:SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

4.在每个server上,Check 直到@@GLOBAL.GTID_OWNED为空。

5.等待所有事务都被复制到所有Slave上。确认方法同上。

6.在每个Server上,执行SET @@GLOBAL.GTID_MODE=OFF;

7.在每个Server上,配置 gtid_mode=OFF,

如果想设enforce_gtid_consistency=OFF,也要在配置中加上。

 

GTID复制之二的更多相关文章

  1. MySQL 5.7基于GTID复制的常见问题和修复步骤(二)

    [问题二] 有一个集群(MySQL5.7.23)切换后复制slave报1236,其实是不小心在slave上执行了事务导致 Got fatal error 1236 from master when r ...

  2. 深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman ...

  3. MariaDB的GTID复制和多源复制

    什么是GTID? GTID就是全局事务ID(global transaction identifier ),最初由google实现,官方MySQL在5.6才加入该功能.GTID实际上是由UUID+TI ...

  4. MariaDB GTID 复制同步

    MariaDB GTID 复制同步 GTID:Global Transaction ID,全局事务ID,在整个主从复制架构中任何两个事物ID是不能相同的.全局事务ID是Mster服务器生成一个128位 ...

  5. mysql之 MySQL 主从基于 GTID 复制原理概述

    一. 什么是GTID ( Global transaction identifiers ):MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid ...

  6. MySQL的GTID复制与传统复制的相互转换

    主库:192.168.225.128:3307从库1:192.168.225.129:3307 Gtid作为5.6版本以来的杀手级特性,却因为不支持拓扑结构内开关而饱受诟病.如果你需要从未开启GTID ...

  7. MySQL5.7 的GTID复制

    MySQL5.7 的GTID复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 在MySQL5.6之后其官方推出了GTID复制方式,和传统的基于bin log复制方式有所不同,接 ...

  8. Mysql基于GTID复制模式-运维小结 (完整篇)

    先来看mysql5.6主从同步操作时遇到的一个报错:mysql> change master to master_host='192.168.10.59',master_user='repli' ...

  9. MHA-手动Failover流程(传统复制&GTID复制)

    本文仅梳理手动Failover流程.MHA的介绍详见:MySQL高可用架构之MHA 一.基本环境 1.1.复制结构 VMware10.0+CentOS6.9+MySQL5.7.21 ROLE HOST ...

随机推荐

  1. JS写的多级联select,如何取值

    var $ = function (id) {    return "string" == typeof id ? document.getElementById(id) : id ...

  2. 【亲述】Uber容错设计与多机房容灾方案 - 高可用架构系列

    此文是根据赵磊在[QCON高可用架构群]中的分享内容整理而成.转载请事先联系赵磊及相关编辑. 赵磊,Uber高级工程师,08年上海交通大学毕业,曾就职于微软,后加入Facebook主要负责Messen ...

  3. JVM内存分析工具MAT使用

    1. 首先去官网下载MAT软件,路径如下: 点击打开链接 2. 将heap dump文件打开即可分析.

  4. iOS开发——高级篇——传感器(加速计、摇一摇、计步器)

    一.传感器 1.什么是传感器传感器是一种感应\检测周围环境的一种装置, 目前已经广泛应用于智能手机上 传感器的作用用于感应\检测设备周边的信息不同类型的传感器, 检测的信息也不一样 iPhone中的下 ...

  5. [Asp.net MVC]Asp.net MVC5系列——添加模型

    目录 概述 添加模型 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 概述 在本节中我们将追加 ...

  6. Unity手游之路<七>角色控制器

    Unity手游之路<七>角色控制器 我们要控制角色的移动,可以全部细节都由自己来实现.控制角色模型的移动,同时移动摄影机,改变视角.当然Unity也提供了一些组件,可以让我们做更少的工作, ...

  7. python\c交互学习网站手机

    http://use-python.readthedocs.org/zh_CN/latest/interact_with_other_language.html https://www.zhihu.c ...

  8. iOS 容器 addChildViewController

    //在parent view controller 中添加 child view controller FirstViewController *firstViewController=[[First ...

  9. [转载]localhost与127.0.0.1的区别

    原文链接:http://blog.csdn.net/xifeijian/article/details/12879395 很多人会接触到这个ip地址127.0.0.1.也许你会问127.0.0.1是什 ...

  10. GMM简单解释

    1.GMM(guassian mixture model) 混合高斯模型,顾名思义,就是用多个带有权重的高斯密度函数来描述数据的分布情况.理论上来说,高斯分量越多,极值点越多,混合高斯密度函数可以逼近 ...