

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

# 建立和設定目標資料庫以使用 AWS DMS 結構描述轉換
<a name="dm-data-providers-target"></a>

您可以使用 MySQL 相容、PostgreSQL 和 Amazon DocumentDB 資料庫做為同質資料遷移的目標資料提供者 AWS DMS。

如需支援的資料庫版本，請參閱 [DMS 同質資料遷移的目標資料提供者](CHAP_Introduction.Targets.md#CHAP_Introduction.Targets.HomogeneousDataMigrations)。

您的目標資料提供者可以是 Amazon RDS 資料庫執行個體或是 Amazon Aurora 資料庫叢集。請注意，目標資料提供者的資料庫版本必須等於或高於來源資料提供者的資料庫版本。

**Topics**
+ [在 中使用 MySQL 相容資料庫做為同質資料遷移的目標 AWS DMS](dm-data-providers-target-mysql.md)
+ [在 中使用 PostgreSQL 資料庫做為同質資料遷移的目標 AWS DMS](dm-data-providers-target-postgresql.md)
+ [在 中使用 Amazon DocumentDB 資料庫做為同質資料遷移的目標 AWS DMS](dm-data-providers-target-docdb.md)

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

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

AWS DMS 需要特定許可，才能將資料遷移到目標 Amazon RDS for MySQL 或 MariaDB 或 Amazon Aurora MySQL 資料庫。使用以下指令碼在 MySQL 目標資料庫中建立具有所需許可的資料庫使用者。

在此範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。如果您的目標 MariaDB 資料庫版本低於 10.5，則可以略過 `GRANT SLAVE MONITOR`命令。

```
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';

GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER, EXECUTE, REFERENCES ON *.* TO 'your_user'@'%';
GRANT REPLICATION SLAVE, REPLICATION CLIENT  ON *.* TO 'your_user'@'%'; GRANT SLAVE MONITOR  ON *.* TO 'your_user'@'%';
```

在上述範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

使用以下指令碼在 MariaDB 資料庫中建立具有所需許可的資料庫使用者。為您遷移到的所有資料庫執行 GRANT 查詢 AWS。

```
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER, EXECUTE,SLAVE MONITOR, REPLICATION SLAVE ON *.* TO 'your_user'@'%';
```

在上述範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

**注意**  
在 Amazon RDS 中，當您開啟 MySQL/Maria 資料庫執行個體的自動備份時，也會連帶開啟二進位記錄功能。啟用這些設定後，在目標資料庫上建立次要物件 (例如函數、程序和觸發條件) 時，您的資料遷移工作可能會失敗，並顯示下列錯誤。如果您的目標資料庫已啟用二進位記錄，在開始工作之前，請將資料庫參數群組中的 `log_bin_trust_function_creators` 設定為 `true`。  

```
ERROR 1419 (HY000): You don't have the SUPER privilege and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)
```

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

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

# 在 中使用 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 個字元。
  + 不能包含下列任何項目：單引號 (')、雙引號 (「)、分號 (;) 或空格。

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

您可以使用 Amazon DocumentDB （與 MongoDB 相容性） 資料庫和 DocumentDB Elastic 叢集做為同質資料遷移的遷移目標 AWS DMS。

若要為 Amazon DocumentDB 目標執行同質資料遷移，您可以建立具有管理員權限的使用者帳戶，或僅在資料庫上具有讀取/寫入許可的使用者以進行遷移。

同質資料遷移支援 Amazon DocumentDB 支援的所有 BSON 資料類型。如需這些資料類型的清單，請參閱《*Amazon DocumentDB 開發人員指南*》中的[資料類型](https://docs.aws.amazon.com/documentdb/latest/developerguide/mongo-apis.html#mongo-apis-data-types)。

若要使用 DocumentDB Elastic 叢集的碎片功能從來源遷移非碎片集合，請在開始資料遷移任務之前建立碎片集合以進行遷移。如需 Amazon DocumentDB Elastic 叢集中碎片集合的詳細資訊，請參閱《*Amazon DocumentDB 開發人員指南*》中的[步驟 5：碎片集合](https://docs.aws.amazon.com/documentdb/latest/developerguide/elastic-get-started.html#elastic-get-started-step6)。

對於 Amazon DocumentDB 目標， AWS DMS 支援 `none`或 `require` SSL 模式。