

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

# 將資料從 RDS for MySQL 資料庫執行個體遷移到 Amazon Aurora MySQL 資料庫叢集
<a name="AuroraMySQL.Migrating.RDSMySQL"></a>

您可以將資料從 RDS for MySQL 資料庫執行個體遷移 (複製) 至 Amazon Aurora MySQL 資料庫叢集。

**Topics**
+ [將 RDS for MySQL 快照遷移至 Aurora](AuroraMySQL.Migrating.RDSMySQL.Snapshot.md)
+ [使用 Aurora 讀取複本，從 RDS for MySQL 資料庫執行個體將資料遷移至 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Migrating.RDSMySQL.Replica.md)

**注意**  
因為 Amazon Aurora MySQL 與 MySQL 相容，您可以在 MySQL 資料庫和 Amazon Aurora MySQL 資料庫叢集之間設定複寫，以便從 MySQL 資料庫遷移資料。如需詳細資訊，請參閱[以 Amazon Aurora 進行複寫](Aurora.Replication.md)。

# 將 RDS for MySQL 快照遷移至 Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Snapshot"></a>

您可以遷移 RDS for MySQL 資料庫執行個體的資料庫快照，以建立 Aurora MySQL 資料庫叢集。新的 Aurora MySQL 資料庫叢集會使用來自原始 RDS for MySQL 資料庫執行個體的資料填入。資料庫快照必須是從執行 MySQL 版本 (與 Aurora MySQL 相容) 的 Amazon RDS 資料庫執行個體建立。

您可以遷移手動或自動資料庫快照。建立資料庫叢集之後，您就可以建立選用的 Aurora 複本。

**注意**  
您也可以建立來源 RDS for MySQL 資料庫執行個體的 Aurora 僅供讀取複本，以便將 RDS for MySQL 資料庫執行個體遷移至 Aurora MySQL 資料庫叢集。如需詳細資訊，請參閱[使用 Aurora 讀取複本，從 RDS for MySQL 資料庫執行個體將資料遷移至 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Migrating.RDSMySQL.Replica.md)。  
您無法從某些舊版 MySQL 8.0 版本 (包括 8.0.11、8.0.13 和 8.0.15) 遷移到 Aurora MySQL 版本 3.05 及更高版本。建議您在遷移之前，先升級至 MySQL 8.0.28 版。

您必須採取的一般步驟如下：

