Mysql gtid主从切换报错1236分析与规避措施

Mysql gtid主从切换报错1236分析与规避措施

背景介绍:
某系统使用mysql 5.7.22版本,两个虚拟机做主从,使用ip别名挂载服务ip,使用gitd模式进行主从复制,binlog日志保留7天,在计划内切换到此系统已经上线超过1个月,切换演练中主从角色对调时候报错1236错误。
切换前
a节点为主库
b节点为从库

切换后
b节点为主库
a节点为从库

分析过程:
a节点新从库执行
show slave status \G;
发现报错
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_IO_Errno: 1236
Last_IO_Error: master has purged binary logs --主要报错提示

a节点新从库执行
查看a节点库的uuid
show global variables like ‘%uuid%’;
62c3178d-b039-11e8-ac5d-005056b25d80

查看a节点库的gtid信息
show global variables like ‘%gtid%’;
gtid_executed 62c3178d-b039-11e8-ac5d-005056b25d80:213447708

gtid_purged 62c3178d-b039-11e8-ac5d-005056b25d80:213410666
62c3178d-b039-11e8-ac5d-005056b27052:1-2

b节点新主库执行
查看b节点库的uuid
show global variables like ‘%uuid%’;
62c3178d-b039-11e8-ac5d-005056b27052

查看b节点库的gtid信息
show global variables like ‘%gtid%’;
gtid_executed 62c3178d-b039-11e8-ac5d-005056b25d80:213447708
62c3178d-b039-11e8-ac5d-005056b27052:1-25

gtid_purged 62c3178d-b039-11e8-ac5d-005056b25d80:213410666
62c3178d-b039-11e8-ac5d-005056b27052:1-25

报错原因:
比对a节点与b节点gtid信息发现,b库的62c3178d-b039-11e8-ac5d-005056b27052:3-25 事务集合应该在a库回放,但是相关日志已经被设置7天binlog策略删除,新从库要回放b节点62c3178d-b039-11e8-ac5d-005056b27052:3-25 但已经没有了相关binlog,所以报错1236。

规避措施:
在正常情况下希望只有主库才能更新事务,从库只能回放主库执行过的事务,上述报错原因是从库在从库角色的时候自己写入了异常数据。

个人几点思考:
1、规范搭建主从,主库的数据与从库数据在初始化主从时候务必保持一致。
2、设置从库的super_read_only =on ;, read_only=on;,当主从切换时候在切换时候再把super_read_only =off, ,read_only=off;
3、限制mysql 应用用户权限只能对应用库对象进行增删改查。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值