您的位置:首页 > 数据库 > SQL

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

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







上面的报错信息显示无法读取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. ....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 主从故障