GTID复制异常的解决方法

主从复制使用的是GTID方式。

 

下面这个环境,出问题的原因不提了。

 

下面是从库的截图:

GTID复制异常的解决步骤_第1张图片


Retrieved_Gtid_Set:167b4197-09fa-11e7-993f-000c296a2c0d:1-6

Executed_Gtid_Set:167b4197-09fa-11e7-993f-000c296a2c0d:1-5,

261aafbc-0ace-11e7-9ea6-000c298f384b:1-305

第一行表示收到的事务,第二行表示已经执行完的事务。也就是说执行到Retrieved_Gtid_Set时候发生错误了。因此,我们直接单单跳过这个事务即可。

 

 

 

在从库执行修复:

step1、修补数据

(我当时这个情况是当时在主库关闭binlog然后执行了一个alter操作,但是忘记在从库执行这个alter操作,导致复制异常的。复制异常后,我在从库补了这个alter操作,但是实际上数据是否一致需要自己对比主和从在alter操作后那段时间内的binlog记录)

 

 

step2、重新配置主从

SET gtid_next='167b4197-09fa-11e7-993f-000c296a2c0d:6';    # 跳过Retrieved_Gtid_Set这个最后的事务就行了

BEGIN;

COMMIT;

SETgtid_next='automatic';

startslave;

showslave status\G

GTID复制异常的解决步骤_第2张图片