这里说一下关于如何在线变更复制类型(日志复制到全局事物复制),参考课程:mysql5.7复制实战

先决条件
    (1)集群中所有的服务器版本均高于5.7.6
(2)集群中所有的服务器gtid_mode都设置为off(使用 show variables like 'gtid_mode' 命令查看)

1:将基于日志的复制变更为基于事物的复制处理步骤
    (1) 设置参数
   gtid_mode在5.7版本有一下4个值
   off:关闭
   off_permissive:准备关闭
   on_permissive:准备开启
   on:开启
   这4个值只能从off-->off_permissive-->on_permissive-->on或者(off<--off_permissive<--on_permissive<--on)的顺序设置
   
   (主服务器和从服务器上分别执行以下命令,前2条命令按顺序分别指向,而不是在一台服务器上一次性事项所有命令)
       set @@global.enforce_gtid_consistency=warn;      //强制设置gtid一致性,值为:warn,设置完后建议用tail -f命令查看一下mysql-error.log是否有异常信息
       set @@global.enforce_gtid_consistency=on;        //强制设置gtid一致性,值为:on
       set @@global.gtid_mode=off_permissive;            //设置gtid_mode为准备关闭状态
       set @@global.gtid_mode=on_permissive;
        //设置gtid_mode为准备开启状态
   
    (2) 在从服务器上查看状态 
   show status like 'ongoing_anonymous_transaction_count';   //查看基于日志的复制的事物数量,为0或者为空表示正常。这一步是为了保证基于日志复制的数据的一致性,防止有事物在主
                                                             //服务器上执行完成,在从服务器上没有被执行,导致数据丢失
   set @@global.gtid_mode=on;                       //设置gtid_mode为开启状态
   
   在从服务器上
   停止slave;
   stop slave;
   change master to master_auto_position=1;  (改变复制方式)
   start slave;

查看

(3)持久配置(重要操作)
    确认成功切换到基于事物的复制之后,需要将一下2个参数添加到my.cnf中(所有的mysql服务器节点)
保证在下次重启mysql服务器的时候会自动的启动全局事物复制的方式进行主从同步
    enforce_gtid_consistency=on
gtid_mode=on

这一步非常重要,千万不要忘记了。不然下次启动mysql你就会发现主从同步跪了。

2: 将基于事物复制变更为基于日志的复制
      应用场景(由于工具或接入的第三方应用不支持事物的复制,则要改为基于日志的复制)
  
先决条件
    (1)集群中所有的服务器版本均高于5.7.6
(2)集群中所有的服务器gtid_mode都设置为on(使用 show variables like 'gtid_mode' 命令查看)

步骤:
    (1)
   stop slave;
   change master to master_auto_position=0,master_log_file='file',master_log_pos=;  //停止事物复制,设置日志复制的日志文件和日志文件节点
   start slave; 
   (2)     
       set @@global.gtid_mode=on_permissive;            //设置gtid_mode为准备开启状态
       set @@global.gtid_mode=off_permissive;
        //设置gtid_mode为准备关闭状态
   
   查看gtid_ownend是否为空字符串(在所有服务器上均要查看)
       sellect @@global.gtid_owned;
       set @@global.gtid_mode=off;   //关闭
   (3) 
       持久配置(重要操作)修改my.cnf中(所有的mysql服务器节点)
       enforce_gtid_consistency=off
   gtid_mode=off
这个其实就是和从事物到日志复制的一个反向操作

更多资料相关Mysql GTID 模式详解     mysql5.6新特性GTID基本原理    MySQL
5.6 全局事务 ID(GTID)兑现原理(一)

转自

mysql5.7主从复制--在线变更复制类型 - CSDN博客 http://blog.csdn.net/u014739462/article/details/70183458

mysql 5.7 gtid复制到传统复制在线切换 - zengxuewen2045的博客 - CSDN博客 http://blog.csdn.net/zengxuewen2045/article/details/52464390