1. 決定要佈建給 Aurora MySQL 資料庫叢集的空間數量。如需詳細資訊，請參閱[我需要多少空間？](#AuroraMySQL.Migrating.RDSMySQL.Space)

1. 使用 主控台在 Amazon RDS MySQL 執行個體所在的 AWS 區域中建立快照。如需建立資料庫快照的相關資訊，請參閱[建立資料庫快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)。

1. 如果資料庫快照與您的資料庫叢集不在同一個 AWS 區域中，請使用 Amazon RDS 主控台將資料庫快照複製到該 AWS 區域。如需複製資料庫快照的相關資訊，請參閱[複製資料庫快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html)。

1. 使用主控台來遷移資料庫快照，並使用與原始 MySQL 資料庫執行個體相同的資料庫建立 Aurora MySQL 資料庫叢集。

**警告**  
Amazon RDS 會限制每個 AWS 帳戶一次一個快照複製到每個 AWS 區域。

## 我需要多少空間？
<a name="AuroraMySQL.Migrating.RDSMySQL.Space"></a>

當您將 MySQL 資料庫執行個體的快照遷移至 Aurora MySQL 資料庫叢集時，Aurora 在遷移快照之前，將會先使用 Amazon Elastic Block Store (Amazon EBS) 磁碟區來格式化快照中的資料。在某些情況下，需要額外的空間以格式化準備遷移的資料。

如果資料表不是 MyISAM 資料表且未壓縮，則最大為 16 TB。如果您有 MyISAM 資料表，則 Aurora 必須使用磁碟區中額外的空間，將資料表轉換成與 Aurora MySQL 相容。如果您有壓縮的資料表，則 Aurora 必須使用磁碟區中額外的空間將這些資料表解壓縮，再存放於 Aurora 叢集磁碟區。由於需要此額外空間，請確定要從 MySQL 資料庫執行個體遷移的 MyISAM 和壓縮資料表的大小皆未超過 8 TB。

## 減少將資料遷移至 Amazon Aurora MySQL 所需的空間量
<a name="AuroraMySQL.Migrating.RDSMySQL.PreImport"></a>

您可能想要先修改資料庫結構描述再遷移至 Amazon Aurora。在下列情況中，如此修改可能相當實用：
+ 您想要加快遷移程序的速度。
+ 您不確定必須佈建多少空間。
+ 您已嘗試遷移資料，但因為佈建的空間不足導致遷移失敗。

您可以進行下列變更，以改善將資料庫移遷移至 Amazon Aurora 的程序。

**重要**  
務必在從生產資料庫的快照所還原的新資料庫執行個體上執行這些更新，而非在生產執行個體上。然後，您可以從新資料庫執行個體的快照將資料遷移至 Aurora 資料庫叢集，以避免生產資料庫上的任何服務中斷。


| 資料表類型 | 限制或指導方針 | 
| --- | --- | 
|  MyISAM 資料表  |  Aurora MySQL 僅支援 InnoDB 資料表。如果您的資料庫中有 MyISAM 資料表，這些資料表必須先轉換再遷移至 Aurora MySQL。在遷移過程中，轉換程序需要額外的空間將 MyISAM 轉換為 InnoDB。 若要盡可能避免空間不足，或想要加速遷移程序，請先將所有 MyISAM 資料表轉換成 InnoDB 資料表再遷移。產生的 InnoDB 資料表大小相當於 Aurora MySQL 針對該資料表所需的大小。若要將 MyISAM 資料表轉換成 InnoDB，請執行下列命令： `alter table <schema>.<table_name> engine=innodb, algorithm=copy;`   | 
|  壓縮資料表  |  Aurora MySQL 不支援壓縮資料表 (即以 `ROW_FORMAT=COMPRESSED` 建立的資料表)。 若要盡可能避免空間不足，或想要加速遷移程序，請將 `ROW_FORMAT` 設為 `DEFAULT`、`COMPACT`、`DYNAMIC` 或 `REDUNDANT`，以展開壓縮資料表。如需詳細資訊，請參閱 MySQL 文件中的 [InnoDB 資料列格式](https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format.html)。  | 

您可以在現有的 MySQL 資料庫執行個體上使用下列 SQL 指令碼，以列出資料庫中的 MyISAM 資料表或壓縮資料表。

```
-- This script examines a MySQL database for conditions that block
-- migrating the database into Amazon Aurora.
-- It needs to be run from an account that has read permission for the
-- INFORMATION_SCHEMA database.

-- Verify that this is a supported version of MySQL.

select msg as `==> Checking current version of MySQL.`
from
  (
  select
    'This script should be run on MySQL version 5.6 or higher. ' +
    'Earlier versions are not supported.' as msg,
    cast(substring_index(version(), '.', 1) as unsigned) * 100 +
      cast(substring_index(substring_index(version(), '.', 2), '.', -1)
      as unsigned)
    as major_minor
  ) as T
where major_minor <> 506;


-- List MyISAM and compressed tables. Include the table size.

select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`,
round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)"
from INFORMATION_SCHEMA.TABLES
where
  ENGINE <> 'InnoDB'
  and
  (
    -- User tables
    TABLE_SCHEMA not in ('mysql', 'performance_schema',
                         'information_schema')
    or
    -- Non-standard system tables
    (
      TABLE_SCHEMA = 'mysql' and TABLE_NAME not in
        (
          'columns_priv', 'db', 'event', 'func', 'general_log',
          'help_category', 'help_keyword', 'help_relation',
          'help_topic', 'host', 'ndb_binlog_index', 'plugin',
          'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log',
          'tables_priv', 'time_zone', 'time_zone_leap_second',
          'time_zone_name', 'time_zone_transition',
          'time_zone_transition_type', 'user'
        )
    )
  )
  or
  (
    -- Compressed tables
       ROW_FORMAT = 'Compressed'
  );
