如何解决 AWS DMS 满载和 CDC 任务的“ERROR: null value in column violates not-null constraint”错误?

1 分钟阅读
0

我有一个 AWS Database Migration Service(AWS DMS)任务同时达到了满载和变更数据捕获。我收到了一条错误消息,上面写着: "ERROR: null value in column violates not-null constraint."

解决方法

如果您的迁移任务中有大型对象 (LOB) 列,则会看到类似于以下内容的日志条目:

"E: Command failed to load data with exit error code 1, Command output: ERROR: null value in column "xyz" violates not-null constraint"

当 AWS DMS 迁移 LOB 列时,除 LOB 列之外的所有数据都将迁移到您的目标表中。AWS DMS 还会在 LOB 列中插入一条 NULL 记录。然后,AWS DMS 使用 LOB 列数据更新目标表中的行。

如果 AWS DMS 未创建目标,请检查目标数据描述语言 (DDL) 以确定是否指定了 NOT NULL 属性。如果有 NOT NULL 属性,则更新表以移除 LOB 列数据类型的 NOT NULL 约束。然后,继续执行您的 AWS DMS 任务。

有关 LOB 模式和任务阶段的 AWS DMS 任务行为,请参阅下表:

LOB 模式满载更改数据捕获
完整 LOB 模式不允许使用 NOT NULL 约束不允许使用 NOT NULL 约束
受限 LOB 模式允许使用 NULL 约束不允许使用 NOT NULL 约束

相关信息

Migrating large binary objects (LOBs)

AWS 官方
AWS 官方已更新 6 个月前