12
返回列表 发新帖
楼主: daveyhook

mysql 同步问题:Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND

[复制链接]
论坛徽章:
3
2010年世界杯参赛球队:墨西哥
日期:2010-08-12 13:54:05ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:35
11#
发表于 2010-12-14 17:23 | 只看该作者

回复 #10 流水不腐 的帖子

mysql有存在把binlog位置记错的情况,只是几率非常小

使用道具 举报

回复
招聘 : 技术/实施/服务顾问
论坛徽章:
5
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212010广州亚运会纪念徽章:击剑
日期:2010-11-22 15:29:202011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15
12#
发表于 2010-12-14 18:18 | 只看该作者
小概率事件咋就发生在俺们头上了

那有没有解决的办法啊?除了使用slave-skip-errors,因为这个终究会导致主从数据不一致。而很多应用都依赖于MySQL的复制技术的啊

[ 本帖最后由 流水不腐 于 2010-12-15 09:23 编辑 ]

使用道具 举报

回复
论坛徽章:
2
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222011新春纪念徽章
日期:2011-02-18 11:43:35
13#
发表于 2010-12-15 14:52 | 只看该作者
原帖由 流水不腐 于 2010-12-14 16:02 发表
我也遇到了这个错误

MySQL版本5.1.43,MASTER和SLAVE的binlog_format都是MIXED

从MASTER上查询binlog中的记录,在那个发生error的那个位置,是一个UPDATE 语句;然后从数据库中查找,MASTER上有这条记录但是SLAVE上没有这条记录,于是开始怀疑是不是有些语句并没有被记录在binlog中,但是接着在主库binlog中查找这条记录的插入语句,竟然发现这条INSERT语句,竟然在UPDATE语句之后。

#101214 14:14:10 server id 125  end_log_pos 351594692   Query   thread_id=832621        exec_time=2     error_code=0
SET TIMESTAMP=1292307250/*!*/;
BEGIN
/*!*/;
# at 351594692
# at 351594784
#101214 13:14:07 server id 125  end_log_pos 351594784   Table_map: `crm`.`hotel_position` mapped to number 8642
#101214 13:14:07 server id 125  end_log_pos 351595000   Update_rows: table id 8642 flags: STMT_END_F
### UPDATE crm.hotel_position

大家注意那个时间,这个是通过mysqlbinlog读取日志后查看的连续的两条记录,中间没有其他语句。UPDATE语句出现在了INSERT语句之前,于是乎就导致了1032 ERROR的发生,进而导致了主从的失败。

但是关键,我没有搞明白,这个binlog的记录顺序怎么就出错了呢?我们有两套主从系统,只出现在了一套上,另外一套系统的主从就没有遇到这种情况。



binlog是根据commit的先后顺序来记录的

使用道具 举报

回复
论坛徽章:
2
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222011新春纪念徽章
日期:2011-02-18 11:43:35
14#
发表于 2010-12-15 14:53 | 只看该作者
原帖由 jinguanding 于 2010-9-6 17:54 发表




你这个问题是主从服务器上的数据不一致造成的,5.1出现不一致在mixed或row模式会报错......


根据WHERE
###   @1=10739087
###   @2=6261683
###   @3=5918
###   @4=41987
###   @5=5
###   @6=1283477681
###   @7=0

条件看能否在slave上找到数据....若找到了,分析下2边的数据为啥不一致,另外从你的日志信息看 ,你的事务隔离级别是:read-commited



另外从你的日志信息看 ,你的事务隔离级别是:read-commited
-------------这个怎么看出来的?

使用道具 举报

回复
招聘 : 技术/实施/服务顾问
论坛徽章:
5
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212010广州亚运会纪念徽章:击剑
日期:2010-11-22 15:29:202011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15
15#
发表于 2010-12-15 15:08 | 只看该作者
原帖由 ruochen-pb 于 2010-12-15 14:52 发表


binlog是根据commit的先后顺序来记录的



是根据语句commit的先后顺序,这个可以理解。但是为什么14:14:10的语句出现在了13:14:07分的语句之前呢?在这之后一段记录都是13点之后的记录,总不能是这些语句是过了一个多小时之后才commit的吧?情况就类似于一篇按照时间顺序记录事件发生的作文,被莫名地改变了作文的段落顺序,本该出现在第二段的内容给放到了第三段之后。
而且正是由于一些记录的UPDATE语句出现在了INSERT INTO之前,才导致了1032错误的出现(当然,导致该error发生或许还有其他的原因,我恰好碰到了这一种)。

并且我的系统中设置的wait_timeout=60,interactive_timeout=60,tx_isolation=REPEATABLE-READ

[ 本帖最后由 流水不腐 于 2010-12-15 15:13 编辑 ]

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2011-3-19 20:52 | 只看该作者
我所在的公司的mysql5.1.38数据库服务,做了一主二从数据库同步,发现第二台从库同步出错,发生1032错误。在my.cnf中屏蔽1032错误,mysql错误日志还是发出警告。查阅大量资料,有人束手无策,有人说是mysql版本bug,有人说是同步模式所致。这个问题困扰我数天之多,经过不断测试,google网络相似案例,发现了解决办法。

主数据库同步模式是binlog_format = MIXED,第一台从库服务器同步模式也是binlog_format = MIXED,则第一台从库同步没问题,那么第二台从库的同步模式不要如此设置,否则出现1032错误,该服务器同步模式设置binlog_format = STATEMENT,经过观察mysql的错误日志,发现问题解决。


北京户外营

[ 本帖最后由 literr 于 2011-3-19 20:57 编辑 ]

使用道具 举报

回复
论坛徽章:
4
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:292012新春纪念徽章
日期:2012-01-04 11:57:56奥运会纪念徽章:铁人三项
日期:2012-09-20 15:17:43ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00
17#
发表于 2012-9-20 17:44 | 只看该作者
流水不腐 发表于 2010-12-15 15:08
是根据语句commit的先后顺序,这个可以理解。但是为什么14:14:10的语句出现在了13:14:07分的语句之前 ...

因为你的 innodb_locks_unsafe_for_binlog

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2013-10-18 10:00 | 只看该作者
这个问题很难理解是为什么~

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2018-1-19 10:07 | 只看该作者
楼主,这个问题找到解决办法了吗?我也遇到,怎么都搞不定

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表