使用 Postgre SQL 数据库作为同构数据迁移的来源 AWS DMS - AWS 数据库迁移服务

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

使用 Postgre SQL 数据库作为同构数据迁移的来源 AWS DMS

你可以使用 Postgre SQL 数据库作为同构数据迁移中的 AWS DMS来源。在这种情况下,您的源数据提供者可以是本地EC2、Amazon 或 RDS Postgre SQL 数据库。

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

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

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;

在前面的示例中,替换每个 user input placeholder 用你自己的信息。

AWS DMS 支持带有主键CDC的 Postgre SQL 表。如果表没有主键,则预写日志 (WAL) 不包含数据库行之前的图像。在这里,您可以使用其他配置设置,并使用表副本身份作为解决方法。但是,这种方法可能会生成额外的日志。我们建议您仅在仔细测试后才使用表副本身份作为解决方法。有关更多信息,请参阅 将 PostgreSQL 数据库作为 DMS 源时的额外配置设置

以下各节描述了自建和托 AWS管 Post SQL gre 数据库的特定配置先决条件。

使用自我管理的 Postgre SQL 数据库作为同构数据迁移的来源 AWS DMS

本节介绍如何配置托管在本地或亚马逊EC2实例上的 Postgre SQL 数据库。

检查您的源 Postgre SQL 数据库的版本。请确保它 AWS DMS 支持您的源 Postgre SQL 数据库版本,如中所述。DMS同构数据迁移的来源

同构数据迁移支持使用逻辑复制进行更改数据捕获 (CDC)。要在自行管理的 Postgre SQL 源数据库上启用逻辑复制,请在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

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

使用 AWS托管的 Postgre SQL 数据库作为同构数据迁移的来源 AWS DMS

本节介绍如何配置您的 Amazon for P RDS ostgre SQL 数据库实例。

使用 Postgre SQL 数据库实例 AWS 的主用户帐户作为 Postgre SQL 源数据提供程序的用户帐户,以便在中进行同构数据迁移。 AWS DMS主用户账户具有允许其设置的必需角色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。此静态参数要求重启数据库实例才能生效。

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

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

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

    • 长度为 2 到 64 个字符。

    • 不能包含空格。

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

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

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

    • 长度为 1 到 128 个字符。

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