选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

PostgreSQL 评测

聚焦模式
PostgreSQL 评测 - AWS 数据库迁移服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本节介绍使用 PostgreSQL 源端点的迁移任务的各项迁移前评测。

验证 DDL 事件触发器是否设置为 ENABLE ALWAYS

API 密钥:postgres-check-ddl-event-trigger

此迁移前评测可验证 DDL 事件触发器是否设置为 ENABLE ALWAYS。如果您的源数据库也是另一个第三方复制系统的目标,DDL 更改可能不会在 CDC 期间迁移。这种情况会阻止 DMS 触发 awsdms_intercept_ddl 事件。要解决这种情况,请在源数据库上修改触发器,如以下示例所示:

alter event trigger awsdms_intercept_ddl enable always;

有关更多信息,请参阅将 PostgreSQL 数据库作为 DMS 源的限制

验证源数据库中是否存在 PostGIS 列

API 密钥:postgres-check-postgis-data-type

此迁移前评估可验证源引擎和目标引擎不同时是否存在的 PostGIS 数据类型的列。 AWS DMS 仅支持同构 () like-to-like 迁移的 PostGIS 数据类型。

有关更多信息,请参阅将 PostgreSQL 数据库作为 DMS 源的限制

验证在完全加载过程中目标表上是否禁用了外键约束

API 密钥:postgres-check-session-replication-role

此迁移前评测可验证在完全加载阶段目标上的 session_replication_role parameter 是否设置为 REPLICA 以禁用外键约束。对于完全加载迁移类型,您应禁用外键约束。

有关 PostgreSQL 端点限制的更多信息,请参阅将 PostgreSQL 数据库作为 AWS Database Migration Service的目标

验证是否存在名称相似的表

API 密钥:postgres-check-similar-table-name

此迁移前评测可验证源上是否存在名称相似的表。如果存在多个同名但名称具有不同大小写的表,则会导致复制过程中出现不可预测的行为。

有关 PostgreSQL 端点限制的更多信息,请参阅将 PostgreSQL 数据库作为 DMS 源的限制

验证是否存在不带主键的 ARRAY 数据类型的表

API 密钥:postgres-check-table-with-array

此迁移前评测可验证是否存在没有主键的 ARRAY 数据类型的表。在完全加载期间会忽略缺少主键的 ARRAY 数据类型的表。

有关 PostgreSQL 端点限制的更多信息,请参阅将 PostgreSQL 数据库作为 DMS 源的限制

启用后 BatchApplyEnabled ,验证目标表上是否存在主键或唯一索引

API 密钥:postgres-check-batch-apply-target-pk-ui-absence

只有目标表上有主键或唯一索引的表才支持批量应用。没有主键或唯一索引的表将导致批处理失败, AWS DMS 并将逐一处理更改。建议您为此类表创建单独的任务,改用事务性应用模式。或者,也可以在目标表上创建唯一键。

有关更多信息,请参阅将 PostgreSQL 数据库作为 AWS Database Migration Service的目标

验证目标数据库中是否存在任何具有二级索引的表以用于完全加载迁移任务

API 密钥:postgres-check-target-secondary-indexes

此迁移前评测可验证完全加载迁移任务范围内是否存在带有二级索引的表。建议您在完全加载任务期间删除二级索引。

有关更多信息,请参阅将 PostgreSQL 数据库作为 AWS Database Migration Service的目标

验证仅在设置为 true 时 BatchApplyEnabled 才使用受限 LOB 模式

API 密钥:postgres-batch-apply-lob-mode

如果复制中包含 LOB 列,则只能在受限 LOB 模式下使用 BatchApplyEnabled。使用 LOB 模式的其他选项将导致批处理失败, AWS DMS 并将逐一处理更改。建议您将这些表移到各自的任务中,改用事务性应用模式。

有关 BatchApplyEnabled 设置的更多信息,请参阅如何使用 DMS 批量应用特征来提高 CDC 复制性能?

验证 DMS 是否支持源数据库版本进行迁移

API 密钥:postgres-check-dbversion

此迁移前评估可验证源数据库版本是否与兼容。 AWS DMS

验证源数据库上的 logical_decoding_work_mem 参数

API 密钥:postgres-check-for-logical-decoding-work-mem

此迁移前评测建议调整源数据库上的 logical_decoding_work_mem 参数。在高度事务性数据库中,可能存在长时间运行的事务或许多子事务,这可能会导致逻辑解码内存消耗增加,并且需要溢出到磁盘,从而导致复制期间的 DMS 源延迟很高。在这种情况下,可能需要调整 logical_decoding_work_mem。PostgreSQL 版本 13 及更高版本支持此参数。

验证源数据库是否存在长时间运行的事务

API 密钥:postgres-check-longrunningtxn

此迁移前评测可验证源数据库是否存在持续时间超过 10 分钟的长时间运行的事务。任务可能无法启动,因为默认情况下,DMS 会在启动任务时检查是否存在任何未完成事务。

验证源数据库参数 max_slot_wal_keep_size

API 密钥:postgres-check-maxslot-wal-keep-size

此迁移前评测可验证为 max_slot_wal_keep_size 配置的值。当 max_slot_wal_keep_size 设置为非默认值时,DMS 任务可能会因为删除所需的 WAL 文件而失败。

检查源数据库参数 postgres-check-maxwalsenders 是否设置为支持 CDC。

API 密钥:postgres-check-maxwalsenders

此迁移前评测可验证源数据库上为 max_wal_senders 配置的值。DMS 需要将 max_wal_senders 设置为大于 1 才会支持更改数据捕获(CDC)。

检查源数据库是否配置为 PGLOGICAL

API 密钥:postgres-check-pglogical

此迁移前评测可验证 shared_preload_libraries 值是否设置为 pglogical 以支持 PGLOGICAL 用于 CDC。请注意,如果您计划使用测试解码进行逻辑复制,则可以忽略此评测。

验证源表主键是否为 LOB 数据类型

API 密钥:postgres-check-pk-lob

此迁移前评测可验证表的主键是否为大型对象(LOB)数据类型。如果源表将 LOB 列作为主键,则 DMS 不支持复制。

验证源表是否有主键

API 密钥:postgres-check-pk

此迁移前评测可验证任务范围内使用的表是否存在主键。除非在源表上将副本身份设置为 full,否则 DMS 不支持对没有主键的表进行复制。

验证源数据库上是否存在准备好的事务

API 密钥:postgres-check-preparedtxn

此迁移前评测可验证源数据库上是否存在任何准备好的事务。如果源数据库上存在任何准备好的事务,则复制槽创建操作可能会停止响应。

验证 wal_sender_timeout 是否设置为支持 DMS CDC 所需的最小值

API 密钥:postgres-check-walsenderstimeout

此迁移前评测可验证 wal_sender_timeout 是否设置为至少 10000 毫秒(10 秒)。执行 CDC 的 DMS 任务至少需要 10000 毫秒(10 秒),如果值小于 10000,则任务会失败。

验证源数据库上的 wal_level 是否设置为逻辑

API 密钥:postgres-check-wallevel

此迁移前评测可验证 wal_level 是否设置为逻辑。为了使 DMS 能够执行 CDC,需要在源数据库上启用此参数。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。