

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

# 使用 AWS DMS 將 Microsoft SQL Server 資料庫從 Amazon EC2 遷移至 Amazon DocumentDB
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms"></a>

*Umamaheswara Nooka，Amazon Web Services*

## 總結
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-summary"></a>

此模式說明如何使用 AWS Database Migration Service (AWS DMS) 將 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上託管的 Microsoft SQL Server 資料庫遷移至 Amazon DocumentDB （具有 MongoDB 相容性） 資料庫。

AWS DMS 複寫任務會讀取 SQL Server 資料庫的資料表結構、在 Amazon DocumentDB 中建立對應的集合，以及執行完全載入遷移。

您也可以使用此模式將現場部署 SQL Server 或 Amazon Relational Database Service (Amazon RDS) for SQL Server 資料庫執行個體遷移至 Amazon DocumentDB。如需詳細資訊，請參閱 [AWS 規範指引網站上的將 Microsoft SQL Server 資料庫遷移至 AWS 雲端](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/welcome.html)指南。

## 先決條件和限制
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶
+ EC2 執行個體上現有的 SQL Server 資料庫。
+ 修正 SQL Server 資料庫中指派給 AWS DMS 的資料庫 (**db\_owner**) 角色。如需詳細資訊，請參閱 SQL Server 文件中的[資料庫層級角色](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15)。 
+ 熟悉使用 `mongodump`、`mongoexport`、 `mongorestore`和 `mongoimport`公用程式將[資料移入和移出 Amazon DocumentDB 叢集](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html)。
+ [Microsoft SQL Server Management Studio](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15)，已安裝並設定。

**限制**
+ Amazon DocumentDB 中的叢集大小限制為 64 TB。如需詳細資訊，請參閱 Amazon DocumentDB 文件中的[叢集限制](https://docs.aws.amazon.com/documentdb/latest/developerguide/limits.html#limits-cluster)。 
+ AWS DMS 不支援將多個來源資料表合併為單一 Amazon DocumentDB 集合。
+ 如果 AWS DMS 在沒有主索引鍵的情況下處理來源資料表的任何變更，它會忽略來源資料表中的大型物件 (LOB) 資料欄。

## Architecture
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-architecture"></a>

**來源技術堆疊**
+ Amazon EC2

**目標技術堆疊**
+ Amazon DocumentDB

**目標架構**

![](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/f186220b-5a94-48b2-840d-f04aedf51651/images/00962b85-8b71-49df-b84a-3adcbc9ad3a3.png)


## 工具
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) – AWS Database Migration Service (AWS DMS) 可協助您輕鬆安全地遷移資料庫。
+ [Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html) – Amazon DocumentDB （與 MongoDB 相容） 是一種快速、可靠且全受管的資料庫服務。
+ [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) – Amazon Elastic Compute Cloud (Amazon EC2) 在 AWS 雲端中提供可擴展的運算容量。
+ [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15) – SQL Server 是一種關聯式資料庫管理系統。
+ [SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-ver15) – SSMS 是管理 SQL Server 的工具，包括存取、設定和管理 SQL Server 元件。

## 史詩
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-epics"></a>

### 建立和設定 VPC
<a name="create-and-configure-a-vpc"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立 VPC。 | 登入 AWS 管理主控台並開啟 Amazon VPC 主控台。建立具有 IPv4 CIDR 區塊範圍的虛擬私有雲端 (VPC)。 | 系統管理員 | 
| 建立安全群組和網路 ACLs。 | 在 Amazon VPC 主控台上，根據您的需求為您的 VPC 建立安全群組和網路存取控制清單 （網路 ACLs)。您也可以使用這些組態的預設設定。如需此案例和其他案例的詳細資訊，請參閱「相關資源」一節。 | 系統管理員 | 

### 建立和設定 Amazon DocumentDB 叢集
<a name="create-and-configure-the-amazon-documentdb-cluster"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
|  建立 Amazon DocumentDB 叢集。 | 開啟 Amazon DocumentDB 主控台，然後選擇「叢集」。選擇「建立」，並使用一個執行個體建立 Amazon DocumentDB 叢集。重要：請務必使用 VPC 的安全群組來設定此叢集。 | 系統管理員  | 
|  安裝 mongo shell。 | mongo Shell 是一個命令行公用程式，可以使用它來連線和查詢 Amazon DocumentDB 叢集。若要安裝它，請執行 "/etc/yum.repos.d/mongodb-org-3.6.repo" 命令來建立儲存庫檔案。執行「sudo yum install -y mongodb-org-shell」命令來安裝 mongo shell。若要加密傳輸中的資料，請下載 Amazon DocumentDB 的公有金鑰，然後連接至您的 Amazon DocumentDB 執行個體。如需這些步驟的詳細資訊，請參閱「相關資源」一節。 | 系統管理員  | 
| 在 Amazon DocumentDB 叢集中建立資料庫。 | 使用資料庫的名稱執行「使用」命令，在 Amazon DocumentDB 叢集中建立資料庫。 | 系統管理員  | 

