mysql 5.6 开启gtid_mysql 5.6迁移到5.7并开启GTID补充

外链网址已屏蔽

GLOBAL.ENFORCE_GTID_CONSISTENCY 新补充2种模式:

OFF_PERMISSIVE:不产生GTID事务,Slave同时接受没有GTID的事务和GTID的事务

ON_PERMISSIVE:新事务为GTID事务,SLAVE接受GTID事务也接受不带GTID事务

官档ENFORCE_GTID_CONSISTENCY兼容性列表:

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

官档GTID_NEXT兼容情况

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

1、为MySQL 5.6的主库搭建一个未开启GTID的MySQL 5.7从库 ( 设置read_only )

2、利用 pt-table-checksum & pt-table-sync 工具持续进行主从一致性校对和修复数据

3、确保主从数据的一致性后,利用MHA等方式进行主从切换。

切换成功后解除MySQL 5.7的read_only状态,

并且设置MySQL 5.6(旧的主库)为read_only 状态。读写请求都指向MySQL 5.7(新的主库)

4、在MySQL 5.7上在线启用GTID( 简单使用伪代码代替容易记录复习)

4.1、 观察binlog信息

binlog 文件是否有 SET @@SESSION.GTID_NEXT=

主库:

4.2、 在线检查数据库中gtid的操作有无异常

检查周期: 7天或以上

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;

if 没有告警:

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON; 或 SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE; 或 SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

else:

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = off

SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

if 确保匿名事务数量 == 0:

SET @@GLOBAL.GTID_MODE = ON;

从库:

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;

if 没有告警:

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON; 或 SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE; 或 SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;

else:

SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = off

SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

if 确保匿名事务数量 == 0:

SET @@GLOBAL.GTID_MODE = ON;

STOP SLAVE [FOR CHANNEL 'channel'];

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

START SLAVE [FOR CHANNEL 'channel'];

4.4、 主从库

将gtid参数配置到参数文件中

ENFORCE_GTID_CONSISTENCY = ON

GTID_MODE=ON

5、下线关闭MySQL 5.6(旧的主库)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值