Postgre 评估 SQL - AWS 数据库迁移服务

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

Postgre 评估 SQL

本节介绍使用 Postgre SQL 源端点的迁移任务的单独迁移前评估。

验证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;

有关更多信息,请参阅使用 Postgre SQL 数据库作为DMS源的限制

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

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

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

有关更多信息,请参阅使用 Postgre SQL 数据库作为DMS源的限制

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

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

此迁移前评估可验证目标REPLICAsession_replication_role parameter是否设置为在满载阶段禁用外键约束。对于满载迁移类型,应禁用外键约束。

有关 Postgre SQL 端点限制的更多信息,请参阅使用 Postgre SQL 数据库作为目标。 AWS Database Migration Service

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

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

此迁移前评估可验证源上是否存在名称相似的表。以不同的大小写方式写入多个同名的表可能会导致复制过程中出现不可预测的行为。

有关 Postgre SQL 端点限制的更多信息,请参阅使用 Postgre SQL 数据库作为DMS源的限制

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

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

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

有关 Postgre SQL 端点限制的更多信息,请参阅使用 Postgre SQL 数据库作为DMS源的限制

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

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

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

有关更多信息,请参阅使用 Postgre SQL 数据库作为目标。 AWS Database Migration Service

验证目标数据库中是否有任何表具有用于满载迁移任务的二级索引

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

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

有关更多信息,请参阅使用 Postgre SQL 数据库作为目标。 AWS Database Migration Service

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

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

如果复制中包含LOB列,则只能BatchApplyEnabled在受限LOB模式下使用。使用该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。Postgre SQL 版本 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上为配置的值。DMSmax_wal_senders需要设置为大于 1 才能支持更改数据捕获 (CDC)。

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

API密钥:postgres-check-pglogical

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

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

API密钥:postgres-check-pk-lob

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

验证源表是否有主键

API密钥:postgres-check-pk

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

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

API密钥:postgres-check-preparedtxn

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

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

API密钥:postgres-check-walsenderstimeout

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

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

API密钥:postgres-check-wallevel

此迁移前评估将验证是否设置wal_level为逻辑。DMSCDC要起作用,需要在源数据库上启用此参数。