### 建立和設定 AWS DMS 複寫執行個體
<a name="create-and-configure-the-aws-dms-replication-instance"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立 AWS DMS 複寫執行個體。 | 開啟 AWS DMS 主控台，然後選擇「建立複寫執行個體」。輸入複寫任務的名稱和描述。選擇執行個體類別、引擎版本、儲存體、VPC、異地同步備份，並使其可公開存取。選擇「進階」索引標籤來設定網路和加密設定。指定維護設定，然後選擇「建立複寫執行個體」。 | 系統管理員  | 
| 設定 SQL Server 資料庫。 | 登入 Microsoft SQL Server 並新增傳入規則，以在來源端點和 AWS DMS 複寫執行個體之間進行通訊。使用複寫執行個體的私有 IP 地址做為來源。重要：複寫執行個體和目標端點應該位於相同的 VPC 上。如果來源和複寫執行個體VPCs 不同，請使用安全群組中的替代來源。 | 系統管理員  | 

### 在 AWS DMS 中建立和測試來源和目標端點
<a name="create-and-test-the-source-and-target-endpoints-in-aws-dms"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立來源和目標資料庫端點。 | 開啟 AWS DMS 主控台，然後選擇「連接來源和目標資料庫端點」。指定來源和目標資料庫的連線資訊。如有必要，請選擇「進階」索引標籤來設定「額外連線屬性」的值。在端點組態中下載並使用憑證套件。 | 系統管理員  | 
| 測試端點連線。 | 選擇「執行測試」來測試連線。透過驗證安全群組設定以及來自來源和目標資料庫執行個體的 AWS DMS 複寫執行個體連線，對任何錯誤訊息進行故障診斷。 | 系統管理員  | 

### 遷移資料
<a name="migrate-data"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立 AWS DMS 遷移任務。 | 在 AWS DMS 主控台上，選擇「任務」、「建立任務」。指定任務選項，包括來源和目的地端點名稱，以及複寫執行個體名稱。在「遷移類型」下，選擇「遷移現有資料」和「僅複寫資料變更」。選擇「開始任務」。 | 系統管理員  | 
| 執行 AWS DMS 遷移任務。 | 在「任務設定」下，指定資料表準備模式的設定，例如「不執行任何動作」、「目標上的捨棄資料表」、「截斷」和「在複寫中包含 LOB 資料欄」。設定 AWS DMS 將接受的最大 LOB 大小，然後選擇「啟用記錄」。將「進階設定」保留為預設值，然後選擇「建立任務」。 | 系統管理員  | 
| 監控遷移。 | 在 AWS DMS 主控台上，選擇「任務」，然後選擇您的遷移任務。選擇「任務監控」來監控您的任務。完成完全載入遷移並套用快取變更時，任務會停止。 | 系統管理員  | 

### 測試並驗證遷移
<a name="test-and-verify-the-migration"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
|  使用 mongo shell 連線至 Amazon DocumentDB 叢集。 | 開啟 Amazon DocumentDB 主控台，選擇「叢集」下的叢集。在「連線和安全性」索引標籤中，選擇「使用 mongo shell 連線至此叢集」。 | 系統管理員  | 
| 驗證遷移的結果。 | 使用資料庫的名稱執行「使用」命令，然後執行「顯示集合」命令。使用資料庫的名稱執行 "db. .count()；" 命令。如果結果與您的來源資料庫相符，則遷移成功。 | 系統管理員  | 

## 相關資源
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-resources"></a>

**建立和設定 VPC**
+ [為您的 VPC 建立安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)
+ [建立網路 ACL](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)

** **

**建立和設定 Amazon DocumentDB 叢集**
+ [建立 Amazon DocumentDB 叢集](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-cluster)
+ [安裝 Amazon DocumentDB 的 mongo shell](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-mongoshell)
+ [連接至 Amazon DocumentDB 叢集](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-connectcluster)

** **

**建立和設定 AWS DMS 複寫執行個體**
+ [使用公有和私有複寫執行個體](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.PublicPrivate)

** **

**在 AWS DMS 中建立和測試來源和目標端點**
+ [使用 Amazon DocumentDB 做為 AWS DMS 的目標](https://docs.aws.amazon.com/dms/latest/userguide/target.docdb.html)
+ [使用 SQL Server 資料庫做為 AWS DMS 的來源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [使用 AWS DMS 端點](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html)

** **

**遷移資料**
+ [遷移至 Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/docdb-migration.html)

** **

**其他資源**
+ [使用 SQL Server 做為 AWS DMS 來源的限制](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.Limitations) 
+ [如何使用 Amazon DocumentDB 大規模建置和管理應用程式](https://aws.amazon.com/blogs/database/how-to-use-amazon-documentdb-with-mongodb-compatibility-to-build-and-manage-applications-at-scale/)