GTID复制异常的解决方法
主从复制使用的是GTID方式。
下面这个环境,出问题的原因不提了。
下面是从库的截图:
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