You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于AWS DMS中LOB最大尺寸及迁移报错的技术问询

AWS DMS PostgreSQL迁移疑问解答

场景回顾

已部署AWS RDS PostgreSQL实例,表A数据量约2TB,无主键/唯一索引(无唯一数据无法设置),tags列(text[]或_text类型)带有非空约束。使用AWS DMS迁移时:

  • 全LOB模式(Full LOB)报错:Source must have primary key or unique index、null value is not allowed on column tags
  • 最大限制100MB的有限LOB模式(Limited LOB)迁移成功,但收到提示:LOBs that exceed the maximum LOB size are truncated

疑问解答

  1. AWS所指的maximum size of LOBs是单条行中tags数据的大小吗?
    是。AWS DMS的maximum LOB size限制的是单条记录中单个LOB字段的实际存储大小,对应PostgreSQL里的TOAST存储大小,也就是单条行里tags列的内容大小。

  2. 还是整个tags列的总大小?
    不是。这个限制仅针对单条记录的单个LOB字段,和整个列的总数据量无关。

  3. 为何Full LOB模式报错而limited模式正常?
    核心差异来自两种模式的底层逻辑:

    • 主键/唯一索引要求:Full LOB模式需要主键或唯一索引来精准定位每条记录,确保LOB数据的全量和增量同步完整性。你的表没有这类索引,直接触发Source must have primary key or unique index报错。而Limited LOB模式将LOB数据作为普通字段批量迁移,不需要依赖主键/唯一索引定位记录,因此绕过了这个限制。
    • 非空约束兼容性:Full LOB模式对PostgreSQL的text[]/_text这类复杂数组类型的解析逻辑存在兼容性问题,可能误将合法的非空数组解析为null值,触发tags列的非空约束报错。Limited LOB模式的类型处理逻辑不同,不会出现这种误解析,因此能通过非空校验。

内容的提问来源于stack exchange,提问作者confusedWarrior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:46:02