为了账号安全,请及时绑定邮箱和手机立即绑定

【MySQL运维】解决由于中继日志报错导致主从故障一例

标签:
MySQL


今天一哥们发来求助,说主从不同步了,他发给主从的报错信息,发现从error日志报错(没有截取到show slave status\G的相关信息),但是通过查看日志信息报错如下:

wKioJlLCd2ayVzOnAABZB0BrYwM314.jpg

wKioOVLCd1_hnRLVAAD8CzSb0ns805.jpg

上面的报错信息显示无法读取relay日志,有可能是中继日志损坏~~~根据经验,查看到他的中继文件名中带有localhost,就断定肯定是由于在mysql下在运行的情况下修改了主机名,导致relay日志文件损坏。

他们当前使用的数据库是:Percona-Server-5.5.24-rel26.0-256.Linux.x86_64

这时让我比较惊讶的~~~~呵呵~~~~(目前他公司没有DBA...)

解决办法:

首先,确认下从服务器是否可以停止(呵呵。。这种情况下也不得不停止服务了),让他停止mysqld服务:

注:在停止服务前先查看:show slave status\G,查看下从的同步状态

# /etc/init.d/mysqld stop

然后,找到中继日志的目录,把相关中继日志相关的文件全部删除

其次,启动mysqld服务,reset slave的主从连接信息,再重新连接到主:

# /etc/init.d/mysqld start

# mysql -uroot -p

mysql> reset slave all;    #这里要用reset salve all 完全清除之前的同步状态信息

mysql> change master to master_host='10.11.10.25',master_user='repl_user',master_password='XXXX',master_log_file='mysql-bin.000072',master_log_pos=455578221;

mysql> start slave;

mysql> show slave status\G

最后他按照我的给步骤来,最终于看到了两个大大的 Yes.....

根据这哥们公司运维对于出现这个故障的一点总结,对于新手来说很重要,老手都懂的~~~哈哈:

1. binlog 和 relaylog日志文件名要自己定义名字,并写入配置文件!

2. 操作之前得检查...(废话,但是很多人一来直接操作)

3. 运维不规范化(主机名都localhost),应用基础操作没定义好~~

4. ....

©著作权归作者所有:来自51CTO博客作者qzhijun的原创作品,谢绝转载,否则将追究法律责任

mysql主从故障MySQL


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消