在线修改GTID模式

在线修改GTID模式

1、 在每一台机器上执行命令

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;

这是很重要的一步,必须确保服务器上没有违反GTID规范的SQL,否则当设置为GTID模式后,
这些业务SQL会被拒绝执行,建议设置上面变量值间隔一天后errorLog没有警告,才可进行下一步。

2、 在每一台服务器上执行

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;

上面参数表示GTID模式下一些SQL会被拒绝执行,有:create table ...select ....,CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE,在一个事务中更新事务表和非事务表。

3、 在每一台服务器上执行

SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;

表示采用匿名事务记录binlog,slave可以兼容GTID事务和匿名事务,执行该命令没有顺序可言,但是必须每个机器都要执行。

4、在每一台服务器上执行

SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

表示采用GTID事务记录binlog,slave可以兼容GTID事务和匿名事务,执行该命令没有顺序可言,但是必须每个机器都要执行。

5、等待步骤5前产生的事务(匿名事务)全部在slave都已应用完成

6.1)在master上执行:show master status;记录file和pos
6.2) 在所有slave执行:SELECT MASTER_POS_WAIT(‘file‘, pos);如果执行结果都为0表示都已经应用完成,可以进行下一步,否则需要一直等待完成。

方法二:在每一台slave上都执行show master status;查看Executed_Gtid_Set是否有值,如果不为空了,说明已经开始使用GTID复制了

6、在每一台服务器上执行

SET @@GLOBAL.GTID_MODE = ON;

7、在所有slave上执行

 stop slave;
 CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
 START SLAVE;
 

8、在每一台服务器上修改my.cnf

 gtid_mode = on
 enforce_gtid_consistency = 1

原文地址:https://www.cnblogs.com/mysql-dba/p/9901643.html

时间: 2024-11-05 20:35:44

在线修改GTID模式的相关文章

mysql在线开启GTID模式

1.要求: (1)必须是5.7.6版本以上的mysql (2)GTID状态为OFF 2.开启步骤: (1):SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'WARN'; (2):SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'ON'; (3):SET GLOBAL GTID_MODE = 'OFF_PERMISSIVE'; (4):SET GLOBAL GTID_MODE = 'ON_PERMISSIVE'; (5):SET GLOBA

不停应用服务,在线建立或重做mysql主从复制的案例,包含一般模式和GTID模式

mysql主从嘛,绝大多数公司都有用到,GTID发展到现在也是越来越多人用,停止应用服务来做主从,略显low了,现在都流行在线做,不影响业务,多实际是吧,不啰嗦了,现在就来看看案例. 先说明,案例分两种方案,实现的意义是一样的,一种是mysqldump方式,一种是xtrabackup方式,视乎实际情况,因为有些业务不一定能用xtrabackup的. 先说mysqldump方式, 因为mysql自带,不需要再做些什么,比较方便易用,不过需要强调一下,数据量太大的话,mysqldump就略显不足了,

Centos7-MariadbDB多实例基于GTID模式的主从配置

Mariadb GTID 全局事务ID(Global transaction ID,GTID)为每个Event Group (就是一系列 Event 组成的一个原子单元,要么一起提交要么都无法提交)引入了一个标识,因此 GTID 是标识"事务"的最佳方式(尽管 Event 里面还包含一些非事务的DML语句和DDL,它们可以作为一个单独的 Event Group ).每当一个 Event Group 从Master复制到Slave时,它的 GTID 也通过 GTID Event 被传到S

GTID模式复制异常处理

GTID区间有中断导致复制异常处理案例 昨天处理了一个MySQL 5.6版本下开启GTID模式复制异常案例,MASTER上的任何操作都无法在SLAVE上应用,SLAVE的RELAY LOG里有记录,但SLAVE的BINLOG却找不到蛛丝马迹. 由于开启了GTID,所以排查起来也简单,只需要在SLAVE上把RELAY LOG和BINLOG分别解析成文本文件,再直接搜索MASTER的UUID,就能找到SLAVE上是否应用了MASTER复制过来的事务. 排查过程中,曾经一度怀疑是因为设置了BINLOG

mysql5.7使用gtid模式搭建主从复制架构

一.架构 两台mysql服务器做一主一从,172.28.18.69(主) 172.28.18.78(从) 二.分别编译安装mysql5.7 1.下载mysql5.7.26源码包 [[email protected]1 /]# mkdir /usr/local/src/mysql-5.7.26-src [[email protected]-1]# cd /usr/local/src/mysql-5.7.26-src/ [[email protected]-1 mysql-5.7.26-src]#

MySQL MHA--故障切换模式(GTID模式和非GTID模式)

GTID和非GTID故障切换模式选择 MySQL 5.6版本引入GTID来解决主从切换时BINLOG位置点难定位的问题,MHA从0.56版本开始支持基于GTID的复制,在切换时可以采用GTID模式和非GTID模式两种模式进行切换,如何在发生故障切换时如何判断采用哪种切换方式呢? 在MHA/MasterFailover.pm的do_master_failover方法中定义了"主库宕机"情况下的故障切换流程,其中第一步就是检查配置文件和确定故障切换模式 相关代码: my ( $server

取消基本数据的修改——备忘录模式的应用

模式应用背景 在机房收费系统中,有一个修改基本数据的窗体: 因为在文本框中修改数据之后,只要不点击修改按钮,就不会更新到数据库中,所以,个人版中这里的取消按钮是从数据库读取原始数据,再重新加载到窗体上来.这次合作的时候,加入了备忘录模式重新处理这个取消按钮. 如何加入模式 基本思路是这样的: 1,将要保存的BaseData(基本数据类的实体名)作为成员变量放到备忘录类里面,并在备忘录类初始化的时候传入要保存的基本数据. 2,定义发起者用来创建和回恢复备忘录的数据,如果点击了取消后,就用这个类来恢

MySQL在线修改表结构pt-osc

MySQL在线修改表结构pt-osc 重所周知 MySQL的DDL操作操作是相比比较昂贵的.因为MySQL在修改表期间会阻塞任何读写操作. 基本上业务处于瘫痪.如果数据量较大可能需要好几个小时才能完成,无法容忍这个操作.Percona开发了一系列的工具 Percona Toolkit包,其中有一个工具pt-online-schema-change可以在线执行DDL操作,不会阻塞读写操作从而影响业务程序.当然也有其他的工具 例如 MySQL5.6的online ddl 还有gh-ost 本文主要讲

为VisualSVN Server增加在线修改用户密码的功能

原文:为VisualSVN Server增加在线修改用户密码的功能 附件下载:点击下载 VisualSVN Server是一个非常不错的SVN Server程序,方便,直观,用户管理也异常方便. 不过,它本身并没有提供在线修改密码的功能.由于在实际使用过程中,一旦SVN的用户比较多,只单单依靠windows的管理控制台去修改密码 显然是不太合适的. 总不能任何人想改个密码还要通过管理员吧?所以,就想为其增加在线修改密码的功能. 说实话,网上已经有了可以在线修改密码的方法.试用过,也的确可以.不过