

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Microsoft Azure Database for PostgreSQL 彈性伺服器做為 的來源 AWS DMS
<a name="CHAP_Source.AzureDBPostgreSQL"></a>

透過 AWS DMS，您可以使用 Microsoft Azure Database for PostgreSQL 彈性伺服器做為來源，方法與 PostgreSQL 大致相同。

如需有關 AWS DMS 支援 做為來源的 Microsoft Azure Database for PostgreSQL 彈性伺服器版本的資訊，請參閱 [的來源 AWS DMS](CHAP_Introduction.Sources.md)。

## 設定 Microsoft Azure 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/)中的[適用於 PostgreSQL - 彈性伺服器的 Azure 資料庫中的邏輯複寫和邏輯解碼](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-logical)。