dmctl同步数据错误

【 TiDB 使用环境】
V5.1
dmctl v2.0.4

【概述】 场景 + 问题概述
使用dmctl进行的数据表同步,应该是有人修改了表结构,导致ddl语句报错。然后同步一直报错。

【备份和数据迁移策略逻辑】

使用dmctl进行的数据表同步

【背景】 做过哪些操作
不太确定

【问题】 当前遇到的问题
使用dmctl进行的数据表同步,应该是有人修改了表结构,导致ddl语句报错。然后同步一直报错。
防止错误扩散直接进行了如下操作:
1.tiup dmctl --master-addr 172.18.92.63:8261 stop-task taskName
2.TRUNCATE tableNames(把报错任务同步的表清空)
3.tiup dmctl --master-addr 172.18.92.63:8261 start-task taskName.yaml --remove-meta
就是删除任务,删除同步数据,重新同步

我同步的这几张表数据量比较小,可以这样紧急操作恢复,如果数据量大的话会影响大片的业务。
我想问一下除了这样操作来恢复任务,还有其它的方式吗?

【TiDB 版本】
V5.1

你好!

  1. 请问使用 DM 同步的上下游数据库具体类型是?比如 MySQL --> DM --> TiDB,这是 DM 工具官方推荐的使用场景,如果不是,建议使用其他工具代替。
  2. 同步报错,方便的话,可以贴下具体报错信息,以便分析。
    对于 DDL 语句,目前确实存在兼容性问题,这个可以参考: https://docs.pingcap.com/zh/tidb/v5.1/mysql-compatibility#ddl-的限制
  3. 同步中断,这个问题,其实和 MySQL 的主从复制类似,报错导致同步中断,只能具体问题具体分析。我这边实际生产中 DDL 兼容性问题导致同步中断出现最多,我们都是提前在非生产环境就解决了这个问题,这样上生产就不会有问题了。