MySQL 复制中断,因为 binlog 不是按时间顺序排列的

MySQL 复制中断,因为 binlog 不是按时间顺序排列的

查看二进制日志的摘录,可以看出这 2 条语句是按时间顺序无序写入日志的:

#160628 17:32:46 server id 2220  end_log_pos 64812204   Query   thread_id=157061        exec_time=0     error_code=0
SET TIMESTAMP=1467153166/*!*/;
UPDATE `table` SET `field` = "a";
/*!*/;
# at 64812204
--
#160628 17:32:36 server id 2220  end_log_pos 64895850   Query   thread_id=157062        exec_time=0     error_code=0
SET TIMESTAMP=1467153156/*!*/;
UPDATE `table` SET `field` = "b";
/*!*/;
# at 64895850

无法弄清楚如何突出显示代码块内部,但重要的部分是:

first statement - end_log_pos 64812204, SET TIMESTAMP=1467153166

second statement - end_log_pos 64895850, SET TIMESTAMP=1467153156

因此,这导致主服务器和从服务器不同步,因为主服务器最后运行第一个语句,而从服务器最后运行第二个语句。

有人能帮我找出原因吗?我注意到所有带有thread_id 157062的语句都首先执行,但在带有thread_id 157061的语句之后写入日志。

Mysql版本是5.5。

谢谢你的帮助。

相关内容