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 ...
随机推荐
- u-boot(六)小结
目录 u-boot(六)小结 概述 内存分布 内核交互参数 title: u-boot(六)小结 tags: linux date: 2018-09-27 23:23:05 --- u-boot(六) ...
- SQL语法基础之UPDATE语句
SQL语法基础之UPDATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看UPDATE语句的帮助信息 1>.查看UPDATE的帮助信息 mysql> ? ...
- 利用WinRAR命令行压缩文件或文件夹
压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/ 压缩多个文件winrar a -ag -ibck bak.rar filename1 f ...
- JAVA核心技术I---JAVA基础知识(static关键字)
一:static特殊关键字用处 –变量 –方法 –类 –匿名方法 二:静态变量:类共有成员 –static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在. –所有的对象实例,对于静态变量都 ...
- Ruby on Rails,一对多关联(One-to-Many)
在上一篇文章中,我们知道通过has_one和belongs_to方法定义一对一关联关系.接下来是更常见的情况,一对多关联.比如老师与所教课程的关系,一个老师负责多个课程.换成对象之间的关系就是:一个老 ...
- js拼接HTML页面元素a标签遇到的问题
业务,如下图需要做一个广告轮播的图片链接 使用了ajax请求后台,在js拼接html,关键代码: $("#scroll_img").html(""); for ...
- ThinkSNS2.5前台getshell+后台任意文件删除
12年爆出的一个洞 前几天比赛的一个cms 于是跟出题人表哥要过来审计了看看 漏洞文件再根目录thumb.php中 <?php /* * 自动缩略图 参数 url|w|h|type=" ...
- Elasticsearch 集群 单服务器 超级详细教程
前言 之前了解了Elasticsearch的基本概念.将spring boot + ElasticSearch + head插件 搞通之后.紧接着对es进行下一步的探索:集群.查阅资料的过程中,找到了 ...
- 2016vijos 1-3 兔子的晚会(生成函数+倍增FWT)
求出序列的生成函数后,倍增FWT #include<cstdio> using namespace std; #define N 2048 ; int inv; ]; int Pow(in ...
- JavaSE回顾及巩固的自学之路(二)——————进入JavaSE
好的.今天接着上一篇文章对JavaSE的历程初步介绍,开始对JavaSE的技术性知识进行探讨. 首先,选择编程,成为一名程序员,应该会了解一些计算机的相关基础知识,毕竟,以后就是和计算机打交道了嘛.s ...