```

指令碼產生的輸出類似於下列範例中的輸出。範例顯示兩個必須從 MyISAM 轉換成 InnoDB 的資料表。輸出也包含每個資料表的大約大小 (以 MB 為單位)。

```
+---------------------------------+------------------+
| ==> MyISAM or Compressed Tables | Approx size (MB) |
+---------------------------------+------------------+
| test.name_table                 |          2102.25 |
| test.my_table                   |            65.25 |
+---------------------------------+------------------+
2 rows in set (0.01 sec)
```

## 將 RDS for MySQL 資料庫快照遷移至 Aurora MySQL 資料庫叢集
<a name="migrate-snapshot-ams-cluster"></a>

您可以使用 AWS 管理主控台 或 遷移 RDS for MySQL 資料庫執行個體的資料庫快照，以建立 Aurora MySQL 資料庫叢集 AWS CLI。新的 Aurora MySQL 資料庫叢集會使用來自原始 RDS for MySQL 資料庫執行個體的資料填入。如需建立資料庫快照的相關資訊，請參閱[建立資料庫快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)。

如果資料庫快照不在您要尋找資料的 AWS 區域中，請將資料庫快照複製到該 AWS 區域。如需複製資料庫快照的相關資訊，請參閱[複製資料庫快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html)。

### 主控台
<a name="AuroraMySQL.Migrating.RDSMySQL.Import.Console"></a>

當您使用 遷移資料庫快照時 AWS 管理主控台，主控台會採取僅建立資料庫叢集所需的動作。

您也可以選擇使用 AWS KMS key，為新的 Aurora MySQL 資料庫叢集進行靜態加密。

**使用 遷移 MySQL 資料庫快照 AWS 管理主控台**

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

1. 從 MySQL 資料庫執行個體或從快照來開始遷移：

   從資料庫執行個體開始遷移：

   1. 在導覽窗格中，選擇 **Databases** (資料庫)，然後選取 MySQL 資料庫執行個體。

   1. 在 **Actions** (動作) 中，選擇 **Migrate latest snapshot** (遷移最新的快照)。

   若要從快照開始遷移，請執行以下操作：

   1. 選擇 **Snapshots (快照)**。

   1. 在 **Snapshots (快照)** 頁面上，選擇您要遷移至 Aurora MySQL 資料庫叢集的快照。

   1. 選擇 **Snapshot Actions (快照動作)**，然後選擇 **Migrate Snapshot (遷移快照)**。

   **Migrate Database (遷移資料庫)** 頁面隨即出現。

1. 在 **Migrate Database (遷移資料庫)** 頁面上設定下列值：
   + **Migrate to DB Engine (遷移至資料庫引擎)**：選取 `aurora`。
   + **DB Engine Version (資料庫引擎版本)**：選取 Aurora MySQL 資料庫叢集的資料庫引擎版本。
   + **DB Instance Class** (資料庫執行個體類別)：為您的資料庫選取具有所需儲存體和容量的資料庫執行個體類別，例如 `db.r3.large`。Aurora 叢集磁碟區會隨著您的資料庫中的資料數量增加自動成長。Aurora 叢集磁碟區的大小最多可增長至 128 tebibytes (TiB)。因此，您只需選擇滿足目前儲存體需求的資料庫執行個體。如需詳細資訊，請參閱[Amazon Aurora 儲存體的概觀](Aurora.Overview.StorageReliability.md#Aurora.Overview.Storage)。
   + **資料庫執行個體識別符**：輸入您所選 AWS 區域中帳戶唯一的資料庫叢集名稱。此識別符用於資料庫叢集內執行個體的端點位址。您可以選擇將一些智慧新增至名稱，例如包含您選取的 AWS 區域和資料庫引擎，例如 **aurora-cluster1**。

     該資料庫執行個體識別符有下列限制：
     + 必須包含 1 到 63 個英數字元或連字號。
     + 第一個字元必須是字母。
     + 不能以一個連字號結尾或是連續包含兩個連字號。
     + 每個 AWS 區域每個 AWS 帳戶的所有資料庫執行個體都必須是唯一的。
   + **Virtual Private Cloud (VPC)**：如果具有現有的 VPC，您可以選取 VPC 識別符，例如 `vpc-a464d1c1`，將該 VPC 用於 Aurora MySQL 資料庫叢集。如需建立 VPC 的詳細資訊，請參閱 [教學課程：建立要與資料庫叢集搭配使用的 VPC (僅限 IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md)。

     否則，您可以選擇由 Aurora 為您建立 VPC，方法為選取 **Create a new VPC (建立新的 VPC)**。
   + **DB Subnet group** (資料庫子網路群組)：如果具有現有的子網路群組，您可以選取子網路群組識別符，例如 `gs-subnet-group1`，將該子網路群組用於 Aurora MySQL 資料庫叢集。

     否則，您可以選擇由 Aurora 為您建立子網路群組，方法為選取 **Create a new subnet group (建立新的子網路群組)**。
   + **Public a ccessibility (公開存取性)**：選擇 **No (否)**，以指定資料庫叢集中的執行個體只能由 VPC 內的資源存取。選取 **Yes (是)**，以指定公有網路上的資源可以存取資料庫叢集內的執行個體。預設值為 **Yes (是)**。
**注意**  
生產資料庫叢集可能不必位於公有子網路中，因為只有應用程式伺服器才需要存取資料庫叢集。如果您的資料庫叢集不必位於公有子網路中，將 **Publicly Accessible (公開存取性)** 設為 **No (否)**。
   + **Availability zone (可用區域)**：選取可用區域以託管 Aurora MySQL 資料庫叢集的主要執行個體。若要讓 Aurora 為您選擇可用區域，請選取 **No Preference (無偏好設定)**。
   + **Database Port (資料庫連接埠)**：輸入要在連接至 Aurora MySQL 資料庫叢集中的執行個體時使用的預設連接埠。預設值為 `3306`。
**注意**  
您可能在公司防火牆的後方，而此防火牆不允許存取預設連接埠，例如 MySQL 預設連接埠 3306。在此情況下，提供公司防火牆允許的連接埠值。稍後連線至 Aurora MySQL 資料庫叢集時，請記住該連接埠值。
   + **Encryption (加密)**：選擇 **Enable Encryption (啟用加密)**，對新的 Aurora MySQL 資料庫叢集進行靜態加密。如果您選擇 **Enable Encryption** (啟用加密)，則必須選擇 KMS 金鑰作為 **AWS KMS key**值。

     如果資料庫快照未加密，請指定加密金鑰，以便對資料庫叢集進行靜態加密。

     如果資料庫快照已加密，請指定加密金鑰，以使用指定的加密金鑰對資料庫叢集進行靜態加密。您可以指定資料庫快照所使用的加密金鑰，或不同的金鑰。您無法從已加密的資料庫快照來建立未加密的資料庫叢集。
   + **Auto Minor Version Upgrade (自動次要版本升級)**：此設定不適用於 Aurora MySQL 資料庫叢集。

     如需 Aurora MySQL 引擎更新的詳細資訊，請參閱 [Amazon Aurora MySQL 的資料庫引擎更新Amazon Aurora MySQL 的長期支援 (LTS) 和 Beta 版](AuroraMySQL.Updates.md)。

1. 選擇 **Migrate (遷移)** 以遷移您的資料庫快照。

1. 選擇 **Instances (執行個體)**，然後選擇箭頭圖示以顯示資料庫叢集詳細資訊並監控遷移進度。在詳細資訊頁面上，您可以找到用於連接至資料庫叢集之主要執行個體的叢集端點。如需連接至 Aurora MySQL 資料庫叢集的詳細資訊，請參閱[連接至 Amazon Aurora 資料庫叢集](Aurora.Connecting.md)。

### AWS CLI
<a name="USER_ImportAuroraCluster.CLI"></a>

您可以使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) 命令和下列參數，從 RDS for MySQL 資料庫執行個體的資料庫快照來建立 Aurora 資料庫叢集：
+ `--db-cluster-identifier` – 要建立的資料庫叢集名稱。
+ `--engine aurora-mysql` – 適用於 MySQL 5.7 相容或 8.0 相容的資料庫叢集。
+ `--kms-key-id` – AWS KMS key 選擇性地使用 加密資料庫叢集，取決於您的資料庫快照是否已加密。
  + 如果資料庫快照未加密，請指定加密金鑰，以便對資料庫叢集進行靜態加密。否則，資料庫叢集不會加密。
  + 如果資料庫快照已加密，請指定加密金鑰，以使用指定的加密金鑰對資料庫叢集進行靜態加密。否則會使用資料庫快照的加密金鑰，對資料庫叢集進行靜態加密。
**注意**  
您無法從已加密的資料庫快照來建立未加密的資料庫叢集。
+ `--snapshot-identifier` – 要遷移之資料庫快照的 Amazon 資源名稱 (ARN)。如需 Amazon RDS ARN 的詳細資訊，請參閱 [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)。

當您使用 `RestoreDBClusterFromSnapshot` 命令來遷移資料庫快照時，此命令會建立資料庫叢集和主要執行個體。

在此範例中，您從 ARN 設為 *mydbsnapshotARN* 的資料庫快照，建立 MySQL 5.7 相容的資料庫叢集，名為 *mydbcluster*。

對於 Linux、macOS 或 Unix：

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

在 Windows 中：

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

在此範例中，您從 ARN 設為 *mydbsnapshotARN* 的資料庫快照，建立 MySQL 5.7 相容的資料庫叢集，名為 *mydbcluster*。

對於 Linux、macOS 或 Unix：

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

在 Windows 中：

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

# 使用 Aurora 讀取複本，從 RDS for MySQL 資料庫執行個體將資料遷移至 Amazon Aurora MySQL 資料庫叢集
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica"></a>

Aurora 使用 MySQL 資料庫引擎的二進位日誌複寫功能，為來源 RDS for MySQL 資料庫執行個體建立一種特殊類型的資料庫叢集，稱為 Aurora 讀取複本。對來源 RDS for MySQL 資料庫執行個體進行的更新會以非同步方式複寫至 Aurora 讀取複本。

我們建議使用此功能建立來源 RDS for MySQL 資料庫執行個體的 Aurora 讀取複本，以便從 RDS for MySQL 資料庫執行個體遷移至 Aurora MySQL 資料庫叢集。當 RDS for MySQL 資料庫執行個體和 Aurora 讀取複本之間的複本延遲為 0 時，您可以將用戶端應用程式引導至 Aurora 讀取複本，然後停止複寫，使 Aurora 讀取複本變成獨立的 Aurora MySQL 資料庫叢集。遷移需要一段時間，每個一兆位元組 (TiB) 資料大約需要幾個小時，請做好準備。

如需可使用 Aurora 的區域清單，請參閱 *AWS 一般參考* 中的 [Amazon Aurora](https://docs.aws.amazon.com/general/latest/gr/rande.html#aurora)。

當您建立 RDS for MySQL 資料庫執行個體的 Aurora 讀取複本時，Amazon RDS 會建立來源 RDS for MySQL 資料庫執行個體的資料庫快照 (為 Amazon RDS 私有，不會產生費用)。然後 Amazon RDS 會將資料從資料庫快照遷移至 Aurora 僅供讀取複本。當資料庫快照的資料遷移至新的 Aurora MySQL 資料庫叢集之後，Amazon RDS 會開始在 RDS for MySQL 資料庫執行個體和 Aurora MySQL 資料庫叢集之間複寫。如果 RDS for MySQL 資料庫執行個體中有資料表使用 InnoDB 以外的儲存引擎，或使用壓縮資料列格式，則在建立 Aurora 讀取複本之前，您可以更改這些資料表來使用 InnoDB 儲存引擎和動態資料列格式，使建立 Aurora 讀取複本的程序加快。如需將 MySQL 資料庫快照複製到 Aurora MySQL 資料庫叢集之程序的詳細資訊，請參閱[將資料從 RDS for MySQL 資料庫執行個體遷移到 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Migrating.RDSMySQL.md)。

一個 RDS for MySQL 資料庫執行個體只能有一個 Aurora 讀取複本。

**注意**  
由於 Aurora MySQL 與 RDS for MySQL 資料庫執行個體 (複寫主節點) 的 MySQL 資料庫引擎版本之間的功能差異，複寫可能會出現問題。如果您遇到錯誤，您可以在 [Amazon RDS 社群論壇](https://forums.aws.amazon.com/forum.jspa?forumID=60)或聯絡 找到說明 AWS 支援。  
如果 RDS for MySQL 資料庫執行個體已是跨區域讀取複本的來源，您就無法建立 Aurora 讀取複本。  
您無法從某些較舊的 RDS for MySQL 8.0 版本 (包括 8.0.11、8.0.13 和 8.0.15) 遷移到 Aurora MySQL 版本 3.05 及更高版本。建議您在遷移之前，先升級至 RDS for MySQL 8.0.28 版。

如需 MySQL 僅供讀取複本的詳細資訊，請參閱[使用 MariaDB、MySQL 及 PostgreSQL DB 執行個體的僅供讀取複本](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)。

## 建立 Aurora 僅供讀取複本
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create"></a>

您可以使用 主控台 AWS CLI、 或 RDS API，為 RDS for MySQL 資料庫執行個體建立 Aurora 僅供讀取複本。

### 主控台
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.Console"></a>

**從來源 RDS for MySQL 資料庫執行個體建立 Aurora 讀取複本**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇要作為 Aurora 僅供讀取複本來源的 MySQL 資料庫執行個體。

1. 在 **Actions** (動作) 中選擇 **Create Aurora read replica** (建立僅供讀取複本)。

1. 選擇要用於 Aurora 僅供讀取複本的資料庫叢集規格，如下表所述。    
<a name="aurora_read_replica_param_advice"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html)

1. 選擇 **Create read replica (建立僅供讀取複本)**。

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.CLI"></a>

若要從來源 RDS for MySQL 資料庫執行個體建立 Aurora 僅供讀取複本，請使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)和 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令建立新的 Aurora MySQL 資料庫叢集。當您呼叫 `create-db-cluster` 命令時，請加上 `--replication-source-identifier` 參數，以識別來源 MySQL 資料庫執行個體的 Amazon Resource Name (ARN)。如需 Amazon RDS ARN 的詳細資訊，請參閱 [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)。

請勿指定主要使用者名稱、主要密碼或資料庫名稱，因為 Aurora 僅供讀取複本會使用與來源 MySQL 資料庫執行個體相同的主要使用者名稱、主要密碼、資料庫名稱。

對於 Linux、macOS 或 Unix：

```
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora \
    --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 \
    --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:primary-mysql-instance
