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

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

使用 PostgreSQL 数据库作为 Amazon DMS 中同构数据迁移的源

可以使用 PostgreSQL 数据库作为 Amazon DMS 中同构数据迁移的源。在此情况下,源数据提供程序可以是本地数据库、Amazon EC2 数据库或 RDS for PostgreSQL 数据库。

要运行同构数据迁移,请为在 Amazon DMS 中为 PostgreSQL 源数据库指定的数据库用户授予超级用户权限。该数据库用户需要超级用户权限,才能访问源中特定于复制的函数。对于完全加载数据迁移,数据库用户需要对表具有 SELECT 权限才能迁移表。

可使用以下脚本,在 PostgreSQL 源数据库中创建具所需权限的数据库用户。对迁移到 Amazon 的所有数据库运行 GRANT 查询。

CREATE USER your_user WITH LOGIN PASSWORD 'your_password'; ALTER USER your_user WITH SUPERUSER; GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO your_user;

在以上示例中,请用您自己的信息替换每个用户输入占位符

以下各节描述了自管理 PostgreSQL 数据库和 Amazon 托管 PostgreSQL 数据库的特定配置先决条件。

使用自管理 PostgreSQL 数据库作为 Amazon DMS 中同构数据迁移的源

本节介绍如何配置本地托管的或在 Amazon EC2 实例上托管的 PostgreSQL 数据库。

检查源 PostgreSQL 数据库的版本。请确保 Amazon DMS 支持您的源 PostgreSQL 数据库版本,如DMS 同构数据迁移的源中所述。

同构数据迁移支持使用逻辑复制进行更改数据捕获 (CDC)。要开启自管理 PostgreSQL 源数据库的逻辑复制,请在 postgresql.conf 配置文件中设置以下参数和值:

  • wal_level 设置为 logical

  • max_replication_slots 设置为一个大于 1 的值。

    请根据您需要运行的任务数设置 max_replication_slots 值。例如,要运行五个任务,您需要设置至少五个时隙。在任务启动时时隙立即打开,即使任务不再运行仍保持打开。请务必手动删除空闲时隙。

  • max_wal_senders 设置为一个大于 1 的值。

    max_wal_senders 参数用于设置可以运行的并发任务数。

  • wal_sender_timeout 参数会终止处于不活动状态的时间超过指定毫秒数的复制连接。默认值为 60000 毫秒(60 秒)。将此值设置为 0(零)会禁用超时机制,这是 DMS 的有效设置。

有些参数是静态的,只能在服务器启动时设置。在服务器重新启动之前,对配置文件条目所做的任何更改都将被忽略。有关更多信息,请参阅 PostgreSQL 文档

使用 Amazon 托管的 PostgreSQL 数据库作为 Amazon DMS 中同构数据迁移的源

本节介绍如何配置 Amazon RDS for PostgreSQL 数据库实例。

使用 PostgreSQL 数据库实例的 Amazon 主用户账户,作为 Amazon DMS 中同构数据迁移的 PostgreSQL 源数据提供程序的用户账户。主用户账户具有允许它设置 CDC 所需的角色。如果使用主用户账户之外的账户,该账户必须具有 rds_superuser 角色和 rds_replication 角色。rds_replication 角色可授予管理逻辑时隙和使用逻辑时隙流式处理数据的权限。

可使用以下代码示例授予 rds_superuserrds_replication 角色。

GRANT rds_superuser to your_user; GRANT rds_replication to your_user;

在以上示例中,请用您的数据库用户名称替换 your_user

要开启逻辑复制,请将数据库参数组中的 rds.logical_replication 参数设置为 1。此静态参数要求重启数据库实例才能生效。

使用与 PostgreSQL 兼容的数据库作为同构数据迁移的源的限制

使用与 PostgreSQL 兼容的数据库作为同构数据迁移的源时,存在以下限制:

  • 用于连接到数据源的用户名具有以下限制:

    • 长度为 2 到 64 个字符。

    • 不能包含空格。

    • 可以包含以下字符:a-z、A-Z、0-9、下划线 (_)。

    • 必须以 a-z 或 A-Z 开头。

  • 用于连接到数据源的密码具有以下限制:

    • 长度为 1 到 128 个字符。

    • 不能包含以下任何字符:单引号 (')、双引号 (")、分号 (;) 或空格。