本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过同构数据迁移从 PostgreSQL 数据库迁移数据 Amazon DMS
您可以使用同构数据迁移,将自管理 PostgreSQL 数据库迁移到 RDS for PostgreSQL 或 Aurora PostgreSQL。 Amazon DMS 会为数据迁移创建无服务器环境。对于不同类型的数据迁移, Amazon DMS 会使用不同的本机 PostgreSQL 数据库工具。
对于满负荷类型的同构数据迁移, Amazon DMS 使用 pg_dump 从源数据库读取数据并将其存储在连接到无服务器环境的磁盘上。 Amazon DMS 读取所有源数据后,它使用目标数据库中的 pg_restore 来恢复您的数据。
对于完全加载和更改数据捕获 (CDC) 类型的同构数据迁移, Amazon DMS 使用pg_dump
从源数据库中读取没有表数据的架构对象,并将它们存储在连接到无服务器环境的磁盘上。然后,它pg_restore
在目标数据库中使用来恢复您的架构对象。 Amazon DMS 完成该pg_restore
过程后,它会自动切换到发布者和订阅者模式进行逻辑复制,Initial Data Synchronization
可以选择将初始表数据直接从源数据库复制到目标数据库,然后启动正在进行的复制。在此模式中,一个或多个订阅用户会订阅发布者节点上的一个或多个发布。
对于变更数据捕获 (CDC) 类型的同构数据迁移, Amazon DMS 需要本机起点才能开始复制。如果您提供了本机起点,则会 Amazon DMS 捕获从该点开始的更改。或者,在数据迁移设置中选择立即,以便在实际数据迁移开始时自动捕获复制的开始点。
注意
要使仅 CDC 的迁移正常运行,所有源数据库架构和对象都必须已存在于目标数据库中。不过,目标可能具有源上不存在的对象。
您可以使用以下代码示例获取 PostgreSQL 数据库中的本机开始点。
select confirmed_flush_lsn from pg_replication_slots where slot_name=‘migrate_to_target';
此查询使用 PostgreSQL 数据库中的 pg_replication_slots
视图,捕获日志序列号(LSN)值。
将 PostgreSQL 同构数据迁移的状态 Amazon DMS 设置为 “已停止” 、 “失败” 或 “已删除” 后,不会删除发布者和复制。如果您不希望恢复迁移,可使用以下命令删除复制时隙和发布者。
SELECT pg_drop_replication_slot('migration_subscriber_{ARN}'); DROP PUBLICATION publication_{ARN};
下图显示了使用同构数据迁移将 PostgreSQL 数据库迁移 Amazon DMS 到适用于 PostgreSQL 的 RDS 或 Aurora PostgreSQL 的过程。