

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

# 使用 AWS DMS 將 Microsoft SQL Server 資料庫匯出至 Amazon S3
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms"></a>

*Sweta Krishna，Amazon Web Services*

## 總結
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-summary"></a>

組織通常需要將資料庫複製到 Amazon Simple Storage Service (Amazon S3)，以進行資料庫遷移、備份和還原、資料封存和資料分析。此模式說明如何將 Microsoft SQL Server 資料庫匯出至 Amazon S3。來源資料庫可以在內部部署或 Amazon Elastic Compute Cloud (Amazon EC2) 或 Amazon Web Services (AWS) Cloud 上 Microsoft SQL Server 的 Amazon Relational Database Service (Amazon RDS) 上託管。

使用 AWS Database Migration Service (AWS DMS) 匯出資料。根據預設，AWS DMS 會以逗號分隔值 (.csv) 格式寫入完全載入和變更資料擷取 (CDC) 資料。對於更精簡的儲存和更快的查詢選項，此模式使用 Apache Parquet (.parquet) 格式選項。

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

**先決條件**
+ 作用中的 AWS 帳戶
+ 帳戶 AWS Identity and Access Management (IAM) 角色，具有目標 S3 儲存貯體的寫入、刪除和標記存取權，而 AWS DMS (`dms.amazonaws.com`) 已新增為此 IAM 角色的信任實體
+ 內部部署 Microsoft SQL Server 資料庫 （或 EC2 執行個體或 Amazon RDS for SQL Server 資料庫上的 Microsoft SQL Server)
+ AWS 上的虛擬私有雲端 (VPC) 與 AWS Direct Connect 或虛擬私有網路 (VPN) 提供的內部部署網路之間的網路連線

**限制**
+ AWS DMS 3.4.7 之前的版本目前不支援啟用 VPC （閘道 VPC) S3 儲存貯體。
+ 不支援在完全載入階段變更來源資料表結構。
+ 不支援 AWS DMS 完整大型二進位物件 (LOB) 模式。

**產品版本**
+ 適用於 Enterprise、Standard、Workgroup 和 Developer 版本的 Microsoft SQL Server 2005 版或更新版本。
+ AWS DMS 3.3.2 版及更新版本提供 Microsoft SQL Server 2019 版做為來源的支援。

## Architecture
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-architecture"></a>

**來源技術堆疊**
+ 內部部署 Microsoft SQL Server 資料庫 （或 EC2 執行個體或 Amazon RDS for SQL Server 資料庫上的 Microsoft SQL Server)**** 

**目標技術堆疊**
+ AWS Direct Connect
+ AWS DMS
+ Amazon S3

**目標架構**

![資料會透過 Direct Connect 從 SQL Server 資料庫遷移至 AWS DMS，然後遷移至 S3 儲存貯體。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/75b8b20f-a1a8-4633-9816-1b370cc7e92c/images/85bd433c-4a0a-4825-8661-e53f53265191.png)


## 工具
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 可協助您將資料存放區遷移至 AWS 雲端，或在雲端和內部部署設定的組合之間遷移。
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 透過標準乙太網路光纖纜線，將您的內部網路連結至 Direct Connect 位置。透過此連線，您可以直接建立與公有 AWS 服務的虛擬介面，同時略過網路路徑中的網際網路服務供應商。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 是一種雲端型物件儲存服務，可協助您儲存、保護和擷取任何數量的資料。

## 史詩
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-epics"></a>

### 準備遷移
<a name="prepare-for-the-migration"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 驗證資料庫版本。 | 驗證來源資料庫版本，並確認 AWS DMS 支援該版本。如需有關支援的 SQL Server 資料庫版本的資訊，請參閱[使用 Microsoft SQL Server 資料庫做為 AWS DMS 的來源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)。 | DBA | 
| 建立 VPC 和安全群組。 | 在您的 AWS 帳戶中，建立 VPC 和安全群組。如需詳細資訊，請參閱 [Amazon VPC 文件](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)。 | 系統管理員 | 
| 為 AWS DMS 任務建立使用者。 | 在來源資料庫中建立 AWS DMS 使用者，並授予其讀取許可。AWS DMS 將使用此使用者。 | DBA | 
| 測試資料庫連線。 | 從 AWS DMS 使用者測試 SQL Server 資料庫執行個體的連線。 | DBA | 
| 建立 S3 儲存貯體。 | 建立目標 S3 儲存貯體。此儲存貯體將保留遷移的資料表資料。 | 系統管理員 | 
| 建立 IAM 政策和角色。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.html) | 系統管理員 | 

### 使用 AWS DMS 遷移資料
<a name="migrate-data-by-using-aws-dms"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立 AWS DMS 複寫執行個體。 | 登入 AWS 管理主控台，然後開啟 AWS DMS 主控台。在導覽窗格中，選擇**複寫執行個體**、**建立複寫執行個體**。如需說明，請參閱 AWS DMS 文件中的[步驟 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.ReplicationInstance)。 | DBA | 
| 建立來源和目標端點。 | 建立來源和目標端點。測試從複寫執行個體到來源和目標端點的連線。如需說明，請參閱 AWS DMS 文件中的[步驟 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Endpoints)。 | DBA | 
| 建立複寫任務。 | 建立複寫任務，然後選取具有變更資料擷取 (CDC) 的完全載入或完全載入，將資料從 SQL Server 遷移至 S3 儲存貯體。如需說明，請參閱 AWS DMS 文件中的[步驟 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks)。 | DBA | 
| 啟動資料複寫。 | 啟動複寫任務，並監控日誌是否有任何錯誤。 | DBA | 

### 驗證資料
<a name="validate-the-data"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 驗證遷移的資料。 | 在 主控台上，導覽至您的目標 S3 儲存貯體。開啟與來源資料庫同名的子資料夾。確認資料夾包含從來源資料庫遷移的所有資料表。 | DBA | 

### 清除資源
<a name="clean-up-resources"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 關閉並刪除臨時 AWS 資源。 | 關閉您為資料遷移建立的臨時 AWS 資源，例如 AWS DMS 複寫執行個體，並在驗證匯出後將其刪除。 | DBA | 

## 相關資源
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-resources"></a>
+ [AWS Database Migration Service 使用者指南](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [使用 Microsoft SQL Server 資料庫做為 AWS DMS 的來源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [使用 Amazon S3 做為 AWS Database Migration Service 的目標](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html)
+ [使用 S3 儲存貯體做為 AWS DMS 目標](https://repost.aws/knowledge-center/s3-bucket-dms-target) (AWS re：Post)

## 其他資訊
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-additional"></a>

使用下列程式碼，為 AWS DMS 角色新增具有 S3 儲存貯體許可的 IAM 政策。用您的儲存貯體名稱取代 `bucketname`。

```
{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:DeleteObject"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         },
         {
             "Effect": "Allow",
             "Action": [
                 "s3:ListBucket"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         }
     ]
 }
```