在线启用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. 第21天 fastlane

    [投稿]使用 fastlane 实现 iOS 持续集成 http://www.cocoachina.com/ios/20150916/13433.html

  2. FineUI第十二天---锚点布局

    锚点布局的典型结构: <x:Panel Layout="Anchor" runat="server">              <Items ...

  3. jq常用的方法

    .eq(i) //获取第几个元素 .text() //获取或设置元素文本内容 .html() //获取或设置元素html代码内容 .val() //获取或设置表单元素值 .attr() //获取或设置 ...

  4. Python 列表元素排重uniq

    # -*- coding: gbk -*- def uniq(ls): lsCopy=[e for e in ls] for i in xrange(1,len(ls)): for j in xran ...

  5. Apache和PHP的安装

    最近看了一些教科书,可能是印刷的缘故,只是一个空格没有打印,再加上网上的很多博客文章只是顺手转载,并没有仔细的检查,还有php和apache之间的版本问题,害得我花了4,5小时的时间才搞定环境的搭配. ...

  6. 【GoLang】GoLang struct 使用

    代码示例: package main import "fmt" type Human struct { name string age int weight int } type ...

  7. Walls and Gates

    You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstac ...

  8. meteor 为基础,联合 Apollo + React + React-Router

    Graphql with Apollo, Meteor and React: https://janikvonrotz.ch/2016/10/09/graphql-with-apollo-meteor ...

  9. ocket.chat 使用 Meteor 开发的实时协作工具,类似 丁丁。

    ocket.chat  使用 Meteor 开发的实时协作工具,类似 丁丁. https://rocket.chat/

  10. ffmpeg-20160701-git-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...