标签:style class blog code http tar
用MySQL 行格式的复制的Slave经常会遇到复制出错1062和1032 错误,一般是镜像异常宕机导致主从复制数据不一致所致,但是有些库本身很大,重建成本很大,并且这些库的数据一致性用户可能都不是太关心的,所以之前的处理办法一般是遇到主键冲突的就跳过,遇到找不到key的就用mysqlbinlog解析一下 把数据补出来,但是这种方法太人肉话,处理起来很慢,所以之前做过一个自动修数据的工具,也是解析binlog日志,然后生成SQL语句去执行。通过show slave status 可以清楚的知道
(end_log_pos - Exec_Master_Log_Pos) 这个就代表这个事物从开始到出错执行的字节数。
end_log_pos 在show slave status 的错误信息里面也有,取出来就可以了。
header 说明 :
没错 主要能得到的就是库名和表名还有字段类型
表明和库名都好弄,直接读出来不用转,字段类型MySQL还有一个专门的转换表,每一个字节对应一个字段类型。
那么下面就只剩下如何解析别的event格式了。
先从WRITE_ROWS_EVENT 开始:
那么DATA部分中的fixed data 和variables data各是什么呢?
Fixed data :
怎么解析Record?
Record的格式是bit_map + record 的结构。所以扫描的时候一定要把这个event扫描完,不然很容易出错。
这里先简单的介绍一下如何解析BINLOG吧,下面会再详细解析如何解析各个不同类型的字段。
MySQL Row格式Binlog的解析(1),布布扣,bubuko.com
标签:style class blog code http tar
原文地址:http://www.cnblogs.com/likyzh/p/3801710.html