mysql 从库主机断电,恢复主从

1 篇文章 0 订阅

mysql 从库主机断电,恢复主从

一个风和日丽的下午,一台从库数据库所在服务器不幸断电关机。

一、从库出现报错信息

供电,恢复主机并启动mysql start ,mysql启动正常,查看主从状态show slave status; ; 有报错了

Slave_IO_Running: Yes
Slave_SQL_Running: No
Relay log read failure: Could not parse relay log event entry. 
The possible reasons are: the master's binary log is corrupted 
(you can check this by running 'mysqlbinlog' on the binary log),
the slave's relay log is corrupted (you can check this by
running 'mysqlbinlog' on the relay log), a network problem,
or a bug in the master's or slave's MySQL code. 
If you want to check the master's binary log or slave's relay log, 
you will be able to know their names by issuing 'SHOW SLAVE
STATUS' on this slave.

意思异常的原因大约是以下三个方面:

  1. server端二进制文件坏了
  2. slave端relay log 坏了
  3. 网络问题

二、解决方式

首先查看server端的日志文件,由于已知服务器断电时间不长,另外server端保留binlog的时间很长(n天,保留时长在主库配置文件,配置项:expire_logs_days ),所以不用担心server端binlog日志不存在的问题。

show slave status;
Relay_Master_Log_File: mysql-bin.000101
Exec_Master_Log_Pos: 623743253

看到执行的binlog日志的文件是mysql-bin.000101,登陆主库mysql server端查看日志文件,该文件确实存在。由于slave 停止同步的日志位置已知,即:Exec_Master_Log_Pos: 623743253,所以直接执行修改mysql 从库配置信息尝试从该位置恢复同步。

stop slave;
change master to master_log_file='mysql-bin.000101', master_log_pos=623743253;
start slave;
show slave status;

执行过后发现有error Could not execute Write_rows event on table ,尝试跳过该错误。

stop slave;
set global sql_slave_skip_counter=1;
start slave;
show slave status;

因为跳过了一条语句,所以一直观察,直到从库完成同步,才认为恢复成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值