ticdc 同步表时目标端表莫名消失

搭建起 ticdc 复制后,发现下游 t1 表莫名消失,ticdc 报错 t1 不存在,查了源端目标端的 ddl 日志,没有 drop table 的语句,版本是 v6.5.11

 "message": "Error 1146 (42S02): Table 'db1.t1' doesn't exist"

task1:
rules = [‘db1.t1’]

task2:
rules = [‘db1.*’,‘!db1.t1’]

没有 drop 语句?
admin show ddl jobs 10000;

查一下更多历史信息,create 这个 table 开始看。是不是 rename 或者 drop 了。

确实没有 t1 表的 drop table 语句

看目标端的日志就好了,从 dashboard 日志搜索里搜索你这个表名,会记录是那个用户啥时间删除的

搜过目标端的日志,没有删除的记录

找到 create table 语句了么?
找到最近的 t1 create 语句后往后找。不是 rename 就是 drop。这个和 ticdc 无关,表莫名消失不可能 ddl 看不到的,下游找。

!db1.t1这个是不同步t1表吧。

:joy:就算是不同步,也不至于删除吧。不会是ttl表吧

他的意思应该是 t1 没有被同步到下游,也没有发现这张表被删除的 ddl 语句吧

同步了,我看任务的报警信息,告知目标端的表直接就没了

任务又建立起来了,我再观察几天看下是否会复现

:joy:

所以问题是下游表之前有莫名其妙没了么?cdc 同步也是逻辑的,执行的 sql ,和手动执行 ddl 没有区别的。
如果下游表莫名其妙没了 那么和 cdc 应该无关。最好还是看看下游 ddl jobs 历史记录。从 create table t 开始找。