AWS DMS迁移跨账号RDS Postgres时文本列缺失及任务报错问题
内置events表报错处理
你业务库中不存在的events表是AWS DMS任务本地内置的SQLite元数据表,用于存储任务运行时的内部事件日志,该唯一约束报错是任务之前异常中断后本地元数据残留冲突导致的,直接删除原有异常任务,重新创建迁移任务即可解决,无需在业务库中排查该表。
LOB/text字段数据丢失修复
查看你的任务配置,TargetMetadata段的LOB相关参数配置错误导致文本字段被跳过,调整如下参数即可:
- 将
LimitedSizeLobMode设置为true - 将
LobMaxSize设置为你业务库中最大text/LOB字段的实际大小(单位为KB),不得留0 - 可选:将
InlineLobMaxSize设置为1024或更小的阈值,小于该阈值的小文本会直接内嵌到行数据中传输,提升同步性能
bridge_types表挂起问题解决
该表挂起是之前唯一约束报错触发了你配置中TableErrorPolicy: SUSPEND_TABLE的错误策略导致的。同时注意你当前的表映射规则仅包含bridge_types单张表,若你需要做整库1:1拷贝,需要修改选择规则匹配所有表:
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include", "filters": [] } ] }
额外优化建议:全量迁移阶段将FullLoadSettings中的CreatePkAfterFullLoad设置为true,等全量数据加载完成后再创建主键和唯一约束,避免全量加载过程中因数据写入顺序触发唯一约束报错。
全量+CDC迁移前置检查(Postgres源端)
确保源RDS Postgres的参数组已开启逻辑复制:
rds.logical_replication设置为1wal_level设置为logical- DMS使用的数据库账号具备replication权限和所有同步表的SELECT权限
调整完成后重建任务即可实现1:1全量拷贝加持续增量同步。
内容的提问来源于stack exchange,提问作者user3505901
相关产品推荐
相关产品推荐

