我正在使用 AWS DMS 将数据从 oracle 迁移到 s3,DMS 正在将 LONG 数据类型读取为 LOB 并跳过整个列和数据

问题描述

我正在使用 DMS 将数据从 Oracle DB 迁移到 AWS S3,在其中一个表的 Oracle DB 中,该列的数据类型为 Long,但 dms 在读取和传输到 S3 时在日志中收到以下消息,替换实际的列和表定义名称

列“sample_column”已从表定义“sample_table”中删除:列数据类型为 LOB,表没有主键或唯一索引。

但我验证了 sample_column 的源数据类型是 Long。

我该如何解决这个问题?

解决方法

来自文档:https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html

Oracle 数据类型:LONG

AWS DMS 数据类型:CLOB

批量优化应用模式不支持 LONG 数据类型 (TurboStream CDC 模式)。要将此数据类型用于 AWS DMS,您必须 为特定任务启用 LOB。在 CDC 期间,AWS DMS 仅在具有主键的表中支持 LOB 数据类型。

所以类型转换似乎是意料之中的,这里真正的问题是你在表上没有主键。