您好,登录后才能下订单哦!
环境信息
操作系统:CentOS Linux release 7.2.1511 (Core)也就是说,我们使用change master 语句的时候,只使用master_auto_position选项而不指定MASTER_LOG_FILE和MASTER_LOG_POS选项本身就是一种不规范的行为,再加上没有指定RELAY_LOG_FILE和RELAY_LOG_POS选项,导致relay log被清理了,我们知道,在前面执行stop slave;语句时,我们可以看到还有复制延迟的(Seconds_Behind_Master: 47),也就是说,这部分复制延迟的relay log被清理可能就是导致worker线程发生错误的原因(缺失的GTID EVENT就记录在被清理的relay log中)
现在,原因我们应该找到了,但是还需要进一步确认,但根据目前的犯罪现场,已经调查不下去了,我们需要把复制先恢复之后,重新复现并在每一个步骤查看尽可能全面的信息以进行诊断。
要恢复复制环境,我们可以把master_auto_position设置为1,根据GTID复制协议,设置为1启动复制时,会根据公式"UNION(@@global.gtid_executed, Retrieved_gtid_set - last_received_GTID)"自动计算IO线程重新向主库请求binlog的GTID SET,告诉主库自己当前已经执行了哪些事务,主库会把从库缺失的事务发送给从库。所以理论上只需要把master_auto_position设置为1启动的复制就可以恢复正常。
现在,我们来重现复现步骤吧
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。