

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

# 使用僅供讀取複本遷移至多可用區域資料庫叢集
<a name="multi-az-db-clusters-migrating-to-with-read-replica"></a>

若要將單一可用區域部署或多可用區域資料庫執行個體部署遷移至多可用區域資料庫叢集部署，並減少停機時間，您可以建立多可用區域資料庫執行個體的僅供讀取複本。對於來源，您可以在單一可用區域部署中指定資料庫執行個體，或在多可用區域資料庫執行個體部署中指定主要資料庫執行個體。資料庫執行個體可以在遷移至多可用區域資料庫叢集期間處理寫入交易。

建立多可用區域資料庫叢集僅供讀取複本之前，請考量以下項目：
+ 來源資料庫執行個體必須位於支援多可用區域資料庫叢集的版本。如需更多詳細資訊，請參閱 [Amazon RDS 中的多可用區域資料庫叢集的支援區域和資料庫引擎。](Concepts.RDS_Fea_Regions_DB-eng.Feature.MultiAZDBClusters.md)。
+ 多可用區域資料庫叢集僅供讀取複本必須與其來源位於相同的主要版本，並位於相同或更新的次要版本。
+ 您必須將備份保留期設定為 0 以外的值，才能開啟來源資料庫執行個體上的自動備份。
+ 來源資料庫執行個體的配置儲存體必須為 100 GiB 或更高。
+ 對於 RDS for MySQL，必須將來源資料庫執行個體的 `gtid-mode` 和 `enforce_gtid_consistency` 參數都設定為 `ON`。您必須使用自訂參數群組，而不是預設參數群組。如需更多詳細資訊，請參閱 [Amazon RDS 資料庫執行個體的資料庫參數群組](USER_WorkingWithDBInstanceParamGroups.md)。
+ 長時間執行的作用中交易會使建立僅供讀取複本的流程變慢。建議您等到長時間執行交易完成後，再建立僅供讀取複本。
+ 如果您刪除多可用區域資料庫叢集的來源資料庫執行個體，僅供讀取複本會提升為獨立的多可用區域資料庫叢集。

## 建立和提升多可用區域資料庫叢集僅供讀取複本
<a name="multi-az-db-clusters-migrating-to-create-promote"></a>

您可以使用 AWS 管理主控台、AWS CLI 或 RDS API 建立和提升多可用區域資料庫叢集。

**注意**  
強烈建議您根據來源資料庫執行個體的 Amazon VPC，在相同的虛擬私有雲端 (VPC) 中建立所有僅供讀取複本。  
如果您在與來源資料庫執行個體不同的 VPC 中建立僅供讀取複本，則複本和 Amazon RDS 系統之間的無類別域間路由 (CIDR) 範圍可能會重疊。CIDR 重疊會使複本不穩定，這會對連線到該複本的應用程式產生負面影響。如果您在建立僅供讀取複本時收到錯誤，請選擇不同的目的地資料庫子網路群組。如需更多詳細資訊，請參閱 [在 VPC 中使用資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md)。

### 主控台
<a name="multi-az-db-clusters-migrating-to-create-promote-console"></a>

若要使用僅供讀取複本，將單一可用區域部署或多可用區域資料庫執行個體部署遷移至多可用區域資料庫叢集，請使用AWS 管理主控台完成下列步驟。

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

