• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL Slave relay_log损坏修复

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

server 刷新relay_log,正要更新master.info文件的master读位置时,server宕机,master.info未更新,导致replication启动时本文来源gaodaimacom搞#^代%!码&网(,导致

时间:2013-04-18 11:32

故障:数据库服务器无故重启,当Slave启动后,报relay_log损坏,SQL线程无法进行。

故障原因:OS的重启,可能会导致relay_log 无法正常同步

此时的解决办法是重新进行change master to ,但master log pos 采用的是Exec_Master_Log_Pos(show slave status\G变量输出)从slave已经执行到的位置开始重新接受数据。

本以为万事ok,但slave上却报出duplicate key的错误,之后可想而知 是设置sql_slave_skip_counter =1 不断跳过。

对duplicate key 原因解释为MYSQL 本身问题

Slave 提交事务和更新复制信息并不是原子性操作:

I/O线程同步:对于中继日志刷新到磁盘,和更新master.info 分别是fsync调用。

发生如下情况可能会造成接受重复事件:

server 刷新relay_log,正要更新master.info文件的master读位置时,server宕机,master.info未更新,导致replication启动时,导致事件重复。

SQL线程同步:SQL线程是先将事务提交到存储引擎,然后再更新relay_log.info文件

事件在数据库上已经应用,,但未更新relay-log.info。恢复时,SQL会重复执行某些事件。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL Slave relay_log损坏修复

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址