```

在 Windows 中：

```
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora ^
    --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 ^
    --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:primary-mysql-instance
```

如果您使用主控台建立 Aurora 僅供讀取複本，則 Aurora 會為您的資料庫叢集 Aurora 僅供讀取複本自動建立主要執行個體。如果您使用 AWS CLI 建立 Aurora 僅供讀取複本，則必須明確建立資料庫叢集的主要執行個體。主要執行個體是資料庫叢集內第一個建立的執行個體。

您可以使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令搭配下列參數，為您的資料庫叢集建立主要執行個體。
+ `--db-cluster-identifier`

  資料庫叢集的名稱。
+ `--db-instance-class`

  要用於主要執行個體的執行個體類別名稱。
+ `--db-instance-identifier`

  主要執行個體的名稱。
+ `--engine aurora`

在此範例中，您會使用在 *myinstanceclass* 中指定的資料庫執行個體類別，為 *myreadreplicacluster* 資料庫叢集建立主要執行個體 *myreadreplicainstance*。

**Example**  
對於 Linux、macOS 或 Unix：  

```
aws rds create-db-instance \
    --db-cluster-identifier myreadreplicacluster \
    --db-instance-class myinstanceclass \
    --db-instance-identifier myreadreplicainstance \
    --engine aurora
```
在 Windows 中：  

```
aws rds create-db-instance ^
    --db-cluster-identifier myreadreplicacluster ^
    --db-instance-class myinstanceclass ^
    --db-instance-identifier myreadreplicainstance ^
    --engine aurora
