

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

# 將內部部署 MySQL 資料庫遷移至 Amazon RDS for MySQL
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql"></a>

*Lorenzo Mota，Amazon Web Services*

## 摘要
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-summary"></a>

此模式提供將內部部署 MySQL 資料庫遷移至 MySQL 的 Amazon Relational Database Service (Amazon RDS) MySQL 的指引。模式討論使用 AWS Database Migration Service (AWS DMS) 或原生 MySQL 工具進行完整的資料庫遷移，例如 **mysqldump**。此模式主要用於DBAs解決方案架構師。它可用於小型或大型專案做為測試程序 （我們建議至少有一個測試週期） 或做為最終遷移程序。

## 先決條件和限制
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-prereqs"></a>

**先決條件**
+ 作用中 AWS 帳戶
+ 內部部署資料中心中的 MySQL 來源資料庫

**限制**
+ 資料庫大小限制：[64 TB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**產品版本**
+ MySQL 5.5、5.6、5.7、8.0 版。如需支援版本的最新清單，請參閱 AWS 文件中的 [Amazon RDS 上的 MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html)。如果您使用的是 AWS DMS，另請參閱 [使用 MySQL 相容資料庫作為目前支援的 for MySQL 版本的目標 AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html)  AWS DMS。 MySQL 

## Architecture
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-architecture"></a>

**來源技術堆疊**
+ 內部部署 MySQL 資料庫

**目標技術堆疊**
+ 執行 MySQL 的 Amazon RDS 資料庫執行個體

**目標架構**

下圖顯示遷移後的目標 Amazon RDS for MySQL 實作。

![\[切換後的目標 Amazon RDS for MySQL 實作。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/2e10114e-e389-4d24-9b6a-fa56beee5369.png)


**AWS 資料遷移架構**

**使用 AWS DMS：**

下圖顯示使用 AWS DMS 傳送完整和增量變更時的資料遷移架構，直到切換為止。從內部部署到 的網路連線 AWS 取決於您的需求，且超出此模式的範圍。

![\[當您使用 AWS DMS 時，資料遷移架構至 AWS。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/ecc9b282-1897-4971-99ed-83223b17000d.png)


** 使用原生 MySQL 工具：**

下圖顯示當您使用原生 MySQL 工具時的資料遷移架構。匯出傾印檔案會複製到 Amazon Simple Storage Service (Amazon S3)，並在切換 AWS 之前匯入 中的 Amazon RDS for MySQL 資料庫。從內部部署到 的網路連線 AWS 取決於您的需求，且超出此模式的範圍。

 

![\[當您使用原生 MySQL 工具時，資料遷移至 AWS 架構。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/3bbec989-c3eb-473e-ba4a-032d6a4271c5.png)


**備註**：
+ 根據停機時間需求和資料庫的大小，使用 AWS DMS 或變更資料擷取 (CDC) 工具可將切換時間降至最低。 AWS DMS 可協助將新目標的切換時間縮短到最短 （通常為 分鐘）。如果資料庫和網路延遲的大小允許短時間，則 **mysqldump **的 離線策略就足夠。（我們建議進行測試以取得大約的時間。)
+ 通常， 等 CDC 策略 AWS DMS 比離線選項需要更多的監控和複雜性。

## 工具
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-tools"></a>
+ **AWS 服務**：[AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 可協助您將資料存放區遷移至 AWS 雲端 或在雲端和內部部署設定的組合之間遷移。如需 支援的 MySQL 來源和 目標資料庫的相關資訊 AWS DMS，請參閱 [將 MySQL 相容資料庫遷移至 AWS](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html)。如果您的來源資料庫不受 支援 AWS DMS，您必須選擇另一種方法來遷移資料。
+ **原生 MySQL 工具**：[mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)
+ **第三方工具**：[Percona XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup)

## 史詩
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-epics"></a>

### 規劃遷移
<a name="plan-the-migration"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 驗證資料庫版本。 | 驗證來源和目標資料庫版本。 | DBA | 
| 識別硬體需求。 | 識別目標伺服器的硬體需求。 | DBA，系統管理員 | 
| 識別儲存需求。 | 識別目標資料庫的儲存需求 （例如儲存類型和容量）。 | DBA，系統管理員 | 
| 選擇執行個體類型。 | 根據容量、儲存功能和聯網功能選擇目標執行個體類型。 | DBA，系統管理員 | 
| 識別網路存取需求。 | 識別來源和目標資料庫網路存取的安全需求。 | DBA，系統管理員 | 
| 識別不支援的物件。 | 識別不支援的物件 （如果有的話） 並判斷遷移工作。 | DBA | 
| 識別相依性。 | 識別遠端資料庫上的任何相依性。 | DBA | 
| 決定應用程式遷移策略。 | 決定遷移用戶端應用程式的策略。 | DBA、應用程式擁有者、系統管理員 | 

### 設定基礎設施
<a name="configure-the-infrastructure"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立 Virtual Private Cloud (VPC) | 設定路由表、網際網路閘道、NAT 閘道和子網路。如需詳細資訊，請參閱 [Amazon RDS 文件中的 VPCs 和](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) Amazon RDS。 | 系統管理員 | 
| 建立安全群組。 | 根據您的需求設定連接埠和 CIDR 範圍或特定 IPs。MySQL 的預設連接埠為 3306。如需詳細資訊，請參閱 Amazon RDS 文件中的[使用安全群組控制存取](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html)。 | 系統管理員 | 
| 設定和啟動 Amazon RDS for MySQL 資料庫執行個體。 | 如需說明，請參閱[《Amazon RDS 文件》中的建立 Amazon RDS 資料庫執行個體](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateInstance.html)。檢查支援的版本。 | 系統管理員 | 

### 遷移資料 ‒ 選項 1 （使用原生工具）
<a name="migrate-data-option-1-using-native-tools"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 使用原生 MySQL 工具或第三方工具來遷移資料庫物件和資料。 | 如需說明，請參閱 MySQL 工具的文件，例如 [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) 和 [Percona XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup) （適用於實體遷移）。如需選項的詳細資訊，請參閱 [ MySQL 遷移至 Amazon RDS for MySQL 或 Amazon Aurora MySQL ](https://aws.amazon.com/blogs/database/migration-options-for-mysql-to-amazon-rds-for-mysql-or-amazon-aurora-mysql/)的部落格文章。 | DBA | 

### 遷移資料 ‒ 選項 2 （使用 AWS DMS)
<a name="migrate-data-option-2-using-dms"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 使用 遷移資料 AWS DMS。 | 如需說明，請參閱 [AWS DMS 文件](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)。 | DBA | 

### 在切換之前執行初步任務
<a name="perform-preliminary-tasks-before-cutover"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 修正物件計數差異。 | 從來源資料庫和新目標資料庫收集物件計數。修正目標資料庫中的差異。 | DBA | 
| 檢查相依性。 | 檢查往返其他資料庫的相依性 （連結） 是否有效並如預期運作。 | DBA | 
| 執行測試。 | 如果這是一個測試週期，請執行查詢測試、收集指標並修正問題。 | DBA | 

### 切換
<a name="cut-over"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 切換到目標資料庫。 | 將用戶端應用程式切換到新的基礎設施。 | DBA、應用程式擁有者、系統管理員 | 
| 提供測試支援。 | 提供功能應用程式測試的支援。 | DBA | 

### 關閉專案
<a name="close-the-project"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 關閉資源。 | 關閉您為遷移建立的臨時 AWS 資源。 | DBA，系統管理員 | 
| 驗證專案文件。 | 檢閱並驗證專案文件。 | DBA、應用程式擁有者、系統管理員 | 
| 收集指標。 | 收集遷移時間、手動與自動化工作的百分比、節省成本等指標。 | DBA、應用程式擁有者、系統管理員 | 
| 關閉專案。 | 關閉專案並提供意見回饋。 | DBA、應用程式擁有者、系統管理員 | 
| 停用來源資料庫。 | 當所有遷移和切換任務完成時，請停用現場部署資料庫。 | DBA，系統管理員 | 

## 相關資源
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-resources"></a>

**參考**
+ [關聯式資料庫的遷移策略](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/welcome.html)
+ [AWS DMS website](https://aws.amazon.com/dms/)
+ [AWS DMS 文件](https://docs.aws.amazon.com/dms/)
+ [Amazon RDS 文件](https://docs.aws.amazon.com/rds/)
+ [Amazon RDS 定價](https://aws.amazon.com/rds/pricing/)
+ [Amazon VPC 和 Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Amazon RDS 異地同步備份部署](https://aws.amazon.com/rds/details/multi-az/)
+ [使用 Percona XtraBackup、Amazon EFS 和 Amazon S3 將內部部署 MySQL 資料庫遷移至 Aurora MySQL ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.html)
+ [Amazon RDS 資料庫執行個體儲存體](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**教學課程**
+ [入門 AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Amazon RDS 入門](https://aws.amazon.com/rds/getting-started/)