DTS任务增量迁移报错Can not find column xxx in destination table的原因
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DTS-RETRY-ERR-0006:Can not find column (.*)? in destination table
可能原因:目标端的表缺少列。
解决方法:
方法一(推荐):在目标端的表增加缺失的列,然后启动任务。
方法二:
重要
双向同步任务、目标表有除DTS以外的数据写入、目标端的表为多对一单向同步架构的目标表(包括一个任务的多张表映射到同一张表和多个任务的表映射到同一张表的场景)时不能使用此方法。
将报错的表从同步对象移除,然后启动任务。移除同步对象的方法,请参见移除同步对象。
分情况采取操作:
如果同步任务有勾选结构同步,在目标端删除表。
如果同步任务没有勾选结构同步,在目标端删除表,然后在目标端重新创建与源端结构一致的表。
重新把表加入到同步对象。添加同步对象的方法,请参见新增同步对象。
报错示例:如下报错信息,表示目标库的dts_user_authorization表中不存在wx_state列。
framework: DTS-30019: Can not find column \"wx_state\" in destination table \"dts_user_authorization\".
Please add the column in the destination table.
后续建议:导致目标端缺少列有多种原因,其中一种原因是:同步链路不支持同步DDL,但在源端增加列。对于这种需求,请先在目标端增加列,然后在源端增加列,就不会导致同步任务失败。
参考文档https://help.aliyun.com/zh/dts/support/common-errors-and-troubleshooting?spm=a2c4g.11186623.0.i16