```

### RDS API
<a name="Aurora.Migration.RDSMySQL.Create.API"></a>

若要從來源 RDS for MySQL 資料庫執行個體建立 Aurora 讀取複本，請使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 和 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) Amazon RDS API 命令建立新的 Aurora 資料庫叢集和主要執行個體。請勿指定主要使用者名稱、主要密碼或資料庫名稱，因為 Aurora 讀取複本會使用與來源 RDS for MySQL 資料庫執行個體相同的主要使用者名稱、主要密碼、資料庫名稱。

您可以使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) Amazon RDS API 命令搭配以下參數，從來源 RDS for MySQL 資料庫執行個體為 Aurora 讀取複本建立新的 Aurora 資料庫叢集：
+ `DBClusterIdentifier`

  要建立的資料庫叢集名稱。
+ `DBSubnetGroupName`

  要與此資料庫叢集關聯之資料庫子網路群組的名稱。
+ `Engine=aurora`
+ `KmsKeyId`

   AWS KMS key 選擇性地使用 加密資料庫叢集，取決於您的 MySQL 資料庫執行個體是否已加密。
  + 如果 MySQL 資料庫執行個體未加密，請指定加密金鑰，以便對資料庫叢集進行靜態加密。否則會使用您的帳戶的預設加密金鑰，對資料庫叢集進行靜態加密。
  + 如果 MySQL 資料庫執行個體已加密，請指定加密金鑰，以使用指定的加密金鑰對資料庫叢集進行靜態加密。否則會使用 MySQL 資料庫執行個體的加密金鑰，對資料庫叢集進行靜態加密。
**注意**  
您無法從已加密的 MySQL 資料庫執行個體來建立未加密的資料庫叢集。
+ `ReplicationSourceIdentifier`

  來源 MySQL 資料庫執行個體的 Amazon Resource Name (ARN)。如需 Amazon RDS ARN 的詳細資訊，請參閱 [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)。
+ `VpcSecurityGroupIds`

  要與此資料庫叢集關聯的 EC2 VPC 安全群組的清單。

在此範例中，您會從來源 MySQL 資料庫執行個體建立資料庫叢集 *myreadreplicacluster*，此來源的 ARN 設為 *mysqlprimaryARN*，並與 *mysubnetgroup* 資料庫子網路群組及 *mysecuritygroup* VPC 安全群組相關聯。

**Example**  

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CreateDBCluster
    &DBClusterIdentifier=myreadreplicacluster
    &DBSubnetGroupName=mysubnetgroup
    &Engine=aurora
    &ReplicationSourceIdentifier=mysqlprimaryARN
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &Version=2014-10-31
    &VpcSecurityGroupIds=mysecuritygroup
    &X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Credential=AKIADQKE4SARGYLE/20150927/us-east-1/rds/aws4_request
    &X-Amz-Date=20150927T164851Z
    &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
    &X-Amz-Signature=6a8f4bd6a98f649c75ea04a6b3929ecc75ac09739588391cd7250f5280e716db
```

