

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

# 在 中使用 MongoDB 相容資料庫做為同質資料遷移的來源 AWS DMS
<a name="dm-data-providers-source-mongodb"></a>

您可以使用 MongoDB 相容資料庫做為同質資料遷移的來源 AWS DMS。在這種情況下，您的來源資料提供者可以是內部部署、適用於 MongoDB 資料庫的 Amazon EC2 或 Amazon DocumentDB （具有 MongoDB 相容性） 資料庫。

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

下列各節說明自我管理 MongoDB 資料庫和 AWS受管 Amazon DocumentDB 資料庫的特定組態先決條件。

**Topics**
+ [使用自我管理的 MongoDB 資料庫做為 中同質資料遷移的來源 AWS DMS](#dm-data-providers-source-mongodb-sm)
+ [在 中使用 Amazon DocumentDB 資料庫做為同質資料遷移的來源 AWS DMS](#dm-data-providers-source-mongodb-aws)
+ [使用 MongoDB 相容資料庫做為同質資料遷移來源的功能](#dm-data-providers-source-mongodb-features)
+ [使用 MongoDB 相容資料庫做為同質資料遷移來源的限制](#dm-data-providers-source-mongodb-limitations)
+ [使用 MongoDB 相容資料庫做為同質資料遷移來源的最佳實務](#dm-data-providers-source-mongodb-bestpractices)

## 使用自我管理的 MongoDB 資料庫做為 中同質資料遷移的來源 AWS DMS
<a name="dm-data-providers-source-mongodb-sm"></a>

本節說明如何設定內部部署或 Amazon EC2 執行個體上託管的 MongoDB 資料庫。

檢查來源 MongoDB 資料庫的版本。請確定 AWS DMS 支援來源 MongoDB 資料庫版本，如中所述[DMS 同質資料遷移的來源資料提供者](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.HomogeneousDataMigrations)。

若要使用 MongoDB 來源執行同質資料遷移，您可以建立具有根權限的使用者帳戶，或僅具有資料庫上遷移許可的使用者。如需建立使用者的詳細資訊，請參閱 [使用 MongoDB 做為 來源時所需的許可 AWS DMS](CHAP_Source.MongoDB.md#CHAP_Source.MongoDB.PrerequisitesCDC)。

若要搭配 MongoDB 使用持續複寫或 CDC， AWS DMS 需要存取 MongoDB 操作日誌 (oplog)。如需詳細資訊，請參閱[為 CDC 設定 MongoDB 複本集](CHAP_Source.MongoDB.md#CHAP_Source.MongoDB.PrerequisitesCDC.ReplicaSet)。

如需 MongoDB 身分驗證方法的詳細資訊，請參閱 [使用 MongoDB 做為 來源時的安全需求 AWS DMS](CHAP_Source.MongoDB.md#CHAP_Source.MongoDB.Security)。

對於做為來源的 MongoDB，同質資料遷移支援 Amazon DocumentDB 支援的所有資料類型。

對於 MongoDB 做為來源，若要將使用者登入資料存放在 Secrets Manager 中，您需要使用**其他類型的秘密**類型，以純文字提供登入資料。如需詳細資訊，請參閱[使用秘密存取 AWS Database Migration Service 端點](security_iam_secretsmanager.md)。

下列程式碼範例示範如何使用純文字存放資料庫秘密。

```
{
  "username": "dbuser",
  "password": "dbpassword"
}
```

## 在 中使用 Amazon DocumentDB 資料庫做為同質資料遷移的來源 AWS DMS
<a name="dm-data-providers-source-mongodb-aws"></a>

本節說明如何設定 Amazon DocumentDB 資料庫執行個體，以用作同質資料遷移的來源。

使用 Amazon DocumentDB 執行個體的主使用者名稱做為 MongoDB 相容來源資料提供者的使用者帳戶，以進行同質資料遷移 AWS DMS。主要使用者帳戶擁有能讓它設定 CDC 所需要的角色。如果您使用主使用者帳戶以外的帳戶，則帳戶必須具有根角色。如需以根帳戶建立使用者的詳細資訊，請參閱 [設定許可以使用 Amazon DocumentDB 作為來源](CHAP_Source.DocumentDB.md#CHAP_Source.DocumentDB.Permissions)。

若要開啟邏輯複寫，請將資料庫`change_stream_log_retention_duration`參數群組中的 參數設定為適合您交易工作負載的設定。變更此靜態參數需要重新啟動資料庫執行個體才能生效。開始所有任務類型的資料遷移之前，包括僅完全載入，請為指定資料庫中的所有集合啟用 Amazon DocumentDB 變更串流，或僅為選取的集合啟用 Amazon DocumentDB 變更串流。如需為 Amazon DocumentDB 啟用變更串流的詳細資訊，請參閱《*Amazon DocumentDB 開發人員指南*》中的[啟用變更串流](https://docs.aws.amazon.com/documentdb/latest/developerguide/change_streams.html#change_streams-enabling)。

**注意**  
AWS DMS 使用 Amazon DocumentDB 變更串流來擷取持續複寫期間的變更。如果 Amazon DocumentDB 在 DMS 讀取變更串流之前從變更串流清除記錄，您的任務將會失敗。我們建議設定 `change_stream_log_retention_duration` 參數以保留變更至少 24 小時。

若要使用 Amazon DocumentDB 進行同質資料遷移，請將使用者登入資料存放在 Secrets Manager 中的 **Amazon DocumentDB 資料庫登入資料**下。

## 使用 MongoDB 相容資料庫做為同質資料遷移來源的功能
<a name="dm-data-providers-source-mongodb-features"></a>
+ 您可以在完全載入階段遷移 Amazon DocumentDB 支援的所有次要索引。
+ AWS DMS 會平行遷移集合。 同質資料遷移會根據集合中每個文件的平均大小，在執行時間計算區段，以獲得最佳效能。
+ DMS 可以複寫您在 CDC 階段建立的次要索引。DMS 支援 MongoDB 6.0 版中的此功能。
+ DMS 支援巢狀層級大於 97 的文件。

## 使用 MongoDB 相容資料庫做為同質資料遷移來源的限制
<a name="dm-data-providers-source-mongodb-limitations"></a>
+ 文件不能有字`$`首為 的欄位名稱。
+ AWS DMS 不支援時間序列集合遷移。
+ AWS DMS 在 CDC `create`階段不支援 `drop`、 或 `rename collection` DDL 事件。
+ AWS DMS 不會在 `_id` 欄位的集合中聲稱不一致的資料類型。例如，下列不支援的集合具有 `_id` 欄位的多種資料類型。

  ```
  rs0 [direct: primary] test> db.collection1.aggregate([
  ...   {
  ...     $group: {
  ...       _id: { $type: "$_id" },
  ...       count: { $sum: 1 }
  ...     }
  ...   }
  ... ])
  [ { _id: 'string', count: 6136 }, { _id: 'objectId', count: 848033 } ]
  ```
+ 對於僅限 CDC 的任務， AWS DMS 僅支援`immediate`啟動模式。
+ AWS DMS 不支援 UTF8 字元無效的文件。
+ AWS DMS 不支援碎片集合。

## 使用 MongoDB 相容資料庫做為同質資料遷移來源的最佳實務
<a name="dm-data-providers-source-mongodb-bestpractices"></a>
+ 對於同一 MongoDB 執行個體上託管的多個大型資料庫和集合，我們建議您使用每個資料庫和集合的選擇規則，在多個資料遷移任務和專案之間分割任務。您可以調整資料庫和集合區段，以獲得最高效能。