MySQL主从复制报错1594处理【转】
一、问题描述
Mysql主从复制模式中,slave上报错 “relay log read failure”,导致主从同步停止。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 10.0.0.93
Master_User: slaveuser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: dd-bin.002542
Read_Master_Log_Pos: 752973519
Relay_Log_File: dd-relay.002949
Relay_Log_Pos: 950583160
Relay_Master_Log_File: dd-bin.002540
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB: mysql,test,information_schema
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1594
Last_Error: 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.
Skip_Counter: 0
Exec_Master_Log_Pos: 950583017
Relay_Log_Space: 2900478067
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1594
Last_SQL_Error: 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.
Replicate_Ignore_Server_Ids:
Master_Server_Id: 93
1 row in set (0.00 sec)
=============================================
二、原因分析
报错信息为从库“无法读取relay log 里的条目”,可能原因为master库的binglog错误,或slave库的中继日志错误。或者为网络问题及bug原因。
一般是由于网络故障或slave库压力过大,导致relay-log格式错误造成的。找到当前已经同步的时间点,重新设置主从同步,就会产生新的中继日志,恢复正常。
三、问题处理
从"show slave status\G"的输出中,找到如下信息:
Relay_Master_Log_File: dd-bin.002540 //slave库已读取的master的binlog
Exec_Master_Log_Pos: 950583017 //在slave上已经执行的position位置点
停掉slave,以slave已经读取的binlog文件,和已经执行的position为起点,重新设置同步。会产生新的中继日志,问题解决。
(不需要指定host,user,password等,默认使用当前已经设置好的)
mysql>stop slave; mysql>change master to master_log_file='dd-bin.002540' , master_log_pos=950583017; mysql>start slave; |
四、验证结果
再次查看,错误已经解决,slave 开始追 master 的日志
mysql>show slave status\G
Exec_Master_Log_Pos: 225927489 //slave上已经执行的position已经变化
Seconds_Behind_Master: 58527 //slave 落后主库的时间,单位秒
过几秒钟,再次查看。离与master同步更近了
mysql>show slave status\G
Exec_Master_Log_Pos: 307469867
Seconds_Behind_Master: 29570
五、从relay-log中验证最后同步日志position。(作为验证,非必须)
还可以从 Relay_Log_File: dd-relay.002949 的记录找到当前已经同步的position。
使用mysqlbinlog 查看中继日志 dd-relay.002949 最后的记录
#mysqlbinlog dd-relay.002949 >/tmp/relay_log.sql #tail /tmp/relay_log.sql # at 950582947 #140914 3:32:30 server id 93 end_log_pos 950582990 Query thread_id=1256813 exec_time=0 error_code=0 SET TIMESTAMP=1410636750/*!*/; insert into blog_month_post_count (id, `count`) values (34509691, 0) on duplicate key update `count`=values(`count`) /*!*/; # at 950583133 #140914 3:32:30 server id 93 end_log_pos 950583017 Xid = 14033635514 COMMIT/*!*/; # at 950583160 #140914 3:32:30 server id 93 end_log_pos 950583092 Query thread_id=1256815 exec_time=0 error_code=0 SET TIMESTAMP=1410636750/*!*/; BEGIN /*!*/; DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; |
可以看到,中继日志中最后一次执行成功的position 为 950583017,与 Exec_Master_Log_Pos: 950583017 记录一致。
转自
解决Mysql复制Relay log read failure 的问题-雨中行走-51CTO博客 http://blog.51cto.com/wuwei5460/1552798
MySQL主从复制报错1594处理【转】的更多相关文章
- mysql主从复制报错解决方案
mysql主从复制报错解决方案 我先制造个错误 在slave删除个info3字段 然后在master 在info3插入数据 报错如下<pre> Last_SQL_Errno: 1054 L ...
- 配置MySQL主从复制报错Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work
配置MySQL主从复制报错 ``` Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave ha ...
- MySQL主从报错1594
一.主从报错 Relay log read failure 问题原因,MySQL主从使用的是kvm虚拟机,物理机超分严重,在负载高的情况下会kill掉占用资源最多的虚拟机,再启动后导致主从失败 mys ...
- mysql主从复制报错 :Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
在配置mysql主从复制时,想通过 grant replication slave on bbs.* to 'bbs'@'192.168.1.3' identified by '123456'; 来限 ...
- MySQL主从复制报错一致性问题解决
当MySQL主从复制中因为不一致报错的情况,我们第一时间想到的就是使用pt-table-checksum来进行检查主从一致并进行修复,但是使用此工具的前提是主从复制线程都为on状态, 所以这种情况下可 ...
- MySQL主从复制报错及解决方法
mysql> show slave status \G *************************** 1. row *************************** Slave_ ...
- mysql主从复制报错(一主一从):从库报错Last_SQL_Errno: 1008
配置完主从复制后(一主一从),在从库删了一个测试库,结果在从库上使用show slave status\G查看主从同步状态报如下错误:Last_Errno: 1008,经过排查得知:主从环境删除要先在 ...
- MySQL主从复制 报错处理
基于GTID的主从复制: 跳过一个事务: SET @@session.gtid_next = '冲突的GTID号';BEGIN;COMMIT; SET gtid_next = 'AUTOMATIC';
- python 3.5.2安装mysql驱动报错
python 3.5.2安装mysql驱动报错 python 3.5.2安装mysql驱动时出现如下异常: [root@localhost www]# pip install mysql-connec ...
随机推荐
- Ubuntu编译Protobuf(Base tensorflow-12)报错
报错1: dogepool@ubuntu-server:~/dogecoin$ ./autogen.sh./autogen.sh: 50: ./autogen.sh: autoreconf: not ...
- MyBatis-获取 SqlSession
Main 方法,mybatis 版本为 3.5.0 返回一个 DefaultSQlSession 对象,包含 Executor 和 Configuration InputStream inputStr ...
- 5.Hystrix-服务降级
所谓降级,就是当某个服务出现异常之后,服务器将不再被调用,此时服务端可以自己准备一个本地的fallback回调,返回一个缺省值. 这样做,虽然服务水平下降,但好歹可用,比直接挂掉要强,当然这也要看适合 ...
- python练习实例2--------构造数据类型
有如下数据类型 cars = ['鲁A32444', '鲁B12333', '京B8989M', '黑C49678', '黑C46555', '沪B25041', '黑C34567'] locatio ...
- 利用C#访问注册表获取软件的安装路径
文章地址:https://blog.csdn.net/yl2isoft/article/details/17332139
- sql server中的merge
http://www.cnblogs.com/CareySon/archive/2012/03/07/2383690.html 简介 Merge关键字是一个神奇的DML关键字.它在SQL Server ...
- [译]Nuget.Server
原文 NuGet.Server是一个包,可用于使一个ASP.NET应用host一个package feed . 使用VS创建一个新的空WEB应用,添加Nuget.Server包. 配置应用的Packa ...
- 【LDAP】LDAP注入漏洞与防御
0x01 前言 前两天爆了一个LDAP漏洞,据说存在了8年现在才被发现,感概一下,不知这8年来有多少站被搞了... 想着复现这个漏洞,就先复习一下LDAP注入的相关知识吧,差了很多资料,记一下笔记. ...
- hashMap源码解析(五)
---恢复内容开始--- 首先抛出一个问题: 为什么hashMap一般使用String作为key? 这是我学习前辈们的博文时看到的一个问题,觉着很有意思,所以记录下来. 原因1: 我当时的第一反应是: ...
- [C++]PAT乙级1008.数组元素循环右移问题 (20/20)
/* 1008. 数组元素循环右移问题 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 一个数组A中存有N(N>0)个整数, ...