禁用 AWS DMS Migration 中的外键约束不适用于 Postgres

Neh*_*thi 6 postgresql data-migration amazon-web-services amazon-rds aws-dms

您好,我想将数据从一个 Postgres RDS 实例迁移到另一个实例。但是我的数据库包含具有外键约束的表。根据提供的官方迁移文档,AWS DMS 仅迁移所需的架构,不会迁移外键和其他二级索引。因此,我现在采用的方法是,首先手动迁移架构,然后在目标模式设置为不执行任何操作的情况下运行 DMS 作业。但是,我的加载因外键约束冲突错误而失败,因为 DMS 尝试并行迁移表,并且可能并行选择父子表进行加载。我尝试按照官方文档中的建议设置 session_replication_role=replica 以在会话级别暂时禁用约束,但这似乎也没有得到应用(注意:AWS DMS 文档中说该属性仅适用于 CDC 模式,因此尝试了也一样,但似乎没有得到应用,我面临着同样的外键约束违规问题)。谁能帮助如何实现这一目标?

小智 1

我也遇到了这个问题。该参数 (session_replication_role) 必须在参数组级别设置,而不是在数据库会话中设置,然后重新启动目标数据库。我遵循的步骤是:

  1. 复制之前的参数组并设置参数session_replication_role=replica
  2. 重启目标数据库
  3. 再次启动DMS任务并等待所有表都被验证
  4. DMS 任务结束后恢复到之前的参数组

我必须复制参数组,因为我在多个 RDS 实例之间共享相同的 PG。