mysql5.7主从复制--在线变更复制类型【转】的更多相关文章

  1. MySQL5.6主从复制最佳实践

    MySQL5.6     主从复制的配置  环境 操作系统:CentOS-6.6-x86_64 MySQL 版本:mysql-5.6.26.tar.gz 主节点 IP:192.168.31.57    ...

  2. MySQL5.7 GTID在线开启与关闭【转】

    当前场景   当前某些业务还有未开启GTID服务组,升级5.7后,如何检测是否符合开启GTID条件,如何在线修改切换使用GTID:已经升级5.7后,已经开启GTID,如何快速回滚后退: 线上gtid如 ...

  3. MySQL5.6主从复制搭建基于日志(binlog)

    什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟 ...

  4. redis系列--主从复制以及redis复制演进

    一.前言 在之前的文章已经详细介绍了redis入门基础已经持久化相关内容包括redis4.0所提供的混合持久化. 通过持久化功能,Redis保证了即使在服务器宕机情况下数据的丢失非常少.但是如果这台服 ...

  5. mysql主从复制跳过复制错误【转】

    跳过复制错误 mysql因为binlog机制问题,有些时候会出现从库重放sql执行失败的情况,特别是旧的STATEMENT模式最容易出现这种情况(因为函数和存储过程等原因),这也是为什么强调使用mix ...

  6. MySQL(mariadb)主从复制模式与复制过滤

    在前一篇文章<mysql多实例与复制应用>中只对mysql的复制做了简单的介绍,本篇内容专门介绍一下mysql的复制. MySQL复制 mysql复制是指将主数据库的DDL和DML操作通过 ...

  7. MySQL5.6主从复制方案

    MySQL5.6主从复制方案 1.主备服务器操作 环境:CentOS 6.3/6.4 最小化缺省安装,配置好网卡. 安装MySQL前,确认Internet连接正常,以便下载安装文件. # 新增用户组 ...

  8. MySQL 5.7在线设置复制过滤

    很久没有更新博客了,主要是公司事情比较多,最近终于闲下来了.然而5.7也GA了,有许多新的特性,其中现在可以进行在线设置复制过滤了.但是还是得停复制,不过不用重启实例了.方便了DBA们进行临时性的调整 ...

  9. mysql5.7 主从复制的正常切换【转】

    目前环境如下: master server IP:172.17.61.131 slave server IP:172.17.61.132 mysql version: mysql-5.7.21-lin ...

随机推荐

  1. js页面实时显示时间

    1.通过getMonth()实现获取月份,从0开始计数,需要+1: 2.通过getDay()实现获取星期天数,从0开始,0表示星期日: 3.通过getDate()获取日期. 4.setTimeout( ...

  2. Docker(五)-Dcoker容器

    简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境. 如果把镜像看成面向对象中的 类 的话,那么容器就是 类 的实例化 对象. 容器 启动容器 启动容器有两种方式,一种是基于镜像新建一个容 ...

  3. OneZero第四周第四次站立会议(2016.4.14)

    1. 时间: 15:00--15:10  共计10分钟. 2. 成员: X 夏一鸣 * 组长 (博客:http://www.cnblogs.com/xiaym896/), G 郭又铭 (博客:http ...

  4. 洛谷P2396 yyy loves Maths VII

    P2396 yyy loves Maths VII 题目背景 yyy对某些数字有着情有独钟的喜爱,他叫他们为幸运数字;然而他作死太多,所以把自己讨厌的数字成为"厄运数字" 题目描述 ...

  5. Python学习---------登陆系统代码实现

    题目要求: 一.编写登陆入口 1.输入用户名密码 2.认证成功后显示欢迎的信息 3.输错三次后锁定 Readme: 1.本次实现了登陆系统,若锁定就输出为锁定用户(锁定信息保存在user_lock.t ...

  6. 【模板】Floyd

    int n; ][MAX_N + ]; void Floyd() { ; k <= n; ++k) { ; i <= n; ++i) { ; j <= n; ++j) { d[i][ ...

  7. css 2D转换总结

    CSS中2D转换的形式是这样的: 选择器{ transform:转换函数(参数,参数): } 其中transform(是transform 不是transfrom)定义元素的2D或者3D转换: 2D转 ...

  8. sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据

    1. 右健数据库 –> Tasks –> Generate Scripts   2. 选择所有的表   3. 下一步,选择Advanded, Types of data to script ...

  9. 洛谷 P1144 最短路计数 解题报告

    P1144 最短路计数 题目描述 给出一个\(N\)个顶点\(M\)条边的无向无权图,顶点编号为\(1-N\).问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 第一行包含2个正 ...

  10. Python基础学习(三)

    了解了Python的基础使用,接下来继续练手廖雪峰老师的教学案例. 一.变量可以指向函数 说明,一个函数可以赋值给一个变量,该变量就会具有该函数的功能,举例: gg = abs print( gg(- ...