1. 建立多可用區域資料庫叢集僅供讀取複本。

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

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

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

   1. 針對 **Availability and durability** (可用性與持久性)，選擇 **Multi-AZ DB cluster** (多可用區域資料庫叢集)。

   1. 在 **DB instance identifier** (資料庫執行個體識別符) 中，輸入僅供讀取複本的名稱。

   1. 在其餘區段，指定資料庫叢集設定。如需設定的相關資訊，請參閱 [建立多可用區域資料庫叢集的設定](create-multi-az-db-cluster.md#create-multi-az-db-cluster-settings)。

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

1. 備妥時，將僅供讀取複本提升為獨立的多可用區域資料庫叢集：

   1. 停止任何交易寫入至僅供來源資料庫執行個體，然後等待針對僅供讀取複本所做的所有更新。

      資料庫更新在主要資料庫執行個體上發生之後，會在僅供讀取複本上發生。此複寫延遲可能會有很大不同。使用 `ReplicaLag` 指標以確定針對僅供讀取複本進行的所有更新時間。如需複本延遲的詳細資訊，請參閱 [監控僅供讀取複本](USER_ReadRepl.Monitoring.md)。

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

   1. 在 Amazon RDS 主控台，選擇 **Databases (資料庫)**。

      **Databases (資料庫)** 窗格隨即出現。每個僅供讀取複本會在 **Role (角色)** 欄中顯示 **Replica (複本)**。

   1. 選擇您要提升的多可用區域資料庫叢集僅供讀取複本。

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

   1. 在 **Promote read replica** (提升僅供讀取複本) 頁面上，輸入新提升之多可用區域資料庫叢集的備份保留期和備份時段。

   1. 依您所需完成設定後，選擇 **Promote read replica** (提升僅供讀取複本)。

   1. 等待提升的多可用區域資料庫叢集狀態成為 `Available`。

   1. 引導您的應用程式使用提升的多可用區域資料庫叢集。

   選擇性地刪除單一可用區域部署或多可用區域資料庫執行個體部署 (如果不再需要)。如需說明，請參閱[刪除資料庫執行個體](USER_DeleteInstance.md)。

### AWS CLI
<a name="multi-az-db-clusters-migrating-to-create-promote-cli"></a>

若要使用僅供讀取複本，將單一可用區域部署或多可用區域資料庫執行個體部署遷移至多可用區域資料庫叢集，請使用AWS CLI完成下列步驟。

1. 建立多可用區域資料庫叢集僅供讀取複本。

   若要從來源資料庫執行個體建立僅供讀取複本，請使用 AWS CLI 命令 [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)。若為 `--replication-source-identifier`，請指定來源資料庫執行個體的 Amazon Resource Name (ARN)。

   在 Linux、macOS 或 Unix 中：

   ```
   aws rds create-db-cluster \
     --db-cluster-identifier mymultiazdbcluster \
     --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance
     --engine postgres \
     --db-cluster-instance-class db.m5d.large \
     --storage-type io1 \
     --iops 1000 \
     --db-subnet-group-name defaultvpc \
     --backup-retention-period 1
   ```

   在 Windows 中：

   ```
   aws rds create-db-cluster ^
     --db-cluster-identifier mymultiazdbcluster ^
     --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance
     --engine postgres ^
     --db-cluster-instance-class db.m5d.large ^
     --storage-type io1 ^
     --iops 1000 ^
     --db-subnet-group-name defaultvpc ^
     --backup-retention-period 1
   ```

1. 停止任何交易寫入至僅供來源資料庫執行個體，然後等待針對僅供讀取複本所做的所有更新。

   資料庫更新在主要資料庫執行個體上發生之後，會在僅供讀取複本上發生。此複寫延遲可能會有很大不同。使用 `Replica Lag` 指標以確定針對僅供讀取複本進行的所有更新時間。如需複本延遲的詳細資訊，請參閱 [監控僅供讀取複本](USER_ReadRepl.Monitoring.md)。

1. 備妥時，將僅供讀取複本提升為獨立的多可用區域資料庫叢集。

   若要提升多可用區域資料庫叢集僅供讀取複本，請使用 AWS CLI 命令 [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)。若為 `--db-cluster-identifier`，請指定多可用區域資料庫叢集僅供讀取複本的識別符。

   ```
   aws rds promote-read-replica-db-cluster --db-cluster-identifier mymultiazdbcluster
   ```

1. 等待提升的多可用區域資料庫叢集狀態成為 `Available`。

1. 引導您的應用程式使用提升的多可用區域資料庫叢集。

選擇性地刪除單一可用區域部署或多可用區域資料庫執行個體部署 (如果不再需要)。如需說明，請參閱[刪除資料庫執行個體](USER_DeleteInstance.md)。

### RDS API
<a name="multi-az-db-clusters-migrating-to-create-promote-api"></a>

若要使用僅供讀取複本，將單一可用區域部署或多可用區域資料庫執行個體部署遷移至多可用區域資料庫叢集，請使用 RDS API 完成下列步驟。

1. 建立多可用區域資料庫叢集僅供讀取複本。

   若要建立多可用區域資料庫叢集僅供讀取複本，請使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 操作搭配必要參數 `DBClusterIdentifier`。若為 `ReplicationSourceIdentifier`，請指定來源資料庫執行個體的 Amazon Resource Name (ARN)。

1. 停止任何交易寫入至僅供來源資料庫執行個體，然後等待針對僅供讀取複本所做的所有更新。

   資料庫更新在主要資料庫執行個體上發生之後，會在僅供讀取複本上發生。此複寫延遲可能會有很大不同。使用 `Replica Lag` 指標以確定針對僅供讀取複本進行的所有更新時間。如需複本延遲的詳細資訊，請參閱 [監控僅供讀取複本](USER_ReadRepl.Monitoring.md)。

1. 備妥時，將僅供讀取複本提升為獨立的多可用區域資料庫叢集。

   若要提升多可用區域資料庫叢集僅供讀取複本，請使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplicaDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplicaDBCluster.html) 操作搭配必要參數 `DBClusterIdentifier`。指定多可用區域資料庫叢集僅供讀取複本的識別符。