如果您使用主控台建立 Aurora 僅供讀取複本，則 Aurora 會為您的資料庫叢集 Aurora 僅供讀取複本自動建立主要執行個體。如果您使用 AWS CLI 建立 Aurora 僅供讀取複本，則必須明確建立資料庫叢集的主要執行個體。主要執行個體是資料庫叢集內第一個建立的執行個體。

您可以使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) Amazon RDS API 命令搭配以下參數來建立資料庫叢集的主要執行個體：
+ `DBClusterIdentifier`

  資料庫叢集的名稱。
+ `DBInstanceClass`

  要用於主要執行個體的執行個體類別名稱。
+ `DBInstanceIdentifier`

  主要執行個體的名稱。
+ `Engine=aurora`

在此範例中，您會使用在 *myinstanceclass* 中指定的資料庫執行個體類別，為 *myreadreplicacluster* 資料庫叢集建立主要執行個體 *myreadreplicainstance*。

**Example**  

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CreateDBInstance
    &DBClusterIdentifier=myreadreplicacluster
    &DBInstanceClass=myinstanceclass
    &DBInstanceIdentifier=myreadreplicainstance
    &Engine=aurora
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &Version=2014-09-01
    &X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Credential=AKIADQKE4SARGYLE/20140424/us-east-1/rds/aws4_request
    &X-Amz-Date=20140424T194844Z
    &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
    &X-Amz-Signature=bee4aabc750bf7dad0cd9e22b952bd6089d91e2a16592c2293e532eeaab8bc77
