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

当前场景

当前某些业务还有未开启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 兼容性列表

gtid.png?version=1&modificationDate=1504667478000&api=v2

上表说明

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值