drainer无法启动

版本:v3.1.0
现象:使用备份工具导入备份全量数据并恢复后 按照metadata pos扩容drainer 一直起不来。
之前集群开启tiflsh后来禁用了。
日志报错:[ERROR] [server.go:287] [“syncer exited abnormal”] [error="handlePreviousDDLJobIfNeed failed: handle ddl job ID:50, Type:update tiflash replica status, State:synced, SchemaState:public, SchemaID:45, TableID:47, RowCount:0, ArgLen:0, start time: 2020-03-31 21:12:50.848 +0800 CST, Err:, ErrCount:0, SnapshotVersion:0 failed, the schema info: {\n\t\t"hasImplicitCol": false,\n\t\t"schemaMetaVersion": 0,\n\t\t"schemaNameToID":…

要如何处理 检查日志涉及到表结构都一致。

升级drainer可以跳过不支持DDL

看报错,更新tiflash状态失败,可以试试在集群里起来。如果确实不用了,也可以移除。

这通常是因为你之前禁用tiflash时,集群里还残留着一条“更新tiflash副本状态”的旧ddl任务。

TiDB v3.1.0 好像支持, 要升级吗?

嗯,清理 TiFlash 残留元数据 + 标记 DDL 任务为已完成,避免后续同类报错

恢复后,Drainer 读取到的表结构元数据与集群实际状态不匹配,导致无法继续同步。

可以编辑drainer配置文件。跳过ddl。然后再重启

可以跳过或者标记为成功然后重试

核心问题是 TiDB v3.1.0 drainer 回溯历史 TiFlash 相关 DDL 时,因集群禁用 TiFlash 导致元数据不匹配,启动失败