```

## 檢視 Aurora 僅供讀取複本
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View"></a>

您可以使用 AWS 管理主控台 或 AWS CLI，以檢視 Aurora MySQL 資料庫叢集的 MySQL 至 Aurora MySQL 複寫關係。

### 主控台
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.Console"></a>

**檢視 Aurora 僅供讀取複本的主要 MySQL 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇 Aurora 僅供讀取複本的資料庫叢集，以顯示其詳細資訊。主要 MySQL 資料庫執行個體資訊在 **Replication source** (複寫來源) 欄位中。  
![\[檢視 MySQL 主要資料庫\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/aurora-repl6.png)

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.CLI"></a>

若要使用 檢視 Aurora MySQL 資料庫叢集的 MySQL 對 Aurora MySQL 複寫關係 AWS CLI，請使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)和 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)命令。

若要判斷哪個 MySQL 資料庫執行個體是主節點，請使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)，並在 `--db-cluster-identifier` 選項中指定 Aurora 僅供讀取複本的叢集識別符。請查閱輸出中的 `ReplicationSourceIdentifier` 元素，以取得做為複寫主節點之資料庫執行個體的 ARN。

若要判斷哪個資料庫叢集是 Aurora 僅供讀取複本，請使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)，並在 `--db-instance-identifier` 選項中指定 MySQL 資料庫執行個體的執行個體識別符。請參閱輸出中的 `ReadReplicaDBClusterIdentifiers` 元素，以取得 Aurora 僅供讀取複本的資料庫叢集識別符。

**Example**  
對於 Linux、macOS 或 Unix：  

```
aws rds describe-db-clusters \
    --db-cluster-identifier myreadreplicacluster
