

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

# 使用适用于 PostgreSQL 灵活服务器的微软 Azure 数据库作为来源 AWS DMS
<a name="CHAP_Source.AzureDBPostgreSQL"></a>

使用 AWS DMS，你可以使用适用于 PostgreSQL 灵活服务器的微软 Azure 数据库作为源，其方式与使用 PostgreSQL 的方式大致相同。

有关支持作为源的适用于 PostgreSQL 的 Microsoft Azure 数据库灵活服务器版本的信息 AWS DMS ，请参阅。[的来源 AWS DMS](CHAP_Introduction.Sources.md)

## 设置 Microsoft Azure Database for PostgreSQL 灵活服务器以进行逻辑复制和解码
<a name="CHAP_Source.AzureDBPostgreSQL.setup"></a>

在数据库迁移期间，您可以使用 Microsoft Azure Database for PostgreSQL 灵活服务器中的逻辑复制和解码功能。

对于逻辑解码，DMS 使用 `test_decoding` 或 `pglogical` 插件。如果 `pglogical` 插件在源 PostgreSQL 数据库上可用，则 DMS 使用 `pglogical` 创建复制插槽，否则使用 `test_decoding` 插件。

要将您的 Microsoft Azure for PostgreSQL 灵活服务器配置为 DMS 的来源端点，请执行以下步骤：

1. 在门户上打开“服务器参数”页面。

1. 将 `wal_level` 服务器参数设置为 `LOGICAL`。

1. 如果要使用 `pglogical` 扩展，请将 `shared_preload_libraries` 和 `azure.extensions` 参数设置为 `pglogical`。

1. 将 `max_replication_slots` 参数设置为您计划同时运行的最大 DMS 任务数。在 Microsoft Azure 中，此参数的默认值是 10。此参数的最大值取决于 PostgreSQL 实例的可用内存，每 GB 内存允许使用 2 到 8 个复制插槽。

1. 将 `max_wal_senders` 参数设置为一个大于 1 的值。`max_wal_senders` 参数用于设置可以运行的并发任务数。默认值是 10。

1. 将 `max_worker_processes` 参数值设置为至少 16。否则，您可能会看到如下错误：

   ```
   WARNING: out of background worker slots.
   ```

1. 保存更改。重启服务器以应用更改。

1. 确认您的 PostgreSQL 实例允许来自所连接资源的网络流量。

1. 使用以下命令向现有用户授予复制权限，或创建具有复制权限的新用户。
   + 使用以下命令向现有用户授予复制权限：

     ```
     ALTER USER <existing_user> WITH REPLICATION;
     ```
   + 使用以下命令创建具有复制权限的新用户：

     ```
     CREATE USER aws_dms_user PASSWORD 'aws_dms_user_password';
     GRANT azure_pg_admin to aws_dms_user;
     ALTER ROLE aws_dms_user REPLICATION LOGIN;
     ```

有关使用 PostgreSQL 的逻辑复制的更多信息，请参阅以下主题：
+ [使用逻辑复制启用更改数据捕获（CDC）](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.Security)
+ [使用本机 CDC 开始点设置 PostgreSQL 源的 CDC 加载](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.v10)
+ [Azure Database for PostgreSQL 文档](https://learn.microsoft.com/en-us/azure/postgresql/)中的[ Azure Database for PostgreSQL – 灵活服务器中的逻辑复制和逻辑解码](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-logical)。