July 5, 2012

[MySQL Patch]自动处理备库错误

转载请署名:印风 ————————————————– 备库因为某些错误停止时有发生,最常见的错误就是”HA_ERR_KEY_NOT_FOUND”和 “HA_ERR_FOUND_DUPP_KEY”.这既有可能是主备切换导致的,也可能是MySQL Bug导致的 通常有两种办法来处理备库错误: 1). 设置 “sql_slave_skip_counter”来忽略错误. 2).set slave_exec_mode = “idempotent”来处理 “HA_ERR_FOUND_DUPP_KEY” (overwritten the record) 和”HA_ERR_KEY_NOT_FOUND”(简单的忽略掉错误). 这两种方法都可能导致主备不一致 如果你使用的是innodb存储引擎,并且使用的是ROW模式复制,那我们就可以fix这个Bug。 很久之前我写了一个工具(http://code.google.com/p/relay-fetch/,下面的slave_error_handler文件夹)可以用来处理这个问题。 以下的patch则通过修改代码,为slave_exec_mode增加新的选项SMART,来自动处理。 思想很简单 1) HA_ERR_KEY_NOT_FOUND UPDATE_ROWS_EVENT: 先写记录的’Before Image’ ,然后再update DELETE_ROWS_EVENT: 先写后删 , 或者直接忽略错误 2)HA_ERR_FOUND_DUPP_KEY WRITE_ROWS_EVENT: overwrite the record 对UPDATE_ROWS_EVENT导致的重复键错误暂不做处理。 以下patch基于Percona Server 5.5.18:   Index: /PS5518/branches/PS-r1086-slave-auto-fix/sql/log_event.cc =================================================================== — /PS5518/branches/PS-r1086-slave-auto-fix/sql/log_event.cc (revision 1136) +++ /PS5518/branches/PS-r1086-slave-auto-fix/sql/log_event.cc (revision 1180) @@ […]

博客挪窝了

hi,all,俺的blog已经从http://blog.csdn.net/zhaiwx1987 挪窝到这里了。 测试一把….. 原创文章,转载请注明: 转载自Simple Life 本文链接地址: 博客挪窝了 Post Footer automatically generated by wp-posturl plugin for wordpress.