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

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

使用 PostgreSQL 数据库作为同构数据迁移的目标 Amazon DMS

可以使用 PostgreSQL 数据库作为 Amazon DMS中同构数据迁移的迁移目标。

Amazon DMS 需要一定的权限才能将数据迁移到您的目标 Amazon RDS for PostgreSQL 数据库或亚马逊 Aurora PostgreSQL 数据库。可使用以下脚本,在 PostgreSQL 目标数据库中创建具所需权限的数据库用户。

CREATE USER your_user WITH LOGIN PASSWORD 'your_password'; GRANT USAGE ON SCHEMA schema_name TO your_user; GRANT CONNECT ON DATABASE db_name to your_user; GRANT CREATE ON DATABASE db_name TO your_user; GRANT CREATE ON SCHEMA schema_name TO your_user; GRANT UPDATE, INSERT, SELECT, DELETE, TRUNCATE ON ALL TABLES IN SCHEMA schema_name TO your_user; #For "Full load and change data capture (CDC)" and "Change data capture (CDC)" data migrations, setting up logical replication requires rds_superuser privileges GRANT rds_superuser TO your_user;

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

要为 RDS for PostgreSQL 目标开启逻辑复制,请将数据库参数组中的 rds.logical_replication 参数设置为 1。此静态参数要求重启数据库实例或数据库集群才能生效。有些参数是静态的,只能在服务器启动时进行设置。 Amazon DMS 在重新启动服务器之前,会忽略其在数据库参数组中的条目的更改。

PostgreSQL 使用触发器实现外键约束。在满载阶段,每次 Amazon DMS 加载一个表。我们建议您在完全加载期间,关闭目标数据库上的外键约束。为此,请使用以下方法之一:

  • 临时关闭实例的所有触发器,并完成完全加载。

  • 在 PostgreSQL 中更改 session_replication_role 参数的值。

    在任何给定时间,触发器可能处于以下状态之一:originreplicaalwaysdisabled。如果将 session_replication_role 参数设置为 replica,那么只有处于 replica 状态的触发器处于活动状态。否则,触发器保持非活动状态。

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

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

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

    • 长度为 2 到 64 个字符。

    • 不能包含空格。

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

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

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

    • 长度为 1 到 128 个字符。

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