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

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

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

您可以使用 Postgre SQL 数据库作为中同构数据迁移的迁移目标。 AWS DMS

AWS DMS 需要一定的权限才能将数据迁移到你的目标 Amazon for Postgre SQL 或 Amaz RDS on Aurora Postgre 数据库。SQL使用以下脚本在 Postgre SQL 目标数据库中创建具有所需权限的数据库用户。

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;

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

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

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

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

  • 在 Postgr session_replication_role SQL e 中更改参数的值。

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

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

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

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

    • 长度为 2 到 64 个字符。

    • 不能包含空格。

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

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

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

    • 长度为 1 到 128 个字符。

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