通过 Amazon DMS 中的同构数据迁移从 PostgreSQL 数据库迁移数据 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

通过 Amazon DMS 中的同构数据迁移从 PostgreSQL 数据库迁移数据

您可以使用同构数据迁移,将自管理 PostgreSQL 数据库迁移到 RDS for PostgreSQL 或 Aurora PostgreSQL。Amazon DMS 会为数据迁移创建无服务器环境。对于不同类型的数据迁移,Amazon DMS 会使用不同的本机 PostgreSQL 数据库工具。

对于完全加载类型的同构数据迁移,Amazon DMS 使用 pg_dump 从源数据库读取数据,并将其存储在与无服务器环境相连的磁盘上。Amazon DMS 读取所有源数据后,使用目标数据库中的 pg_restore 恢复数据。

对于完全加载和更改数据捕获 (CDC) 类型的同构数据迁移,Amazon DMS 使用 pg_dump 从源数据库读取数据,并将其存储在与无服务器环境相连的磁盘上。Amazon DMS 读取所有源数据后,使用目标数据库中的 pg_restore 恢复数据。Amazon DMS 完成完全加载后,会自动切换到发布者和订阅用户模式进行逻辑复制。在此模式中,一个或多个订阅用户会订阅发布者节点上的一个或多个发布。

对于更改数据捕获 (CDC) 类型的同构数据迁移,需要本机开始点才能开始复制。如果您提供了本机开始点,Amazon DMS 会捕获从该点开始的更改。或者,在数据迁移设置中选择立即,以便在实际数据迁移开始时自动捕获复制的开始点。

注意

要使仅 CDC 的迁移正常运行,所有源数据库架构和对象都必须已存在于目标数据库中。不过,目标可能具有源上不存在的对象。

您可以使用以下代码示例获取 PostgreSQL 数据库中的本机开始点。

select confirmed_flush_lsn from pg_replication_slots where slot_name=‘migrate_to_target';

此查询使用 PostgreSQL 数据库中的 pg_replication_slots 视图,捕获日志序列号 (LSN) 值。

Amazon DMS 将 PostgreSQL 同构数据迁移的状态设置为已停止失败已删除之后,不会删除发布者和复制。如果您不希望恢复迁移,可使用以下命令删除复制时隙和发布者。

SELECT pg_drop_replication_slot('migration_subscriber_{ARN}'); DROP PUBLICATION publication_{ARN};

下图显示了如何使用 Amazon DMS 中的同构数据迁移,将 PostgreSQL 数据库迁移到 RDS for PostgreSQL 或 Aurora PostgreSQL。


                使用 DMS 同构数据迁移进行 PostgreSQL 数据迁移的架构图。