分库分表悲观模式如果新建的表的表结构不一致怎么处理?


像这种新建的表与原表的表结构不一致,要怎么才能恢复任务?

我理解DM是不支持表结构不同的吧。先搞成一样的呢?导入完后再改表结构呗。

不行,使上游的表与下游表结构一致后也没法恢复,删除上游表也没法恢复

Dm版本是什么可以参考下这个https://docs.pingcap.com/zh/tidb/stable/dm-faq#dm-v10-在任务出错时使用-sql-skip-命令无法跳过某些语句

5.2.0,skip没法跳过异常,resume也不行

请问您的需求是什么样的呢?如果上下游表不一致可以试一下乐观模式合库合表迁移

模拟一下上游建了一张符合同步任务正则的不同表结构表,如何处理这一类task异常

我来理解一下您的需求:
上游有一张表 A 对应同步到下游表 B,A 和 B 的表结构不同。但是除了乐观模式之外,其他模式是不支持这样的操作的,所以会出现错误;您的需求则是模拟出现这种类型错误之后,用相关的 dmctl 命令处理他们?

是的,目前没发现解决办法

参照一下这个文档:https://docs.pingcap.com/zh/tidb/stable/migrate-with-more-columns-downstream
文档里的这个例子,上下游的表结构不同,但是下游多出来的是 default null 列;完全可以让上游的改动兼容下游的表结构,通过 binlog-schema 命令设置一下 dm 内部维护的 schema 结构(不会修改下游表结构),从而让这个变动能够按照您的预期解析并同步到下游。

详细的原理和更多操作方法在这个文档:https://docs.pingcap.com/zh/tidb/stable/dm-manage-schema