加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL案例--磁盘空间不够 MTS Group recovery失败

发布时间:2022-03-28 13:41:22 所属栏目:MySql教程 来源:互联网
导读:线上业务,最后一次内测阶段; 背景:MySQL-5.7.12 问题发生的现象: 收到报警信息,业务主库A的心跳检测失败,将备库B升级为业务主库; 问题发生的原因: 业务主库A的数据文件目录的磁盘空间剩余量为0%; 与此同时,不管是start slave还是change master都
      线上业务,最后一次内测阶段;
     背景:MySQL-5.7.12
     问题发生的现象:
     收到报警信息,业务主库A的心跳检测失败,将备库B升级为业务主库;
     问题发生的原因:
     业务主库A的数据文件目录的磁盘空间剩余量为0%;
 
与此同时,不管是start slave还是change master都无法完成,会在error-log中不断的刷新类似的错误信息;
 
由于业务主库A降级是在磁盘空间写满以后,所以可以确认备库B上的业务操作不可能会在A上面执行,两个库之间不会有一致性的问题;
于是选择了reset slave all+change master的方式,重新恢复了同步;
 
官方推荐的恢复步骤:
1.设置relay_log_recovery=0;
2.启动slave的时候,带上特殊命令:START SLAVE UNTIL SQL_AFTER_MTS_GAPS;
3.设置relay_log_recovery=1;
非常重要的一点:relay_log_recovery不是一个动态的参数,需要重启数据库实例;
 
这个问题在5.7.13得到了修复,整个操作步骤会在重启的时候自动进行;重启的时候...重启的...重启...
 
虽然和bug文档以及官方描述的场景不同,不过上文中出现的情况应该是同一个原因造成的;
好在能够确认A库上的multi-threaded replication slave不可能出现事务不一致的情况,所以就简单粗暴的清除了slave的信息,然后重新进行了同步。

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!