一、问题描述
问题1:teledb主从集群,从库sql线程卡主报错:创建表时候显示server name不存在。
问题2:teledb主从同步sql线程卡主报错:主键冲突等情况;操作federate引擎远程表,同步到从库再次执行相同DML导致远程表主键冲突等情况。
二、原因分析
创建FEDERATED 引擎表有2中方式:
1)Creating a FEDERATED Table Using CREATE SERVER
先创建server后关联表定义,会导致从库回放表DDL语句报错
2)Creating a FEDERATED Table Using CONNECTION
这种方式主从同步正常
三、解决办法
避免使用第一种方式建表或者非必要禁用FEDERATED引擎;使用federate引擎操作远程表还要注意不要写binlog避免同步到从库后相同DML对远程表操作2次,导致主键冲突等等报错。