1. 等待提升的多可用區域資料庫叢集狀態成為 `Available`。

1. 引導您的應用程式使用提升的多可用區域資料庫叢集。

選擇性地刪除單一可用區域部署或多可用區域資料庫執行個體部署 (如果不再需要)。如需說明，請參閱[刪除資料庫執行個體](USER_DeleteInstance.md)。

## 建立多可用區域資料庫叢集僅供讀取複本的限制
<a name="multi-az-db-clusters-migrating-to-limitations"></a>

下列限制適用於從單一可用區域部署或多可用區域資料庫執行個體部署建立多可用區域叢集僅供讀取複本。
+ AWS 帳戶 若與擁有來源資料庫執行個體的 AWS 帳戶 不同，您就無法在該帳戶中建立多可用區域資料庫叢集僅供讀取複本。
+ 您無法在來源資料庫執行個體的不同 AWS 區域中建立多可用區域資料庫叢集僅供讀取複本。
+ 您無法將多可用區域資料庫叢集僅供讀取複本復原至某個時間點。
+ 儲存體加密必須在來源資料庫執行個體和多可用區域資料庫叢集上具有相同的設定。
+ 如果來源資料庫執行個體已加密，則多可用區域資料庫叢集僅供讀取複本必須使用相同的 KMS 金鑰加密。
+ 如果來源資料庫執行個體使用一般用途 SSD (gp3) 儲存體，且配置的儲存體少於 400 GiB，則您無法修改多可用區域資料庫叢集僅供讀取複本的佈建 IOPS。
+ 若要在來源資料庫執行個體上執行次要版本升級，您必須先在多可用區域資料庫叢集僅供讀取複本上執行次要版本升級。
+ 當您在 RDS for PostgreSQL 多可用區域資料庫叢集僅供讀取複本上執行次要版本升級時，讀取器資料庫執行個體不會在升級後切換到寫入器資料庫執行個體。因此，當 Amazon RDS 升級寫入器執行個體時，您的資料庫叢集可能會遇到停機時間。
+ 您無法在多可用區域資料庫叢集僅供讀取複本上執行主要版本升級。
+ 您可以在多可用區域資料庫叢集僅供讀取複本的來源資料庫執行個體上執行主要版本升級，但複寫至僅供讀取複本會停止且無法重新啟動。
+ 多可用區域資料庫叢集僅供讀取複本不支援階層式僅供讀取複本。
+ 對於 RDS for PostgreSQL，多可用區域資料庫叢集僅供讀取複本無法容錯移轉。