```

```
aws rds describe-db-instances \
    --db-instance-identifier mysqlprimary
```
在 Windows 中：  

```
aws rds describe-db-clusters ^
    --db-cluster-identifier myreadreplicacluster
```

```
aws rds describe-db-instances ^
    --db-instance-identifier mysqlprimary
```

## 提升 Aurora 僅供讀取複本
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote"></a>

遷移完成後，您可以使用 AWS 管理主控台 或 將 Aurora 僅供讀取複本提升為獨立的資料庫叢集 AWS CLI。

接著您可以將用戶端應用程式導向 Aurora 僅供讀取複本的端點。如需 Aurora 端點的詳細資訊，請參閱 [Amazon Aurora 端點連線](Aurora.Overview.Endpoints.md)。提升應該會很快完成，而且您在提升期間可以讀取和寫入 Aurora 僅供讀取複本。但在此期間，您無法刪除主要 MySQL 資料庫執行個體，或解除資料庫執行個體與 Aurora 僅供讀取複本之間的連結。

在提升 Aurora 僅供讀取複本之前，請先停止任何交易寫入來源 MySQL 資料庫執行個體，並等待 Aurora 僅供讀取複本的複本延遲達到 0。您可以檢視 Aurora 僅供讀取複本的複本延遲，方法是在您的 Aurora 僅供讀取複本上呼叫 `SHOW SLAVE STATUS` (Aurora MySQL 第 2 版) 或 `SHOW REPLICA STATUS` (Aurora MySQL 第 3 版) 命令。檢查 **Seconds behind master** 值。

當交易停止寫入主節點且複本延遲為 0 之後，您就可以開始寫入 Aurora 僅供讀取複本。如果您在此之前寫入 Aurora 僅供讀取複本，且修改 MySQL 主節點上也正在修改的資料表，則可能會中斷複寫至 Aurora 的作業。如果發生這種情況，您必須刪除並重新建立 Aurora 僅供讀取複本。

### 主控台
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.Console"></a>

**將 Aurora 僅供讀取複本提升為 Aurora 資料庫叢集**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇 Aurora 僅供讀取複本的資料庫叢集。

1. 針對 **Actions** (動作)，選擇 **Promote** (提升)。

1. 選擇 **Promote Read Replica** (提升僅供讀取複本)。

升級後，請使用下列程序確認提升已完成。

**確認已提升 Aurora 僅供讀取複本**

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

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 在 **Events** (事件) 頁面上，確認您提升的叢集有 `Promoted Read Replica cluster to a stand-alone database cluster` 事件。

提升完成後，主要 MySQL 資料庫執行個體與 Aurora 僅供讀取複本會解除連結，您可以安心地刪除資料庫執行個體 (如果想要這麼做)。

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.CLI"></a>

若要將 Aurora 僅供讀取複本提升為獨立資料庫叢集，請使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html) AWS CLI 命令。

**Example**  
對於 Linux、macOS 或 Unix：  

```
aws rds promote-read-replica-db-cluster \
    --db-cluster-identifier myreadreplicacluster
```
在 Windows 中：  

```
aws rds promote-read-replica-db-cluster ^
    --db-cluster-identifier myreadreplicacluster
```