

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

# 在 中使用 PostgreSQL 資料庫做為同質資料遷移的目標 AWS DMS
<a name="dm-data-providers-target-postgresql"></a>

您可以在 AWS DMS中使用 PostgreSQL 資料庫作為同質資料遷移的遷移目標。

AWS DMS 需要特定許可，才能將資料遷移到目標 Amazon RDS for PostgreSQL 或 Amazon 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。此靜態參數需要重新啟動資料庫執行個體或資料庫叢集才會生效。有些參數是靜態的，而且您只能在伺服器 start. AWS DMS ignores 時設定這些參數。請忽略資料庫參數群組中其項目的變更，直到您重新啟動伺服器為止。

PostgreSQL 使用觸發條件來實作外部索引鍵限制。在完全載入階段期間， 一次 AWS DMS 載入一個資料表。建議您在完全載入期間關閉目標資料庫上的外來索引鍵限制。若要這麼做，請使用下列其中一個方法：
+ 暫時關閉執行個體的所有觸發條件，並完成完全載入。
+ 變更 PostgreSQL 中 `session_replication_role` 參數的值。

  在任何指定的時間，觸發可為下列狀態之一：`origin`、`replica`、`always` 或 `disabled`。當您將 `session_replication_role` 參數設定為 `replica` 時，只有處於 `replica` 狀態的觸發程序會保持作用中。否則，觸發會保持非作用中。

## 使用 PostgreSQL 相容資料庫做為同質資料遷移目標的限制
<a name="dm-data-providers-target-postgresql-limitations"></a>

使用 PostgreSQL 相容資料庫作為同質資料遷移的目標時，存在下列限制：
+ 用於連線到資料來源的使用者名稱具有以下限制：
  + 長度可有 2 到 64 個字元。
  + 不能有空格。
  + 可以包含以下字元：a-z、A-Z、0-9 和底線 (\$1)。
  + 必須以 a-z 或 A-Z 開頭。
+ 您用來連線到資料來源的密碼具有以下限制：
  + 長度可有 1 到 128 個字元。
  + 不能包含下列任何項目：單引號 (')、雙引號 (「)、分號 (;) 或空格。