

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

# 入門 AWS Database Migration Service
<a name="CHAP_GettingStarted"></a>

在以下教學課程中，您可以了解如何使用 AWS Database Migration Service () 執行資料庫遷移AWS DMS。

若要執行資料庫遷移，請執行下列步驟：

1. 依照中的步驟設定 AWS 您的帳戶[設定 的AWS Database Migration Service](CHAP_GettingStarted.SettingUp.md)。

1. 建立範例資料庫和 Amazon EC2 用戶端，以填入來源資料庫並測試複寫。此外，建立以 Amazon Virtual Private Cloud (Amazon VPC) 服務為基礎的虛擬私有雲端 (VPC)，以容納教學課程的資源。若要建立這些資源，請遵循 [完成先決條件以設定 AWS Database Migration Service](CHAP_GettingStarted.Prerequisites.md)中的步驟。

1. 使用[範例資料庫建立指令碼](https://github.com/aws-samples/aws-database-migration-samples)填入來源資料庫。

1. 使用 DMS 結構描述轉換，將結構描述從來源資料庫轉換為目標資料庫。請遵循 [開始使用 DMS 結構描述轉換](getting-started.md) 中的步驟。或者，如果您使用的是 legacy AWS Schema Conversion Tool (AWS SCT)，請遵循中的步驟[遷移結構描述](CHAP_GettingStarted.SCT.md)。

1. 建立複寫執行個體，以執行遷移的所有程序。若要執行此操作與下列任務，請採取[複寫](CHAP_GettingStarted.Replication.md)中的步驟。

1. 指定來源與目標資料庫端點。如需建立端點的相關資訊，請參閱[來源與目標端點](CHAP_Endpoints.Creating.md)。

1. 建立任務來定義您希望使用的資料表和複寫程序，並開始複寫。如需建立資料庫遷移任務的相關資訊，請參閱[建立任務](CHAP_Tasks.Creating.md)。

1. 在目標資料庫上執行查詢，以確認複寫是否正常運作。

## 進一步了解如何使用 AWS Database Migration Service
<a name="CHAP_GettingStarted.References"></a>

在本指南的稍後部分，您可以了解如何使用 AWS DMS 在最廣泛使用的商業和開放原始碼資料庫之間遷移資料。

我們也建議您在準備和執行資料庫遷移專案時檢查下列資源：
+ [AWS DMS Step-by-Step遷移指南](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) – 本指南提供step-by-step演練，逐步完成將資料遷移至 的程序 AWS。
+ [AWS DMS API 參考](https://docs.aws.amazon.com/dms/latest/APIReference/Welcome.html) – 此參考 AWS Database Migration Service 詳細說明 的所有 API 操作。
+ [AWS CLI for AWS DMS](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html) – 此參考提供搭配 AWS Command Line Interface (AWS CLI) 使用 的相關資訊 AWS DMS。

# 設定 的AWS Database Migration Service
<a name="CHAP_GettingStarted.SettingUp"></a>

## 註冊 AWS 帳戶
<a name="sign-up-for-aws"></a>

如果您沒有 AWS 帳戶，請完成下列步驟來建立一個。

**註冊 AWS 帳戶**

1. 開啟 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 請遵循線上指示進行。

   部分註冊程序需接收來電或簡訊，並在電話鍵盤輸入驗證碼。

   當您註冊 時AWS 帳戶，*AWS 帳戶根使用者*會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務，請將管理存取權指派給使用者，並且僅使用根使用者來執行[需要根使用者存取權的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 [https://aws.amazon.com/](https://aws.amazon.com/) 並選擇**我的帳戶**，以檢視您目前的帳戶活動並管理帳戶。

## 建立具有管理存取權的使用者
<a name="create-an-admin"></a>

註冊 後AWS 帳戶，請保護AWS 帳戶根使用者、啟用AWS IAM Identity Center和建立管理使用者，以免將根使用者用於日常任務。

**保護您的AWS 帳戶根使用者**

1.  選擇**根使用者**並輸入AWS 帳戶您的電子郵件地址，以帳戶擁有者[AWS 管理主控台](https://console.aws.amazon.com/)身分登入 。在下一頁中，輸入您的密碼。

   如需使用根使用者登入的說明，請參閱 *AWS 登入 使用者指南*中的[以根使用者身分登入](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。

   如需說明，請參閱《*IAM 使用者指南*》中的[為您的AWS 帳戶根使用者 （主控台） 啟用虛擬 MFA 裝置](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**建立具有管理存取權的使用者**

1. 啟用 IAM Identity Center。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[啟用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，將管理存取權授予使用者。

   如需使用 IAM Identity Center 目錄做為身分來源的教學課程，請參閱*AWS IAM Identity Center《 使用者指南*》中的[使用預設值設定使用者存取IAM Identity Center 目錄](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理存取權的使用者身分登入**
+ 若要使用您的 IAM Identity Center 使用者簽署，請使用建立 IAM Identity Center 使用者時傳送至您電子郵件地址的簽署 URL。

  如需使用 IAM Identity Center 使用者登入的說明，請參閱*AWS 登入《 使用者指南*》中的[登入AWS存取入口網站](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**指派存取權給其他使用者**

1. 在 IAM Identity Center 中，建立一個許可集來遵循套用最低權限的最佳實務。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[建立許可集](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 將使用者指派至群組，然後對該群組指派單一登入存取權。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[新增群組](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

# 完成先決條件以設定 AWS Database Migration Service
<a name="CHAP_GettingStarted.Prerequisites"></a>

在本節中，您可以了解 的先決條件任務 AWS DMS，例如設定來源和目標資料庫。在這些任務中，您也會設定以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 來容納資源。此外，您還可以設定 Amazon EC2 執行個體，您會使用此執行個體來填入來源資料庫並驗證目標資料庫上的複寫。

**注意**  
填入來源資料庫最多需要 45 分鐘。

在此教學課程中，您將建立作為來源的 MariaDB 資料庫，以及作為目標的 PostgreSQL 資料庫。這個情況會使用常用、低成本資料庫引擎來示範複寫。使用不同的資料庫引擎示範在異質平台之間遷移資料 AWS DMS 的功能。

本教學課程中的資源使用美國西部 (奧勒岡) 區域。如果您想要使用不同的 AWS 區域，請指定您選擇的區域，而不是美國西部 （奧勒岡） 出現的位置。

**注意**  
為了簡單起見，您為本教學課程建立的資料庫不會使用加密或其他進階安全功能。您必須使用安全性功能，來確保生產資料庫的安全。如需詳細資訊，請參閱 [Amazon RDS 中的安全性](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.html)。

如需先決條件步驟，請參下列主題。

**Topics**
+ [建立 VPC](#CHAP_GettingStarted.Prerequisites.VPC)
+ [建立 Amazon RDS 參數群組](#CHAP_GettingStarted.Prerequisites.params)
+ [建立來源 Amazon RDS 資料庫](#CHAP_GettingStarted.Prerequisites.sdatabase)
+ [建立目標 Amazon RDS 資料庫](#CHAP_GettingStarted.Prerequisites.tdatabase)
+ [建立 Amazon EC2 用戶端](#CHAP_GettingStarted.Prerequisites.client)
+ [填入來源資料庫](#CHAP_GettingStarted.Prerequisites.Populate)

## 建立 VPC
<a name="CHAP_GettingStarted.Prerequisites.VPC"></a>

在本節中，您會建立 VPC 以包含您的 AWS 資源。使用 VPC 是使用 AWS 資源時的最佳實務，讓您的資料庫、Amazon EC2 執行個體、安全群組等在邏輯上有條不紊且安全。

在教學課程資源中使用 VPC，也可確保您在完成教學課程後刪除所有使用的資源。您必須先刪除 VPC 包含的所有資源，才能刪除 VPC。

**建立 VPC 以搭配 使用 AWS DMS**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)：// 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **VPC 儀表板**，然後選擇**建立 VPC**。

1. 在**建立 VPC** 頁面上輸入下列選項：
   + **要建立的資源**：**VPC 等**
   + **名稱標籤自動產生**：選擇**自動產生**，然後輸入 **DMSVPC**。
   + **IPv4 區塊**：**10.0.1.0/24**
   + **IPv6 CIDR 區塊**：**無 IPv6 CIDR 區塊**
   + **租用**：**預設**
   + **可用區域的數量**：2
   + **公有子網路數量**：2
   + **私有子網路數量**：2
   + **NAT 閘道 (\$1)**：**無**
   + **VPC 端點**：**無**

   選擇**建立 VPC**。

1. 在導覽窗格中，選擇 **VPC**。請留意 **DMSVPC** 的 VPC ID。

1. 在導覽窗格中，選擇**安全群組**。

1. 選擇名為**預設**的群組，該群組具有與您為 **DMSVPC** 記錄的 ID 相符的 **VPC ID**。

1. 選擇**傳入規則**索引標籤，然後選擇**編輯傳入規則**。

1. 選擇**新增規則**。新增類型為 **MySQL/Aurora** 的規則，然後選擇 **Anywhere-IPv4** 作為**來源**。

1. 再次選擇**新增規則**。**新增類型為 **PostgreSQL** 的規則，然後選擇 **Anywhere-IPv4** 作為來源**。

1. 選擇**儲存規則**。

## 建立 Amazon RDS 參數群組
<a name="CHAP_GettingStarted.Prerequisites.params"></a>

若要指定來源和目標資料庫的設定 AWS DMS，請使用 Amazon RDS 參數群組。若要允許資料庫之間的初始和進行中複寫，請務必設定以下內容：
+ 來源資料庫的二進位日誌，讓 AWS DMS 可以判斷需要複寫哪些增量更新。
+ 目標資料庫的複寫角色，因此 會在初始資料傳輸期間 AWS DMS 忽略外部金鑰限制。使用此設定， AWS DMS 可以不按順序遷移資料。

**建立參數群組以搭配 使用 AWS DMS**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇**參數群組**。

1. 在**參數群組**頁面上，選擇**建立參數群組**。

1. 在**建立參數群組**頁面上，輸入下列設定：
   + **參數群組系列**：**mariadb10.6**
   + **Group name (群組名稱)**:**dms-mariadb-parameters** 
   + **描述:** **Group for specifying binary log settings for replication**

   選擇**建立**。

1. 在**參數群組**頁面上，選擇 **dms-mariadb-parameters**，然後在 **dms-mariadb-parameters** 頁面上選擇**編輯**。

1. 將下列參數設為以下值：
   + **binlog\$1checksum**：**NONE**
   + **binlog\$1format**：**ROW**

   選擇**儲存變更**。

1. 在**參數群組**頁面上，再次選擇**建立參數群組**。

1. 在**建立參數群組**頁面上，輸入下列設定：
   + **參數群組系列**：**postgres16**
   + **Group name (群組名稱)**:**dms-postgresql-parameters** 
   + **描述:** **Group for specifying role setting for replication**

   選擇**建立**。

1. 在**參數群組**頁面上，選擇 **dms-postgresql-parameters**。

1. 在 **dms-postgresql-parameters** 頁面上，選擇**編輯**，然後將 **session\$1replication\$1role parameter** 設定為**複本**。請注意，**session\$1replication\$1role ** 參數不在參數的第一頁上。使用分頁控制項或搜尋欄位來尋找此參數。

1. 選擇**儲存變更**。

## 建立來源 Amazon RDS 資料庫
<a name="CHAP_GettingStarted.Prerequisites.sdatabase"></a>

使用下列程序建立來源 Amazon RDS 資料庫。

**若要建立來源 Amazon RDS for MariaDB 資料庫**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在**儀表板**頁面的**資料庫**區段中選擇**建立資料庫**。請勿在頁面頂端的**嘗試適用於 MySQL 和 PostgreSQL 的新 Amazon RDS 多可用區部署選項**區段中選擇**建立資料庫**。

1. 在**建立資料庫**頁面上，設定下列選項：
   + **選擇資料庫建立方法**：選擇**標準建立**。
   + **引擎選項**：對於**引擎類型**選擇 **MariaDB**。對於**版本**，請保持選取 **MariaDB 10.6.14**。
   + **範本**：選擇**開發/測試**。
   + **設定**：
     + **資料庫執行個體識別碼**：輸入 **dms-mariadb**。
     + 在**憑證設定**區段中輸入下列內容：
       + **主要使用者名稱**：保持 **admin** 的身分。
       + 不勾選 ** AWS Secrets Manager 中的管理主登入**資料。
       + **自動產生密碼**：保持未選取的狀態。
       + **主密碼**：輸入 **changeit**。
       + **確認密碼**：再次輸入 **changeit**。
   + **執行個體組態**：
     + **資料庫執行個體類別**：將**標準類別**保持選取狀態。
     + 對於**資料庫執行個體類別**，選擇 **db.m5.large**。
   + **儲存**：
     + 清除**啟用儲存自動擴展**方塊。
     + 其他設定維持不變。
   + **可用性與耐久性**：將**不要建立備用執行個體**保持選取的狀態。
   + **連線能力**：
     + **運算資源**：保持**不連線至 EC2 運算資源**
     + **網路類型**：將 **IPv4** 保持選取的狀態。
     + **虛擬私有雲端**：**DMSVPC-vpc**
     + **公開存取**：**是**。您必須啟用公有存取權，才能使用 AWS Schema Conversion Tool。
     + **可用區域**：**us-west-2a**
     + 其他設定維持不變。
   + **資料庫身份驗證**：將**密碼身份驗證**保持選取的狀態。
   + 在**監控**下清除**開啟績效詳情**方塊。展開**附加組態**區段，然後清除**啟用增強型監控**方塊。
   + 展開**附加組態**：
     + 在**資料庫選項**下，針對**初始資料庫名稱**輸入 **dms\$1sample**。
     + 在**資料庫參數群組**下，選擇 **dms-mariadb-parameters**。
     + 對於**選項群組**，將 **default:mariadb-10-6** 保持選取的狀態。
     + 在 **Backup (備份)** 底下，執行下列動作：
       + 將**啟用自動備份**保持選取的狀態。來源資料庫必須啟用自動備份，才能支援進行中複寫。
       + 對於**備份保留期間**，選擇 **1 天**。
       + 對於**備份時段**，將**沒有偏好**保持選取的狀態。
       + 清除**將標籤複製到快照**方塊。
       + 取消** AWS 勾選另一個區域中的啟用複寫**。
     + 在**加密**下，清除**啟用加密**方塊。
     + 將**日誌匯出**區段維持不變。
     + 在**維護**下，清除**啟用自動次要版本升級**方塊，並將**維護時段**設定保持為**沒有偏好**。
     + 將**啟用刪除保護**保持不勾選的狀態。

1. 選擇**建立資料庫**。

## 建立目標 Amazon RDS 資料庫
<a name="CHAP_GettingStarted.Prerequisites.tdatabase"></a>

重複上述程序以建立目標 Amazon RDS 資料庫，並進行下列變更。

**若要建立目標 RDS for PostgreSQL 資料庫**

1. 重複前述程序的步驟 1 和 2。

1. 在**建立資料庫**頁面上設定相同的選項，但下列選項除外：

   1. 針對**引擎選項**，選擇 **PostgreSQL**。

   1. 針對**版本**，選擇可用的 **PostgreSQL 16** 版本

   1. 對於 **DB instance identifier** (資料庫執行個體識別碼)，請輸入 **dms-postgresql**。

   1. 對於**主要使用者名稱**，將 **postgres** 保持選取的狀態。

   1. 對於**資料庫參數群組**，選擇 **dms-postgresql-parameters**。

   1. 清除**啟用自動備份**。

1. 選擇**建立資料庫**。

## 建立 Amazon EC2 用戶端
<a name="CHAP_GettingStarted.Prerequisites.client"></a>

您會在本節中建立 Amazon EC2 用戶端。您可以使用此用戶端將要複寫的資料填入來源資料庫。您也可以使用此用戶端，透過在目標資料庫上執行查詢來驗證複寫。

與透過網際網路存取資料庫相比，使用 Amazon EC2 用戶端存取資料庫具有以下優勢：
+ 您可以將資料庫的存取限制在相同 VPC 中的用戶端。
+ 我們已確認您在本教學課程中使用的工具可在 Amazon Linux 2023 上運作且能夠輕鬆安裝，建議您在本教學課程中使用 Amazon Linux 2023。
+ VPC 中元件之間的資料操作通常比網際網路上的資料操作效能更好。

**建立和設定 Amazon EC2 用戶端以填入來源資料庫**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在**儀表板**上選擇**啟動執行個體**。

1. 在**啟動執行個體**頁面上輸入下列值：

   1. 在**名稱和標籤**區段的**名稱**中輸入 **DMSClient**。

   1. 在**應用程式和 OS 映像 (Amazon Machine Image)** 區段中，將設定保持原樣。

   1. 在**執行個體類型**區段中選擇 **t2.xlarge**。

   1. 在**金鑰對 (登入)** 區段中選擇**建立新金鑰對**。

   1. 在**建立金鑰對**頁面上，輸入下列內容：
      + **Key pair name (金鑰對名稱):** **DMSKeyPair**
      + **金鑰對類型**：保留為 **RSA**。
      + **私有金鑰檔案格式**：在 MacOS 或 Linux 上為 OpenSSH 選擇 **pem**，或在 Windows 上為 PuTTY 選擇 **ppk**。

      出現提示時儲存金鑰檔案。
**注意**  
您也可以使用現有的 Amazon EC2 金鑰對，而不是新建金鑰對。

   1. 在**網路設定**區段中選擇**編輯**。選擇下列設定：
      + **VPC - *必要***：選擇內含您為 **DMSVPC-vpc** VPC 記錄之 ID 的 VPC。
      + **子網路**：請先選擇公有子網路。
      + **自動指派公有 IP**：選擇**啟用**。

      其餘設定維持不變，然後選擇**啟動執行個體**。

## 填入來源資料庫
<a name="CHAP_GettingStarted.Prerequisites.Populate"></a>

您會在此區段中找到來源資料庫和目標資料庫供稍後使用的端點，並使用下列工具來填入來源資料庫：
+ Git，下載填入來源資料庫的指令碼。
+ MariaDB 用戶端，可執行此指令碼。

### 取得端點
<a name="CHAP_GettingStarted.Prerequisites.Populate.Hosts"></a>

尋找並記下 RDS for MariaDB 和 RDS for PostgreSQL 資料庫執行個體的端點，以供日後使用。

**尋找資料庫執行個體端點**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在導覽窗格中選擇**資料庫**。

1. 選擇 **dms-mariadb** 資料庫，並記下資料庫的**端點**值。

1. 針對 **dms-postgresql** 資料庫重複上述步驟。

### 填入來源資料庫
<a name="CHAP_GettingStarted.Prerequisites.Populate.Git"></a>

接著，連線至您的用戶端執行個體、安裝必要的軟體、從 Git 下載 AWS 範例資料庫指令碼，然後執行指令碼來填入來源資料庫。

**若要填入來源資料庫**

1. 使用您在先前步驟中儲存的主機名稱和公有金鑰連接至用戶端執行個體。

   如需連線至 Amazon EC2 執行個體的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[存取執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)。
**注意**  
如果您使用 PuTTY，請在**連線**設定頁面上啟用 TCP 保持連線，如此連線就不會因閒置而逾時。

1. 安裝 Git、MariaDB 和 PostgreSQL。根據需要確認安裝。

   ```
   $ sudo yum install git
   $ sudo dnf install mariadb105
   $ sudo dnf install postgresql15
   ```

1. 執行以下命令，即可從 GitHub 下載資料庫建立指令碼。

   ```
   git clone https://github.com/aws-samples/aws-database-migration-samples.git
   ```

1. 切換至 `aws-database-migration-samples/mysql/sampledb/v1/` 目錄。

1. 執行下列命令。以 `dms-mariadb.cdv5fbeyiy4e.us-east-1.rds.amazonaws.com` 為例，為您先前記下的來源 RDS 執行個體提供端點。

   ```
   mysql -h dms-mariadb.abcdefghij01.us-east-1.rds.amazonaws.com -P 3306 -u admin -p dms_sample < ~/aws-database-migration-samples/mysql/sampledb/v1/install-rds.sql
   ```

1. 讓資料庫建立指令碼執行。此指令碼最多需要 45 分鐘，才能建立結構描述並填入資料。您可以放心地忽略指令碼顯示的錯誤和警告。

# 使用 將來源結構描述遷移至目標資料庫 AWS SCT
<a name="CHAP_GettingStarted.SCT"></a>

建議使用 DMS 結構描述轉換來轉換來源資料庫結構描述。如需詳細資訊，請參閱[開始使用 DMS 結構描述轉換](getting-started.md)。如果您偏好使用舊版 AWS Schema Conversion Tool，請遵循下列步驟。

**使用 將來源結構描述遷移至目標資料庫 AWS SCT**

1. 安裝 AWS Schema Conversion Tool。如需詳細資訊，請參閱《AWS 結構描述轉換工具使用者指南》**中的[安裝、驗證或更新 AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)。

   下載適用於 MySQL 和 PostgreSQL 的 JDBC 驅動程式時，請記下驅動程式的儲存位置，以便在該工具提示您輸入其位置使用。

1. 開啟 AWS Schema Conversion Tool。選擇**檔案**，然後選擇**新增專案**。

1. 在**新建專案**視窗中，設定下列值：
   + 將**專案名稱**設為 **DMSProject**。
   + 將**位置**保持原狀，將 AWS SCT 專案存放在預設資料夾中。

   選擇**確定**。

1. 選擇**新增來源**將來源 MySQL 資料庫新增到專案中，然後依序選擇 **MySQL**、**下一步**。

1. 在**新增來源**頁面中，設定下列值：
   + **連線名稱**：**source**
   + **伺服器名稱**：輸入您先前記下之 MySQL 資料庫的端點。
   + **伺服器連接埠**：**3306**
   + **使用者名稱**：**admin**
   + **密碼**：**changeit**

1. 選擇**新增目標**，將目標 Amazon RDS for PostgreSQL 資料庫新增至專案，然後選擇 **Amazon RDS for PostgreSQL**。選擇**下一步**。

1. 在**新增目標**頁面中，設定下列值：
   + **連線名稱**：**target**
   + **伺服器名稱**：輸入您先前記下之 PostgreSQL 資料庫的端點。
   + **伺服器連接埠**：**5432**
   + **資料庫**：輸入 PostgreSQL 資料庫的名稱。
   + **使用者名稱**：**postgres**
   + **密碼**：**changeit**

1. 在左窗格中，選擇**結構描述**下的 **dms\$1sample**。在右窗格中，選擇目標 Amazon RDS for PostgreSQL 資料庫。選擇**建立對應**。您可以將多個映射規則新增至單一 AWS SCT 專案。如需對應規則的詳細資訊，請參閱[建立對應規則](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Mapping.html)。

1. 選擇**主要檢視**。

1. 在左窗格中，選擇**結構描述**下的 **dms\$1sample**。開啟內容 (按一下滑鼠右鍵) 選單，然後選擇**轉換結構描述**。確認動作。

   工具轉換結構描述之後，右窗格中會顯示 **dms\$1sample** 結構描述。

1. 在右窗格的**結構描述**下，開啟 **dms\$1sample** 的內容 (按一下滑鼠右鍵) 選單，然後選擇**套用至資料庫**。確認動作。

確認結構描述遷移已完成。執行以下步驟。

**若要檢查結構定義遷移**

1. 連線到 Amazon EC2 用戶端。

1. 使用下列命令來啟動 PSQL 用戶端。指定 PostgreSQL 資料庫端點，並在出現提示時提供資料庫密碼。

   ```
   psql \
      --host=dms-postgresql.abcdefg12345.us-west-2.rds.amazonaws.com \
      --port=5432 \
      --username=postgres \
      --password \
      --dbname=dms_sample
   ```

1. 查詢其中一個 （空白） 資料表，以確認 是否正確 AWS SCT 套用結構描述，

   ```
   dms_sample=> SELECT * from dms_sample.player;
    id | sport_team_id | last_name | first_name | full_name
   ----+---------------+-----------+------------+-----------
   (0 rows)
   ```

# 設定 的複寫 AWS Database Migration Service
<a name="CHAP_GettingStarted.Replication"></a>

您將在本主題中，設定來源與目標資料庫之間的複寫。

## 步驟 1：使用 AWS DMS 主控台建立複寫執行個體
<a name="CHAP_GettingStarted.Replication.ReplicationInstance"></a>

若要開始使用 AWS DMS，請建立複寫執行個體。

複寫執行個體**會執行來源和目標端點之間的實際資料遷移。執行個體需要足夠的儲存空間和處理能力，才能執行將資料從來源資料庫遷移至目標資料庫的任務。此複寫執行個體的大小取決於要遷移的資料量以及執行個體需要執行的任務。如需複寫執行個體的詳細資訊，請參閱[使用 AWS DMS 複寫執行個體](CHAP_ReplicationInstance.md)。

![\[建立複寫執行個體\]](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/datarep-create-replication-30a.png)


**使用主控台建立複寫執行個體**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/) 開啟 AWS DMS 主控台。

1. 在導覽窗格上選擇**複寫執行個體**，然後選擇**建立複寫執行個體**。

1. 在**建立複寫執行個體**頁面上指定複寫執行個體組態：

   1. 對於**名稱**，輸入 **DMS-instance**。

   1. 在**說明**中，輸入複寫執行個體的簡短說明 (選填)。

   1. 在**執行個體類別**中，請保留所選的 **dms.t3.medium**。

      此執行個體需要足夠的儲存空間、網路和處理能力來進行遷移。如需如何選擇執行個體類別的詳細資訊，請參閱[為您的遷移選擇正確的 AWS DMS 複寫執行個體](CHAP_ReplicationInstance.Types.md)。

   1. 對於**引擎版本**，請接受預設值。

   1. 對於**多可用區**，請選擇**開發或測試工作負載 (單一可用區)**。

   1. 對於**配置的儲存體 (GiB)**，請接受預設值 50 GiB。

      在 中 AWS DMS， 儲存主要由日誌檔案和快取的交易使用。針對快取交易，僅會在需要將快取交易寫入磁碟時使用儲存體。因此， AWS DMS 不會使用大量的儲存體。

   1. 對於**網路類型**，選擇 **IPv4**。

   1. 對於 **VPC** 選擇 **DMSVPC**。

   1. 針對**複寫子網路群組**，保持目前選擇的複寫子網路群組。

   1. 清除**可公開存取**。

1. 選擇**進階安全性與網路組態**索引標籤，視需要設定網路和加密設定的值：

   1. 對於**可用區域**選擇 **us-west-2a**。

   1. 對於 **VPC 安全群組**，請選擇**預設**安全性群組 (如果尚未選擇)。

   1. 對於 **AWS KMS key**，將 **(預設) aws/dms** 保持選擇的狀態。

1. 依原樣保留**維護**索引標籤上的設定。預設值是從每個 AWS 區域的 8 小時時段中隨機選取的 30 分鐘時段，隨機發生在一週中的某一天。

1. 選擇**建立**。

AWS DMS 會建立複寫執行個體來執行遷移。

## 步驟 2：指定來源與目標端點
<a name="CHAP_GettingStarted.Replication.Endpoints"></a>

正在建立複寫執行個體時，您可以為先前建立的 Amazon RDS 資料庫，指定來源和目標資料存放區端點。您可以分別建立每個端點。

![\[建立端點\]](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/datarep-create-endpoint-30a.png)


**使用 AWS DMS 主控台指定來源端點和資料庫端點**

1. 在主控台的導覽窗格中選擇**端點**，然後選擇**建立端點**。

1. 在**建立端點**頁面上選擇**來源**端點類型。選取**特定 RDS 資料庫執行個體**方塊，然後選擇 **dms-mariadb** 執行個體。

1. 在**端點組態**區段的**端點識別碼**中輸入 **dms-mysql-source**。

1. 對於**來源引擎**，將 **MySQL** 保持選擇的狀態。

1. 對於**端點資料庫的存取**，選擇**手動提供存取資訊**。確認**連接埠**、**Secure Socket Layer (SSL) 模式**、**使用者名稱**和**密碼**是否正確。

1. 選擇**測試端點連線 (選擇性)** 索引標籤。對於 **VPC** 選擇 **DMSVPC**。

1. 針對**複寫執行個體**，將 **dms-instance** 保持選擇的狀態。

1. 選擇**執行測試**。

   選擇**執行測試**後， 會使用您提供的詳細資訊 AWS DMS 建立端點並與其連線。如果連線失敗，請編輯端點定義並再次測試連線。您也可以手動刪除此端點。

1. 測試成功後，請選擇**建立端點**。

1. 使用 AWS DMS 主控台指定目標資料庫端點。若要這樣做，請使用下列設定重複前述步驟：
   + **端點類型：**：**目標端點**
   + **RDS 執行個體**：**dms-postgresql**
   + **端點識別碼**：**dms-postgresql-target**
   + **目標引擎**：將 **PostgreSQL** 保持選擇的狀態。

當您完成提供端點的所有資訊時， 會 AWS DMS 建立來源和目標端點，以便在資料庫遷移期間使用。

## 步驟 3：建立任務並遷移資料
<a name="CHAP_GettingStarted.Replication.Tasks"></a>

您將會在此步驟中建立任務，以便在所建立的資料庫之間遷移資料。

![\[建立遷移任務\]](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/datarep-create-task-20a.png)


**若要建立遷移任務並開始資料庫遷移**

1. 在主控台導覽窗格中，選擇**資料庫遷移任務**，然後選擇**建立任務**。**建立資料庫遷移任務**頁面隨即開啟。

1. 在**任務組態**區段中，指定下列任務選項：
   + **任務識別碼**：輸入 **dms-task**。
   + **複寫執行個體**：選擇複寫執行個體 (**dms-instance-vpc-*<vpc id>***)。
   + **來源資料庫端點**：選擇 **dms-mysql-source**。
   + **目標資料庫端點**：選擇 **dms-postgresql-target**。
   + **遷移類型**：選擇**遷移現有資料及複寫持續的變更**。

1. 選擇**任務設定**索引標籤。請進行下列設定：
   + **目標資料表準備模式**：**不執行任何操作**
   + **在完全載入完成後再停止任務**：**請勿停止任務**

1. 選擇**資料表對應**索引標籤，然後展開**選擇規則**。選擇**新增選擇規則**。請進行下列設定：
   + **結構描述**：**輸入結構描述**
   + **結構描述名稱**：**dms\$1sample**

1. 選擇**遷移任務啟動組態**索引標籤。選取**從預遷移評估開始 （建議）**，在開始任務之前執行評估。或者，您可以選擇在**建立時自動開始**以立即開始遷移，或**僅執行評估**來評估而不啟動任務。  
![\[建立遷移任務\]](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/images/datarep-create-task-21.png)

1. 選擇 **Create task (建立任務)**。

AWS DMS 然後建立遷移任務並啟動它。初始資料庫複寫需時約 10 分鐘。在 AWS DMS 完成資料的遷移前，請務必執行此教學課程中的下一個步驟。

## 步驟 4：測試複寫
<a name="CHAP_GettingStarted.Replication.Monitoring"></a>

您會在此區段中，於初始複寫期間和之後將資料插入來源資料庫，並查詢目標資料庫中是否有插入的資料。

**若要測試複寫**

1. 請確定資料庫遷移任務顯示的狀態是**執行中**，但您在上一個步驟中啟動的初始資料庫複寫尚未完成。

1. 使用下列命令連線至 Amazon EC2 用戶端，並啟動 MySQL 用戶端。提供 MySQL 資料庫端點。

   ```
   mysql -h dms-mysql.abcdefg12345.us-west-2.rds.amazonaws.com -P 3306 -u admin -pchangeit dms_sample
   ```

1. 執行下列命令，將記錄插入來源資料庫。

   ```
   MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User1', 'User1', 'Test');
   Query OK, 1 row affected (0.00 sec)
   ```

1. 離開 MySQL 用戶端。

   ```
   MySQL [dms_sample]> exit
   Bye
   ```

1. 複寫完成前，請查詢目標資料庫中是否有新記錄。

   從 Amazon EC2 執行個體，使用下列命令連線到目標資料庫，並提供目標資料庫端點。

   ```
   psql \
      --host=dms-postgresql.abcdefg12345.us-west-2.rds.amazonaws.com \
      --port=5432 \
      --username=postgres \
      --password \
      --dbname=dms_sample
   ```

   在收到提示時提供密碼 (**changeit**)。

1. 複寫完成前，請查詢目標資料庫中是否有新記錄。

   ```
   dms_sample=> select * from dms_sample.person where first_name = 'Test';
    id | full_name | last_name | first_name
   ----+-----------+-----------+------------
   (0 rows)
   ```

1. 當遷移任務正在執行時，您可以監控資料庫遷移的進度：
   + 從 DMS 主控台導覽窗格中，選擇**資料庫遷移任務**。
   + 選擇 **dms-task**。
   + 選擇**資料表統計資料**。

   如需監控的詳細資訊，請參閱[監控 AWS DMS 任務](CHAP_Monitoring.md)。

1. 複寫完成後，請再次查詢目標資料庫以取得新記錄。 會在初始複寫完成後 AWS DMS 遷移新記錄。

   ```
   dms_sample=> select * from dms_sample.person where first_name = 'Test';
      id    | full_name  | last_name | first_name
   ---------+------------+-----------+------------
    7077784 | Test User1 | User1     | Test
   (1 row)
   ```

1. 離開 psql 用戶端。

   ```
   dms_sample=> quit
   ```

1. 重複步驟 1 以再次連線到來源資料庫。

1. 將另一則記錄插入 `person` 資料表中。

   ```
   MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User2', 'User2', 'Test');
   Query OK, 1 row affected (0.00 sec)
   ```

1. 重複步驟 3 與 4，以中斷與來源資料庫的連線，並連線至目標資料庫。

1. 再次查詢目標資料庫中是否有複寫資料。

   ```
   dms_sample=> select * from dms_sample.person where first_name = 'Test';
      id    | full_name  | last_name | first_name
   ---------+------------+-----------+------------
    7077784 | Test User1 | User1     | Test
    7077785 | Test User2 | User2     | Test
   (2 rows)
   ```

## 步驟 5：清除 AWS DMS 資源
<a name="CHAP_GettingStarted.Replication.Deleting"></a>

完成本入門教學課程後，您可以刪除所建立的資源。您可以使用 AWS 主控台來移除它們。請務必先刪除遷移任務，然後再刪除複寫執行個體和端點。

**使用主控台刪除遷移任務**

1. 在 AWS DMS 主控台導覽窗格中，選擇**資料庫遷移任務**。

1. 選擇 **dms-task**。

1. 選擇 **動作**、**刪除**。

**使用 主控台刪除複寫執行個體**

1. 在 AWS DMS 主控台導覽窗格中，選擇**複寫執行個體**。

1. 選擇 **DMS-instance**。

1. 選擇 **動作**、**刪除**。

AWS DMS 會刪除複寫執行個體，並將其從**複寫執行個體**頁面中移除。

**使用主控台來移除端點**

1. 在 AWS DMS 主控台導覽窗格中，選擇**端點**。

1. 選擇 **dms-mysql-source**。

1. 選擇 **動作**、**刪除**。

刪除 AWS DMS 資源後，請務必同時刪除下列資源。如需刪除其他服務中資源的說明，請參閱每個服務的文件。
+ RDS 資料庫。
+ RDS 資料庫參數群組。
+ RDS 子網路群組。
+ 與資料庫和複寫執行個體一起建立的任何 Amazon CloudWatch 日誌。
+ 為 Amazon VPC 和 Amazon EC2 用戶端建立的安全群組。確保將傳入規則從 **launch-wizard-1** 安全群組的**預設**中移除；您必須這麼做，才能夠刪除那些群組。
+ Amazon EC2 用戶端。
+ Amazon VPC。
+ Amazon EC2 用戶端的 Amazon EC2 金鑰對。