开发者社区 问答 正文

DTS任务增量迁移报错Can not find column xxx in destinat...

DTS任务增量迁移报错Can not find column xxx in destination table的原因

展开
收起
提个问题 2024-05-29 19:07:37 64 分享 版权
1 条回答
写回答
取消 提交回答
  • 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,但在源端增加列。对于这种需求,请先在目标端增加列,然后在源端增加列,就不会导致同步任务失败。

    image.png

    参考文档https://help.aliyun.com/zh/dts/support/common-errors-and-troubleshooting?spm=a2c4g.11186623.0.i16

    2024-05-30 09:14:27
    赞同 展开评论