[求助]GTID模式下变更架构报错

mysql version:Percona server 5.6.24-72.2-log
复制模式GTID
A(1.1.1.2)
B(1.1.1.3)
C(1.1.1.4)
复制结构 A->B A->C
期望复制结构 A->B->C

在更改的过程中C服务器做了如下动作
C: stop slave;
reset slave;
CHANGE MASTER TO
  MASTER_HOST='1.1.1.3',
  MASTER_USER='replication',
  MASTER_PASSWORD='replication',
  MASTER_PORT=3306,
  MASTER_AUTO_POSITION=1;
  
发现C有下面的报错
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.'

进一步排查在B的binlog里面有server A上传过来的binlog,并且没有被purge,请问这是为什么C的IO_thread没有检查到server B的binlog日志?以及如何修复?
已邀请:

wubx - 专注MySQL及架构设计

赞同来自:

第一,确认一下B上面是不是生成了Binlog,是不是相应的GTID标识。
第二, 确认一下C上执行完的的GTID是不是在B上面有。如果存在,可以在C上执行reset master 后通过设置gtid_purge到执行到GTID位置,在用Change master to到B上,以前的GTID不用在去获取了。
 
觉的很有可能是: C和B的Excute_gtid_set不一样造成的。 你可以比较一下。

要回复问题请先登录注册