

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

# 設定及管理 Amazon RDS 的多可用區域部署
<a name="Concepts.MultiAZ"></a>

多可用區域部署可以有一個待命或兩個待命資料庫執行個體。當部署具有一個備用資料庫執行個體時，稱為*多可用區域資料庫執行個體部署*。多可用區域資料庫執行個體部署有一個待命資料庫執行個體，可提供容錯移轉支援，但是不提供讀取流量。當部署有兩個待命資料庫執行個體時，它稱為*多可用區域資料庫叢集部署*。多可用區域資料庫叢集部署具有待命資料庫執行個體，可提供容錯移轉支援，也可提供讀取流量。

您可以使用 AWS 管理主控台 來確定異地同步備份部署是多可用區域資料庫執行個體部署，還是多可用區域資料庫叢集部署。在導覽窗格中，選擇 **Databases** (資料庫)，然後選擇 **DB identifier** (資料庫識別符)。
+ 多可用區域資料庫執行個體部署具有以下特徵：
  + 資料庫執行個體只有一行。
  + **Role** (角色) 的值為 **Instance** (執行個體) 或 **Primary** (主要)。
  + **Multi-AZ** (多可用區域) 的值為 **Yes** (是)。
+ 多可用區域資料庫叢集部署具有以下特徵：
  + 有一個叢集層級行，其下有三個資料庫執行個體行。
  + 對於叢集層級行，**Role** (角色) 的值為 **Multi-AZ DB cluster** (多可用區域資料庫叢集)。
  + 對於每個執行個體層級行，**Role** (角色) 的值為 **Writer instance** (寫入器執行個體) 或 **Reader instance** (讀取器執行個體)。
  + 對於每個執行個體層級行，**Multi-AZ** (多可用區域) 的值為 **3 Zones** (3 個區)。

**Topics**
+ [Amazon RDS 的多可用區域資料庫執行個體部署](Concepts.MultiAZSingleStandby.md)
+ [Amazon RDS 的多可用區域資料庫叢集部署](multi-az-db-clusters-concepts.md)

此外，下列主題同時適用於資料庫執行個體和多可用區域資料庫叢集。
+ [標記 Amazon RDS 資源](USER_Tagging.md)
+ [Amazon RDS 中的 Amazon Resource Name (ARN)](USER_Tagging.ARN.md)
+ [使用適合 Amazon RDS 資料庫執行個體的儲存體](USER_PIOPS.StorageTypes.md)
+ [維持資料庫執行個體](USER_UpgradeDBInstance.Maintenance.md)
+ [升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)

# Amazon RDS 的多可用區域資料庫執行個體部署
<a name="Concepts.MultiAZSingleStandby"></a>

使用多可用區域部署搭配單一待命資料庫執行個體，Amazon RDS 可為資料庫執行個體提供高可用性和容錯移轉支援。這種類型的部署稱為*多可用區域資料庫執行個體部署*。Amazon RDS 使用幾個不同技術來提供這個容錯移轉支援。MariaDB、MySQL、Oracle、PostgreSQL 和 RDS Custom for SQL Server 資料庫執行個體的多可用區域部署會使用 Amazon 容錯移轉技術。而 SQL Server 資料庫執行個體則會使用 SQL Server 資料庫鏡像 (DBM) 技術或 Always On 可用性群組 (AG)。如需 SQL Server 版本異地同步備份支援的相關資訊，請參閱[Amazon RDS for Microsoft SQL Server 的異地同步備份部署](USER_SQLServerMultiAZ.md)。如需針對多可用區域使用 RDS Custom for SQL Server 的相關資訊，請參閱 [管理 RDS Custom for SQL Server 的多可用區部署](custom-sqlserver-multiaz.md)。

在 Multi-AZ 資料庫執行個體部署中，Amazon RDS 會自動佈建，並在不同的可用區域中維持同步待命複本。主要資料庫執行個體會跨可用區域，同步複寫到待命複本，提供資料備援並且降低系統備份時的延遲遽增發生等功能。執行具有高可用性的資料庫執行個體，可以在規劃好的系統維護期間增強可用性。它還有助於在資料庫執行個體失敗和可用區域中斷時保護資料庫。如需可用區域的詳細資訊，請參閱[區域、可用區域和 Local Zones](Concepts.RegionsAndAvailabilityZones.md)。

**注意**  
高可用性選項不是唯讀案例的擴展解決方案。您無法使用待命複本來提供讀取流量。若要提供唯讀流量，請改用多可用區域資料庫叢集或僅供讀取複本。如需建立多可用區域資料庫叢集的詳細資訊，請參閱[Amazon RDS 的多可用區域資料庫叢集部署](multi-az-db-clusters-concepts.md)。如需僅供讀取複本的詳細資訊，請參閱 [使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

![\[高可用性案例\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/con-multi-AZ.png)


使用 RDS 主控台，只要在建立資料庫執行個體時指定多可用區域，即可輕鬆建立多可用區域資料庫執行個體部署。您可以使用主控台，藉由修改資料庫執行個體並指定多可用區域選項，將現有資料庫執行個體轉換為多可用區域資料庫執行個體部署。您也可以使用 AWS CLI 或 Amazon RDS API 指定多可用區域資料庫執行個體部署。使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 或 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI 命令，也可用 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 或 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API 操作。

RDS 主控台會顯示待命複本的可用區域 (稱為次要 AZ)。您也可以使用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) CLI 命令或 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) API 操作來尋找次要 AZ。

相較於單一可用區域部署，使用多可用區域資料庫執行個體部署的資料庫執行個體會有增加的寫入和遞交延遲。這可能是因為發生的同步資料複寫。如果您的部署容錯移轉到待命複本，則延遲可能會有所變更，雖然 AWS 是以可用區域之間的低延遲網路連線進行設計。對於生產應用程式，我們建議使用佈建 IOPS (每秒輸入/輸出操作) 來取得快速、一致的效能。如需資料庫執行個體類別的詳細資訊，請參閱 [ 資料庫執行個體類別](Concepts.DBInstanceClass.md)。

# 將資料庫執行個體轉換為 Amazon RDS 的多可用區域部署
<a name="Concepts.MultiAZ.Migrating"></a>

將資料庫執行個體修改為多可用區域部署，可透過在另一個可用區域中新增待命執行個體來改善可用性。此程序涉及最短的停機時間，並需要仔細規劃儲存和效能影響。此變更可增強容錯能力，並在發生故障時縮短復原時間，使其成為高可用性環境的理想選擇。

如果您的資料庫執行個體是在單一可用區域部署中，而想要將其修改為多可用區域資料庫執行個體部署，Amazon RDS 會執行下列動作：

1. 建立主要資料庫執行個體的 Amazon Elastic Block Store (EBS) 磁碟區快照。

1. 從快照為待命複本建立新磁碟區。這些磁碟區會在背景中初始化，並在資料完全初始化之後達到最大磁碟區效能。

1. 開啟主要複本和待命複本磁碟區之間的同步區塊層級複本。

**重要**  
在單一可用區域到多可用區域轉換期間，從快照建立待命資料庫執行個體可避免停機時間，但可能會影響效能，尤其是對寫入敏感的工作負載。同步複寫可能會增加 I/O 延遲，影響資料庫效能。最佳實務是避免將生產資料庫執行個體轉換為多可用區域資料庫執行個體。  
相反地，請建立僅供讀取複本、啟用其備份、將其轉換為多可用區域、將資料載入其磁碟區，然後將其提升為主要資料庫執行個體。如需詳細資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

有兩種方式可將資料庫執行個體修改為多可用區域資料庫執行個體部署：

**Topics**
+ [使用 RDS 主控台將其轉換為多可用區域資料庫執行個體部署](#Concepts.MultiAZ.Migrating.Convert)
+ [將資料庫執行個體修改為多可用區域資料庫執行個體部署](#Concepts.MultiAZ.Migrating.Modify)

## 使用 RDS 主控台將其轉換為多可用區域資料庫執行個體部署
<a name="Concepts.MultiAZ.Migrating.Convert"></a>

您可以使用 RDS 主控台，將資料庫執行個體轉換為多可用區域資料庫執行個體部署。

您只能使用主控台來完成轉換。若要使用 AWS CLI 或 RDS API，請遵循 中的指示[將資料庫執行個體修改為多可用區域資料庫執行個體部署](#Concepts.MultiAZ.Migrating.Modify)。

**使用 RDS 主控台將其轉換為多可用區域資料庫執行個體部署**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要修改的資料庫執行個體。

1. 從 **Actions** (動作) 中，選擇 **Convert to Multi-AZ deployment** (轉換為多可用區部署)。

1. 在確認頁面上，選擇 **Apply immediately** (立即套用)，來立即套用變更。選擇此選項並不會產生停機時間，但可能會對效能產生影響。或者，您也可以選擇在下個維護時段套用更新。如需詳細資訊，請參閱[使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

1. 選擇 **Convert to Multi-AZ** (轉換為多可用區域)。

## 將資料庫執行個體修改為多可用區域資料庫執行個體部署
<a name="Concepts.MultiAZ.Migrating.Modify"></a>

您可以採取下列方法，將資料庫執行個體修改為多可用區域資料庫執行個體部署：
+ 使用 RDS 主控台，修改資料庫執行個體，並將 **Multi-AZ deployment** (多可用區部署) 設為 **Yes** (是)。
+ 使用 AWS CLI呼叫 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令，並設定 `--multi-az`選項。
+ 使用 RDS API，呼叫 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作，並將 `MultiAZ` 參數設為 `true`。

如需修改資料庫執行個體的相關資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。修改完成後，Amazon RDS 會觸發一個表示該程序已完成的事件 (RDS-EVENT-0025)。您可以監控 Amazon RDS 事件。如需事件的詳細資訊，請參閱[使用 Amazon RDS 事件通知](USER_Events.md)。

# 容錯移轉 Amazon RDS 的多可用區域資料庫執行個體
<a name="Concepts.MultiAZ.Failover"></a>

如果您的多可用區域資料庫執行個體因為基礎設施瑕疵而發生計劃中或非計劃的中斷，Amazon RDS 會自動切換到另一個可用區域中的待命複本。

完成容錯移轉所需的時間取決於主要資料庫執行個體失效時的資料庫活動和其他條件。通常容錯移轉時間是 60–120 秒。不過，大型交易或冗長復原程序可能會增加容錯移轉時間。容錯移轉完成後，RDS 控制台使用者界面可能需要多一點時間來反映新的可用區域。

**注意**  
重新啟動多可用區域資料庫執行個體時，您可以手動強制容錯移轉。如需更多詳細資訊，請參閱 [在資料庫執行個體](USER_RebootInstance.md)。

Amazon RDS 會自動處理容錯移轉，因此您可以盡快恢復資料庫操作，而無須人為介入管理。如果發生下表所述的任何條件，主要資料庫執行個體會自動切換至待命複本。您可以在事件日誌中檢視這些容錯移轉原因。


| 容錯移轉原因 | 描述 | 
| --- | --- | 
| 以 RDS 資料庫執行個體為基礎的作業系統正在離線操作中進行修補。 |  作業系統修補或安全更新的維護期間觸發容錯移轉。 如需詳細資訊，請參閱 [維持資料庫執行個體](USER_UpgradeDBInstance.Maintenance.md)。  | 
| RDS 異地同步備份執行個體的主要主機狀況不良。 | 多可用區域資料庫執行個體部署偵測到主要資料庫執行個體受損並容錯移轉。 | 
| 由於網路連線中斷，RDS 異地同步備份執行個體的主要主機無法連線。 |  RDS 監控偵測到主要資料庫執行個體的網路連線失敗，並觸發容錯移轉。  | 
| RDS 執行個體已由客戶修改。 |  RDS 資料庫執行個體修改觸發了容錯移轉。 如需詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。  | 
| RDS 異地同步備份主要執行個體忙碌且沒有回應。 |  主要資料庫執行個體沒有回應。我們建議您進行下列動作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.Failover.html) 如需這些建議的詳細資訊，請參閱 [Amazon RDS 的監控工具](MonitoringOverview.md) 和 [Amazon RDS 的最佳實務](CHAP_BestPractices.md)。  | 
| 以 RDS 異地同步備份執行個體主要主機為基礎的儲存磁碟區發生故障。 | 多可用區域資料庫執行個體部署在主要資料庫執行個體上偵測到儲存問題並容錯移轉。 | 
| 使用者請求資料庫執行個體的容錯移轉。 |  您重新啟動了資料庫執行個體，並選擇了 **Reboot with failover** (使用容錯移轉重新啟動)。 如需詳細資訊，請參閱 [在資料庫執行個體](USER_RebootInstance.md)。  | 

若要判斷您的多可用區域資料庫執行個體是否已容錯移轉，您可以執行下列動作：
+ 設定資料庫事件訂閱，透過電子郵件或 SMS 通知您已啟動容錯移轉。如需事件的詳細資訊，請參閱[使用 Amazon RDS 事件通知](USER_Events.md)。
+ 您可以使用 RDS 主控台或 API 操作來檢視資料庫事件。
+ 您可以使用 RDS 主控台和 API 操作，檢視多可用區域資料庫執行個體部署的目前狀態。

有關如何回應容錯移轉、減少恢復時間以及其他 Amazon RDS 最佳實務，詳細資訊請參閱 [Amazon RDS 的最佳實務](CHAP_BestPractices.md)。

## 設定 DNS 名稱查詢的 JVM TTL
<a name="Concepts.MultiAZ.Failover.Java-DNS"></a>

容錯移轉機制會自動將資料庫執行個體的網域名稱系統 (DNS) 記錄變更為指向待命資料庫執行個體。因此，您必須重新建立資料庫執行個體任何現有的連線。在 Java 虛擬機器 (JVM) 環境中，基於 Java DNS 快取機制的運作方式，您可能需要重新配置 JVM 設定。

JVM 會快取 DNS 名稱查詢。當 JVM 將主機名稱解析為 IP 地址時，它會在指定的時間段內快取 IP 地址，稱為*存留時間* (TTL)。

由於 AWS 資源使用偶爾會變更的 DNS 名稱項目，因此建議您將 JVM 設定為不超過 60 秒的 TTL 值。如此可確保當資源的 IP 位址變更時，您的應用程式可以透過重新查詢 DNS 來接收並使用資源的新 IP 位址。

在一些 Java 組態上，則會設定 JVM 預設 TTL，以便其在重新啟動 JVM 之前絕對不會重新整理 DNS 項目。因此，如果您的應用程式仍在執行時，AWS 資源的 IP 地址發生變更，則在您手動重新啟動 JVM 並重新整理快取的 IP 資訊之前，將無法使用該資源。在此情況下，設定 JVM 的 TTL 至為關鍵，以便其定期重新整理其快取的 IP 資訊。

您可以擷取 [https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html](https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html) 屬性值來取得 JVM 預設 TTL：

```
String ttl = java.security.Security.getProperty("networkaddress.cache.ttl");
```

**注意**  
預設 TTL 可能會視 JVM 的版本以及是否已安裝安全管理員而異。許多 JVM 提供的預設 TTL 少於 60 秒。如果您使用此類 JVM (而非安全管理員)，則可忽略本主題的其餘內容。如需 Oracle 中安全管理員的詳細資訊，請參閱 Oracle 文件中的[安全管理員](https://docs.oracle.com/javase/tutorial/essential/environment/security.html)。

若要修改 JVM 的 TTL，請設定 `networkaddress.cache.ttl` 屬性值。根據您的需求，使用下列其中一種方法：
+ 若要為使用 JVM 的所有應用程式全域設定屬性值，請在 `networkaddress.cache.ttl` 檔案中設定 `$JAVA_HOME/jre/lib/security/java.security`。

  ```
  networkaddress.cache.ttl=60									
  ```
+ 若要僅針對您的應用程式進行適當的本機設定，請在建立任何網路連線之前，在您應用程式的初始化程式碼中設定 `networkaddress.cache.ttl`。

  ```
  java.security.Security.setProperty("networkaddress.cache.ttl" , "60");								
  ```

# 具有其他儲存磁碟區的異地同步備份容錯移轉
<a name="MultiAZ.AdditionalStorageVolumes"></a>

異地同步備份部署支援具有額外儲存磁碟區的資料庫執行個體。在容錯移轉期間，RDS 會自動容錯移轉至待命執行個體，並將任何其他儲存磁碟區連接至資料庫執行個體。此程序可確保資料一致性和可用性。

當您為具有額外儲存磁碟區的資料庫執行個體設定異地同步備份部署時，Amazon RDS 會自動將所有磁碟區複寫至不同可用區域中的待命執行個體。複寫儲存包含：
+ 主要儲存磁碟區
+ 連接至資料庫執行個體的所有其他儲存磁碟區

在容錯移轉期間，Amazon RDS 會提升待命執行個體，並確保所有儲存磁碟區都可用且一致。容錯移轉會維護相同的儲存組態，包括磁碟區名稱、儲存類型和效能特性。

成功容錯移轉後，您可以檢視儲存組態詳細資訊，確認所有儲存磁碟區都已正確連接並可存取。如需詳細資訊，請參閱[檢視資料庫執行個體的儲存磁碟區詳細資訊](rds-storage-viewing.md)。

具有額外儲存磁碟區的資料庫執行個體的容錯移轉時間類似於僅具有主要儲存體的資料庫執行個體。

# Amazon RDS 的多可用區域資料庫叢集部署
<a name="multi-az-db-clusters-concepts"></a>

*多可用區域資料庫叢集部署*是 Amazon RDS 的半同步、高可用性部署模式，具有兩個可讀取複本資料庫執行個體。多可用區域資料庫叢集具有寫入器資料庫執行個體和兩個讀取器資料庫執行個體，位於相同 AWS 區域中的三個個別可用區域中。多可用區域資料庫叢集相較於多可用區域資料庫執行個體部署，可提供高可用性、增加讀取工作負載的容量，以及降低寫入延遲。

您可以遵循[以較短的停機時間將資料匯入至 Amazon RDS for MySQL 資料庫](mysql-importing-data-reduced-downtime.md)中的指示，將資料從內部部署資料庫匯入至多可用區域資料庫叢集。

您可以為多可用區域資料庫叢集購買預留資料庫執行個體。如需詳細資訊，請參閱[多可用區域資料庫叢集的預留資料庫執行個體](USER_WorkingWithReservedDBInstances.md#USER_WorkingWithReservedDBInstances.MultiAZDBClusters)。

功能可用性和支援會因每個資料庫引擎的特定版本以及 AWS 區域而有所不同。如需 Amazon RDS 搭配多個可用區域資料庫叢集的版本和可用性的詳細資訊，請參閱 [Amazon RDS 中的多可用區域資料庫叢集的支援區域和資料庫引擎。](Concepts.RDS_Fea_Regions_DB-eng.Feature.MultiAZDBClusters.md)。

**Topics**
+ [多可用區域資料庫叢集的執行個體類別可用性](#multi-az-db-clusters-concepts.InstanceAvailability)
+ [多可用區域資料庫叢集架構](#multi-az-db-clusters-concepts-overview)
+ [多可用區域資料庫叢集的參數群組](#multi-az-db-clusters-concepts-parameter-groups)
+ [RDS Proxy 搭配多可用區資料庫叢集](#multi-az-db-clusters-proxy)
+ [複本延遲和多可用區域資料庫叢集](#multi-az-db-clusters-concepts-replica-lag)
+ [多可用區域資料庫叢集快照](#multi-az-db-clusters-concepts-snapshot)
+ [為 Amazon RDS 建立多可用區域資料庫叢集](create-multi-az-db-cluster.md)
+ [連線至 Amazon RDS 的多可用區域資料庫叢集](multi-az-db-clusters-concepts-connection-management.md)
+ [自動連線 AWS 運算資源和 Amazon RDS 的多可用區域資料庫叢集](multi-az-compute-rds-connect.md)
+ [使用 Amazon RDS 修改多可用區域資料庫叢集](modify-multi-az-db-cluster.md)
+ [升級 Amazon RDS 多可用區域資料庫叢集的引擎版本](multi-az-db-clusters-upgrading.md)
+ [為 Amazon RDS 重新命名多可用區域資料庫叢集](multi-az-db-cluster-rename.md)
+ [重新啟動 Amazon RDS 的多可用區域資料庫叢集和讀取器資料庫執行個體](multi-az-db-clusters-concepts-rebooting.md)
+ [容錯移轉 Amazon RDS 的多可用區域資料庫叢集](multi-az-db-clusters-concepts-failover.md)
+ [為 Amazon RDS 的多可用區域資料庫叢集設定 PostgreSQL 邏輯複寫](USER_MultiAZDBCluster_LogicalRepl.md)
+ [對 Amazon RDS 使用多可用區域資料庫叢集僅供讀取複本](USER_MultiAZDBCluster_ReadRepl.md)
+ [從 Amazon RDS 的多可用區域資料庫叢集設定外部複寫](multi-az-db-clusters-external-replication.md)
+ [刪除 Amazon RDS 的多可用區域資料庫叢集](USER_DeleteMultiAZDBCluster.Deleting.md)
+ [Amazon RDS 的多可用區域資料庫叢集的限制](multi-az-db-clusters-concepts.Limitations.md)

**重要**  
多可用區域資料庫叢集與 Aurora 資料庫叢集不同。如需 Aurora​ 資料庫叢集的詳細資訊，請參閱《[Amazon Aurora​ 使用者指南](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html)》。

## 多可用區域資料庫叢集的執行個體類別可用性
<a name="multi-az-db-clusters-concepts.InstanceAvailability"></a>

下列資料庫執行個體類別支援多可用區資料庫叢集部署：`db.m5d`、`db.m6gd`、`db.m6id`、`db.m6idn`、`db.r5d`、`db.r6gd`、`db.x2iedn`、`db.r6id` 和 `db.r6idn`，以及 `db.c6gd`。

**注意**  
c6gd 執行個體類別是唯一支援 `medium` 執行個體大小的類別。

如需資料庫執行個體類別的詳細資訊，請參閱 [ 資料庫執行個體類別](Concepts.DBInstanceClass.md)。

## 多可用區域資料庫叢集架構
<a name="multi-az-db-clusters-concepts-overview"></a>

有了多可用區域資料庫叢集，Amazon RDS 會使用資料庫引擎的原生複寫功能，將寫入器資料庫執行個體的資料複寫到兩個讀取器資料庫執行個體。對寫入器資料庫執行個體進行變更時，會將它傳送至每個讀取器資料庫執行個體。

多可用區域資料庫叢集部署使用半同步複寫，需要至少一個讀取器資料庫執行個體的確認才能遞交變更。它不需要確認事件已在*所有*複本上完全執行並遞交。

讀取器資料庫執行個體做為自動容錯移轉目標，並提供讀取流量，以增加應用程式讀取輸送量。如果您的寫入器資料庫執行個體發生服務中斷，RDS 會管理容錯移轉到其中一個讀取器資料庫執行個體。RDS 會根據哪個讀取器資料庫執行個體有最近的變更記錄來執行此作業。

下圖顯示多可用區域資料庫叢集。

![\[多可用區域資料庫叢集\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster.png)


與多可用區域資料庫執行個體部署相比，多可用區域資料庫叢集通常具有較低的寫入延遲。此外也允許在讀取器資料庫執行個體上執行唯讀工作負載。RDS 主控台會顯示寫入器資料庫執行個體的可用區域和讀取器資料庫執行個體的可用區域。您也可以使用 [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) CLI 命令或 [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) API 操作來尋找此資訊。

**重要**  
為了防止 RDS for MySQL 多可用區域資料庫叢集發生複寫錯誤，強烈建議所有資料表都具有主索引鍵。

## 多可用區域資料庫叢集的參數群組
<a name="multi-az-db-clusters-concepts-parameter-groups"></a>

在多可用區域資料庫叢集中，*資料庫叢集參數群組*做為引擎組態值的容器，這些值會套用到多可用區域資料庫叢集的每個資料庫執行個體。

在多可用區域資料庫叢集中，*DB parameter group (資料庫參數群組)* 會設定為資料庫引擎和資料庫引擎版本的預設資料庫參數群組。資料庫叢集參數群組中的設定用於叢集中的所有資料庫執行個體。

如需參數群組的詳細資訊，請參閱 [使用多可用區域資料庫叢集的資料庫叢集參數群組](USER_WorkingWithDBClusterParamGroups.md)。

## RDS Proxy 搭配多可用區資料庫叢集
<a name="multi-az-db-clusters-proxy"></a>

您可以使用 Amazon RDS Proxy 為多可用區域資料庫叢集建立 Proxy。透過使用 RDS Proxy，您的應用程式可以集中及共用資料庫連線，以改善其擴展能力。每個 Proxy 會執行連線*多工*，又稱為連線重用。RDS Proxy 運用「多工」，使用一個基礎資料庫連線執行一筆交易的所有操作。RDS Proxy 也可以將多可用區域資料庫叢集次要版本升級的停機時間縮短至一秒或更短。如需有關 RDS Proxy 優勢的詳細資訊，請參閱 [Amazon RDS Proxy ](rds-proxy.md)。

若要為多可用區資料庫叢集設定 Proxy，請在建立叢集時選擇**建立 RDS Proxy**。如需建立和管理 RDS Proxy 端點的指示，請參閱 [使用 Amazon RDS Proxy 端點](rds-proxy-endpoints.md)。

## 複本延遲和多可用區域資料庫叢集
<a name="multi-az-db-clusters-concepts-replica-lag"></a>

*複本延遲*指的是寫入器資料庫執行個體上的最新交易，與多可用區域資料庫叢集中讀取器資料庫執行個體上最新套用交易之間的時間差異。Amazon CloudWatch 的指標 `ReplicaLag` 表示這個時間差異。如需 CloudWatch 指標的詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon RDS 指標](monitoring-cloudwatch.md)。

雖然多可用區域資料庫叢集可達到高寫入效能，但由於以引擎為基礎的的複寫性質，複本延遲仍可能出現。任何容錯移轉都必須先解決複本延遲情況，然後才能提升新的寫入器資料庫執行個體，因此監控和管理複本延遲是需考慮的因素。

對於 RDS for MySQL 多可用區域資料庫叢集，容錯移轉時間取決於其餘兩個讀取器資料庫執行個體的複本延遲。兩個讀取器資料庫執行個體必須套用未套用的交易，然後才能將其中一個提升到新的寫入器資料庫執行個體。

對於 RDS for PostgreSQL 多可用區域資料庫叢集，容錯移轉時間取決於其餘兩個讀取器資料庫執行個體的最低複本延遲。具有最低複本延遲的讀取器資料庫執行個體必須套用未套用的交易，然後才能將其提升到新的寫入器資料庫執行個體。

如需介紹如何在複本延遲超過設定時間量時建立 CloudWatch 警示的教學課程，請參閱 [教學課程：為 Amazon RDS 多可用區域資料庫叢集複本延遲建立 Amazon CloudWatch 警示](multi-az-db-cluster-cloudwatch-alarm.md)。

### 複本延遲的常見原因
<a name="multi-az-db-clusters-concepts-replica-lag-causes"></a>

通常，如果寫入工作負載過高，讀取器資料庫執行個體就無法有效套用交易，進而發生複本延遲。多種工作負載可能會發生暫時或連續的複本延遲。以下是一些常見原因的例子：
+ 寫入器資料庫執行個體上進行高寫入並行或大批次更新，導致讀取器資料庫執行個體上的套用程序落後。
+ 繁重的讀取工作負載使用一或多個讀取器資料庫執行個體上的資源。執行緩慢或大型查詢可能會影響套用程序，且可能導致複本延遲。
+ 修改大量資料或 DDL 陳述式的交易有時會導致複本延遲暫時增加，因為資料庫必須保留遞交順序。

### 緩解複本延遲
<a name="multi-az-db-clusters-concepts-replica-lag-mitigating"></a>

針對 RDS for MySQL 和 RDS for PostgreSQL 的多可用區域資料庫叢集，可以藉由減少寫入器資料庫執行個體上的負載來緩解複本延遲情況。您還可以使用流量控制來減少複本延遲。*流量控制*的運作機制是調節寫入器資料庫執行個體上的寫入作業，確保複本延遲不會繼續無限制增長。寫入調節的運作機制是在交易結尾新增延遲，藉此降低寫入器資料庫執行個體的寫入輸送量。雖然流量控制不能保證消除延遲，但可以幫助減少許多工作負載的整體延遲。下列各節提供了有關將流量控制與 RDS for MySQL 和 RDS for PostgreSQL 搭配使用的資訊。

#### 利用流量控制緩解 RDS for MySQL 的複本延遲
<a name="multi-az-db-clusters-concepts-replica-lag-mitigating.mysql"></a>

當您使用 RDS for MySQL 多可用區域資料庫叢集時，預設會使用動態參數 `rpl_semi_sync_master_target_apply_lag` 開啟流量控制。此參數指定您要用於複本延遲的上限。當複本延遲接近此設定限制時，流量控制會調節寫入器資料庫執行個體上的寫入交易，以嘗試將複本延遲控制在指定值以下。在某些情況下，複本延遲可能會超過指定限制。根據預設，此參數設定為 120 秒。若要關閉流量控制，請將此參數設定為其最大值 86,400 秒 (一天)。

若要查看流量控制注入的目前延遲，請執行下列查詢以顯示參數 `Rpl_semi_sync_master_flow_control_current_delay`。

```
SHOW GLOBAL STATUS like '%flow_control%';
```

您的輸出應該類似以下內容：

```
+-------------------------------------------------+-------+
| Variable_name                                   | Value |
+-------------------------------------------------+-------+
| Rpl_semi_sync_master_flow_control_current_delay | 2010  |
+-------------------------------------------------+-------+
1 row in set (0.00 sec)
```

**注意**  
延遲以微秒為單位顯示。

為 RDS for MySQL 多可用區域資料庫叢集開啟 Performance Insights 後，您可以監控與指示查詢由流量控制延遲的 SQL 陳述式對應的等待事件。流量控制引入延遲時，您可以查看與 Performance Insights 儀表板上的 SQL 陳述式對應的等待事件 `/wait/synch/cond/semisync/semi_sync_flow_control_delay_cond`。若要查看這些指標，請確認已開啟 Performance Schema。如需 Performance Insights 的詳細資訊，請參閱 [在 Amazon RDS 上使用績效詳情監控資料庫負載](USER_PerfInsights.md)。

#### 利用流量控制緩解 RDS for PostgreSQL 的複本延遲
<a name="multi-az-db-clusters-concepts-replica-lag-mitigating.postgresql"></a>

在使用 RDS for PostgreSQL 多可用區域資料庫叢集時，流量控制功能會部署為擴充功能。它會為資料庫叢集中的所有資料庫執行個體啟動背景工作者。預設情況下，讀取器資料庫執行個體上的背景工作者，會向寫入器資料庫執行個體上的背景工作者傳達目前的複本延遲情況。如果任何讀取器資料庫執行個體上的延遲超過兩分鐘，寫入器資料庫執行個體上的背景工作者就會在交易結尾新增延遲。若要控制延遲閾值，請使用參數 `flow_control.target_standby_apply_lag`。

流量控制調節 PostgreSQL 程序時，`Extension` 會等待 `pg_stat_activity` 中的事件，而績效詳情會指出此情況。函數 `get_flow_control_stats` 顯示有關目前正在新增多少延遲的詳細資訊。

流量控制有助於大多數線上交易處理 (OLTP) 工作負載，這些工作負載具有短暫但高度並行的交易。如果延遲是由長時間執行的交易 (如批次操作) 引起的，流量控制提供的效益就沒有這麼大。

若要關閉流量控制功能，請從 `shared_preload_libraries` 移除擴充功能並重新啟動資料庫執行個體。

## 多可用區域資料庫叢集快照
<a name="multi-az-db-clusters-concepts-snapshot"></a>

Amazon RDS 會在設定的備份時段建立並儲存多可用區域資料庫叢集的自動備份。RDS 會建立資料庫叢集的儲存體磁碟區快照，因此會備份整個叢集，而不只是個別的執行個體。

您也可以手動備份多可用區域資料庫叢集。針對非常長期的備份，請考慮將快照資料匯出至 Amazon S3。如需詳細資訊，請參閱[為 Amazon RDS 建立多可用區域資料庫叢集快照](USER_CreateMultiAZDBClusterSnapshot.md)。

您可將多可用區域資料庫叢集還原到特定的時間點，從而建立新的多可用區域資料庫叢集。如需說明，請參閱[將多可用區域資料庫叢集還原至指定時間](USER_PIT.MultiAZDBCluster.md)。

或者，您可以將多可用區域資料庫叢集快照還原至單一可用區域部署或多可用區資料庫執行個體部署。如需說明，請參閱[從多可用區域資料庫叢集快照還原至資料庫執行個體](USER_RestoreFromMultiAZDBClusterSnapshot.md)。

# 為 Amazon RDS 建立多可用區域資料庫叢集
<a name="create-multi-az-db-cluster"></a>

多可用區域資料庫叢集在三個不同的可用區域中有一個寫入器資料庫執行個體和兩個讀取器資料庫。多可用區域資料庫叢集相較於多可用區域部署，可提供高可用性、增加讀取工作負載的容量以及更低的延遲。如需建立多可用區域資料庫叢集的詳細資訊，請參閱[Amazon RDS 的多可用區域資料庫叢集部署](multi-az-db-clusters-concepts.md)。

**注意**  
多可用區域資料庫叢集僅支援 MySQL 和 PostgreSQL 資料庫引擎。

## 資料庫叢集先決條件
<a name="create-multi-az-db-cluster-prerequisites"></a>

**重要**  
您必須先完成 [設定您的 Amazon RDS 環境](CHAP_SettingUp.md) 中的任務，然後才能建立多可用區域資料庫叢集。

以下是建立多可用區域資料庫叢集須完成的先決條件。

**Topics**
+ [設定資料庫叢集的網路](#create-multi-az-db-cluster-prerequisites-VPC)
+ [其他先決條件](#create-multi-az-db-cluster-prerequisites-additional)

### 設定資料庫叢集的網路
<a name="create-multi-az-db-cluster-prerequisites-VPC"></a>

您只能在以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 中建立多可用區資料庫叢集。它必須位於至少 AWS 區域 具有三個可用區域的 中。您為資料庫叢集選擇的資料庫子網路群組必須至少包含三個可用區域。此設定可確保資料庫叢集中的每個資料庫執行個體都位於不同的可用區域。

若要在同一 VPC 中設定新資料庫叢集與 Amazon EC2 執行個體之間的連線，則可在建立資料庫叢集期間這麼做。若要在同一 VPC 中從 EC2 執行個體以外的資源連線到資料庫叢集，請手動設定網路連線。

**Topics**
+ [設定與 EC2 執行個體的自動網路連線](#create-multi-az-db-cluster-prerequisites-VPC-automatic)
+ [手動設定網路](#create-multi-az-db-cluster-prerequisites-VPC-manual)

#### 設定與 EC2 執行個體的自動網路連線
<a name="create-multi-az-db-cluster-prerequisites-VPC-automatic"></a>

當您建立多可用區域資料庫叢集時，您可以使用 AWS 管理主控台 來設定 EC2 執行個體與新資料庫叢集之間的連線。當您這樣做時，RDS 會自動設定您的 VPC 和網路設定。資料庫叢集會在與 EC2 執行個體相同的 VPC 中建立，讓 EC2 執行個體可以存取資料庫叢集。

以下是將 EC2 執行個體與資料庫叢集連接的要求：
+ 建立資料庫叢集 AWS 區域 之前，EC2 執行個體必須存在於 中。

  如果 中不存在 EC2 執行個體 AWS 區域，主控台會提供建立 EC2 執行個體的連結。
+ 建立資料庫執行個體的使用者必須擁有執行下列操作的許可：
  + `ec2:AssociateRouteTable` 
  + `ec2:AuthorizeSecurityGroupEgress` 
  + `ec2:AuthorizeSecurityGroupIngress` 
  + `ec2:CreateRouteTable` 
  + `ec2:CreateSubnet` 
  + `ec2:CreateSecurityGroup` 
  + `ec2:DescribeInstances` 
  + `ec2:DescribeNetworkInterfaces` 
  + `ec2:DescribeRouteTables` 
  + `ec2:DescribeSecurityGroups` 
  + `ec2:DescribeSubnets` 
  + `ec2:ModifyNetworkInterfaceAttribute` 
  + `ec2:RevokeSecurityGroupEgress` 

使用此選項建立私有資料庫叢集。資料庫叢集使用僅包含私有子網路的資料庫子網路群組，以限制對 VPC 內資源的存取。

若要將 EC2 執行個體連接至資料庫叢集，請在 **Create database** (建立資料庫) 頁面上的 **Connectivity** (連線) 區段，選擇 **Connect to an EC2 compute resource** (連線至 EC2 運算資源)。

![\[連線至 EC2 執行個體\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/ec2-set-up-connection-create.png)


當您選擇 **Connect to an EC2 compute resource** (連線至 EC2 運算資源) 時，RDS 會自動設定下列選項。除非您透過選擇 **Don't connect to an EC2 compute resource** (不要連線至 EC2 運算資源)，選擇不設定與 EC2 執行個體的連線，否則無法變更設定。


****  

| 主控台選項 | 自動設定 | 
| --- | --- | 
|  **Virtual Private Cloud (VPC)**  |  RDS 會將 VPC 設定為與 EC2 執行個體關聯的 VPC。  | 
|  **DB subnet group** (資料庫子網路群組)  | RDS 需要在相同可用區域中具有私有子網路的資料庫子網路群組作為 EC2 執行個體。如果存在符合此要求的資料庫子網路群組，則 RDS 會使用現有的資料庫子網路群組。依預設，此選項會設為 Automatic setup (自動設定)。當您選擇 **Automatic setup** (自動設定)，且沒有符合此需求的資料庫子網路群組時，則會發生下列動作。RDS 在三個可用區域中使用三個可用的私有子網路，其中一個可用區域與 EC2 執行個體相同。如果可用區域中無法使用私有子網路，RDS 會在可用區域中建立私有子網路。RDS 接著建立資料庫子網路群組。當私有子網路可用時，RDS 會使用與該子網路相關聯的路由表，並將其建立的任何子網路新增至此路由表。當沒有可用的私有子網路時，RDS 會建立沒有網際網路閘道存取權的路由表，並將其建立的子網路新增至路由表。RDS 也可讓您使用現有的資料庫子網路群組。如果想要使用您選擇的現有資料庫子網路群組，請選取 **Choose existing** (選擇現有的)。 | 
|  **公用存取**  |  RDS 選擇 **No** (否)，以便無法公開存取資料庫叢集。 為了安全起見，最佳實務是保持資料庫為私有，並確保無法從網際網路存取該資料庫。  | 
|  **VPC security group (firewall)** (VPC 安全群組 (防火牆))  |  RDS 會建立與資料庫叢集關聯的新安全群組。安全群組已命名為 `rds-ec2-n`，其中 `n` 是數字。此安全群組包含以 EC2 VPC 安全群組 (防火牆) 做為來源的傳入規則。與資料庫叢集關聯的此一安全群組可讓 EC2 執行個體存取資料庫叢集。 RDS 也會建立與 EC2 執行個體關聯的新安全群組。安全群組命名為 `ec2-rds-n`，其中 `n` 是數字。此安全群組包含傳出規則，並將資料庫叢集的 VPC 安全群組做為來源。此安全群組允許 EC2 執行個體將流量傳送到資料庫叢集。 您可以選擇 **Create New** (建立新的)，並輸入新安全群組的名稱，以新增其他的新安全群組。 您可以選擇 **Choose existing** (選擇現有)，然後選取要新增的安全群組，以新增現有的安全群組。  | 
|  **可用區域**  |  RDS 針對異地同步備份資料庫叢集部署中的一個資料庫執行個體選擇 EC2 執行個體的可用區域。RDS 會為其他兩個資料庫執行個體隨機選擇不同的可用區域。寫入器資料庫執行個體建立在與 EC2 執行個體相同的可用區域中。如果發生容錯移轉，且寫入器資料庫執行個體位於不同的可用區域，則可能會產生跨可用區域成本。  | 

如需這些設定的詳細資訊，請參閱 [建立多可用區域資料庫叢集的設定](#create-multi-az-db-cluster-settings)。

如果您在建立資料庫叢集之後變更這些設定，這些變更可能會影響 EC2 執行個體和資料庫叢集之間的連線。

#### 手動設定網路
<a name="create-multi-az-db-cluster-prerequisites-VPC-manual"></a>

若要在同一 VPC 中從 EC2 執行個體以外的資源連線到資料庫叢集，請手動設定網路連線。如果您使用 AWS 管理主控台 建立多可用區域資料庫叢集，您可以讓 Amazon RDS 自動為您建立 VPC。或者，您可以使用現有的 VPC 或為您的多可用區域資料庫叢集建立新的 VPC。在至少三個可用區域的每一個區域中，您的 VPC 必須有至少一個子網路，您才能與多可用區域資料庫叢集搭配使用。如需 VPC 的相關資訊，請參閱[Amazon VPC 和 Amazon RDS](USER_VPC.md)。

如果您沒有預設 VPC 或尚未建立 VPC，而且您不打算使用主控台，請執行下列動作：
+ 在您要部署資料庫叢集的 AWS 區域中，在至少三個可用區域中建立至少有一個子網路的 VPC。如需詳細資訊，請參閱[在 VPC 中使用資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md#Overview.RDSVPC.Create)。
+ 指定可授權連線到資料庫叢集的 VPC 安全群組。如需詳細資訊，請參閱[建立安全群組以存取在您的 VPC 中您的資料庫執行個體](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup)及[使用安全群組控制存取](Overview.RDSSecurityGroups.md)。
+ 指定 RDS 資料庫子網路群組，該子網路群組會在可由多可用區域資料庫叢集使用的 VPC 中，至少定義三個子網路。如需詳細資訊，請參閱[使用資料庫子網路群組](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)。

如需有關套用至多可用區域資料庫叢集的限制資訊，請參閱 [Amazon RDS 的多可用區域資料庫叢集的限制](multi-az-db-clusters-concepts.Limitations.md)。

如果您想要連線至與多可用區域資料庫叢集不在相同 VPC 中的資源，請參閱 [在 VPC 中存取資料庫執行個體的案例](USER_VPC.Scenarios.md) 中的適當案例。

### 其他先決條件
<a name="create-multi-az-db-cluster-prerequisites-additional"></a>

您必須考量下列其他先決條件，才能建立多可用區域資料庫叢集：
+ 若要為資料庫叢集量身打造組態參數，則必須使用所需的參數設定來指定資料庫叢集參數群組。如需建立或修改資料庫叢集參數群組的詳細資訊，請參閱 [多可用區域資料庫叢集的參數群組](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)。
+ 決定要為資料庫叢集指定的 TCP/IP 連接埠號碼。某些公司的防火牆會封鎖與這些預設連接埠的連線。如果您的公司防火牆會封鎖預設連接埠，請為您的資料庫叢集選擇另一個連接埠。資料庫叢集中的所有資料庫執行個體都使用相同的連接埠。
+ 如果資料庫的主要引擎版本已達到 RDS 標準支援結束日期，您必須使用延長支援 CLI 選項或 RDS API 參數。如需詳細資訊，請參閱「[建立多可用區域資料庫叢集的設定](#create-multi-az-db-cluster-settings) 中的 RDS 延長支援」。

## 建立資料庫叢集
<a name="create-multi-az-db-cluster-creating"></a>

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

### 主控台
<a name="create-multi-az-db-cluster-creating-console"></a>

您可以藉由選擇 **Availability and durability** (可用性與持久性) 區段中的 **Multi-AZ DB cluster** (多可用區域資料庫叢集)，建立多可用區域資料庫叢集。

**使用主控台建立多可用區域資料庫叢集**

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

1. 在 的右上角 AWS 管理主控台，選擇您要在 AWS 區域 其中建立資料庫叢集的 。

   如需 AWS 區域 支援多可用區域資料庫叢集的 相關資訊，請參閱 [Amazon RDS 的多可用區域資料庫叢集的限制](multi-az-db-clusters-concepts.Limitations.md)。

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

1. 選擇 **Create database** (建立資料庫)。

   若要建立多可用區域資料庫叢集，請確定已選取 **Standard Create (標準建立)** 且未選取 **Easy Create (輕鬆建立)**。

1. 在 **Engine type** (引擎類型) 中，選擇 **MySQL** 或 **PostgreSQL**。

1. 在 **Version (版本)** 中，選擇資料庫引擎版本。

   如需有關支援多可用區域資料庫叢集的資料庫引擎叢集的詳細資訊，請參閱 [Amazon RDS 的多可用區域資料庫叢集的限制](multi-az-db-clusters-concepts.Limitations.md)。

1. 在 **Templates (範本)** 中，選擇您的部署的適當範本。

1. 在 **Availability and durability** (可用性與持久性) 中，選擇 **Multi-AZ DB cluster** (多可用區域資料庫叢集)。  
![\[多可用區域資料庫叢集選擇\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-create.png)

1. 在 **DB cluster identifier (資料庫叢集識別符)** 中，輸入您的資料庫叢集的識別符。

1. 在 **Master username (主要使用者名稱)** 中，輸入主要使用者名稱，或保留預設設定。

1. 輸入您的主要密碼：

   1. 在 **Settings (設定)** 區段，開啟 **Credential Settings (登入資料設定)**。

   1. 如果您想要指定密碼，請清除 **Auto generate a password (自動產生密碼)** 方塊 (如果已選取)。

   1. (選用) 變更 **Master username (主要使用者名稱)** 值。

   1. 在 **Master password (主要密碼)** 和 **Confirm password (確認密碼)** 中輸入相同的密碼。

1. 在**資料庫執行個體類別**中，選擇資料庫執行個體類別。如需受支援資料庫執行個體類別的清單，請參閱[多可用區域資料庫叢集的執行個體類別可用性](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts.InstanceAvailability)。

1. (選用) 為此資料庫叢集設定與運算資源的連線。

   您可以在建立資料庫叢集期間設定 Amazon EC2 執行個體和新資料庫叢集之間的連線。如需詳細資訊，請參閱[設定與 EC2 執行個體的自動網路連線](#create-multi-az-db-cluster-prerequisites-VPC-automatic)。

1. 在 **VPC 安全群組 (防火牆)** 下的**連線能力**區段中，如果您選取**建立新的**，則系統會建立 VPC 安全群組並提供傳入規則，允許本機電腦的 IP 地址存取資料庫。

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

1. 選擇 **Create database** (建立資料庫)。

   如果您選擇使用自動產生的密碼，**View credential details** (檢視登入資料詳細資訊) 按鈕會出現在 **Databases** (資料庫) 頁面。

   若要檢視資料庫叢集的主要使用者名稱和密碼，請選擇 **View credential details** (檢視登入資料詳細資訊)。

   如要以主要使用者的身分連接至資料庫叢集，請使用出現的使用者名稱和密碼。
**重要**  
您無法再次檢視主要使用者密碼。

1. 在 **Databases** (資料庫) 中，選擇新的資料庫叢集的名稱。

在 RDS 主控台上，新資料庫叢集的詳細資訊即會出現。在資料庫叢集建立完成且可供使用之前，資料庫叢集會處於 **Creating (建立中)** 狀態。狀態變更為 **Available (可用)** 時，您便可連線至資料庫叢集。根據資料庫叢集類別和配置儲存，新的資料庫叢集可能需要幾分鐘才能使用。

### AWS CLI
<a name="create-multi-az-db-cluster-creating-cli"></a>

使用 建立多可用區域資料庫叢集之前 AWS CLI，請務必滿足必要的先決條件。其中包括建立 VPC 和 RDS 資料庫子網路群組。如需詳細資訊，請參閱[資料庫叢集先決條件](#create-multi-az-db-cluster-prerequisites)。

若要使用 建立多可用區域資料庫叢集 AWS CLI，請呼叫 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 命令。請指定 `--db-cluster-identifier`。對於 `--engine` 選項，指定 `mysql` 或 `postgres`。

如需每個選項的詳細資訊，請參閱[建立多可用區域資料庫叢集的設定](#create-multi-az-db-cluster-settings)。

如需支援多可用區域資料庫叢集的、 AWS 區域資料庫引擎和資料庫引擎版本的相關資訊，請參閱 [Amazon RDS 的多可用區域資料庫叢集的限制](multi-az-db-clusters-concepts.Limitations.md)。

`create-db-cluster` 命令會建立資料庫叢集的寫入器資料庫執行個體和兩個讀取器資料庫執行個體。每個資料庫執行個體位於不同的可用區域。

例如，下列命令會建立新的 MySQL 8.0 多可用區域資料庫叢集，名為 `mysql-multi-az-db-cluster`。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
 1. aws rds create-db-cluster \
 2.    --db-cluster-identifier mysql-multi-az-db-cluster \
 3.    --engine mysql \
 4.    --engine-version 8.0.32  \
 5.    --master-username admin \
 6.    --manage-master-user-password  \
 7.    --port 3306 \
 8.    --backup-retention-period 1  \
 9.    --db-subnet-group-name default \
10.    --allocated-storage 4000 \
11.    --storage-type io1 \
12.    --iops 10000 \
13.    --db-cluster-instance-class db.m5d.xlarge
```
在 Windows 中：  

```
 1. aws rds create-db-cluster ^
 2.    --db-cluster-identifier mysql-multi-az-db-cluster ^
 3.    --engine mysql ^
 4.    --engine-version 8.0.32 ^
 5.    --manage-master-user-password ^
 6.    --master-username admin ^
 7.    --port 3306 ^
 8.    --backup-retention-period 1 ^
 9.    --db-subnet-group-name default ^
10.    --allocated-storage 4000 ^
11.    --storage-type io1 ^
12.    --iops 10000 ^
13.    --db-cluster-instance-class db.m5d.xlarge
```

下列命令會建立 PostgreSQL 13.4 多可用區域資料庫叢集，名為 `postgresql-multi-az-db-cluster`。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
 1. aws rds create-db-cluster \
 2.    --db-cluster-identifier postgresql-multi-az-db-cluster \
 3.    --engine postgres \
 4.    --engine-version 13.4 \
 5.    --manage-master-user-password \
 6.    --master-username postgres \
 7.    --port 5432 \
 8.    --backup-retention-period 1  \
 9.    --db-subnet-group-name default \
10.    --allocated-storage 4000 \
11.    --storage-type io1 \
12.    --iops 10000 \
13.    --db-cluster-instance-class db.m5d.xlarge
```
在 Windows 中：  

```
 1. aws rds create-db-cluster ^
 2.    --db-cluster-identifier postgresql-multi-az-db-cluster ^
 3.    --engine postgres ^
 4.    --engine-version 13.4 ^
 5.    --manage-master-user-password ^
 6.    --master-username postgres ^
 7.    --port 5432 ^
 8.    --backup-retention-period 1 ^
 9.    --db-subnet-group-name default ^
10.    --allocated-storage 4000 ^
11.    --storage-type io1 ^
12.    --iops 10000 ^
13.    --db-cluster-instance-class db.m5d.xlarge
```

### RDS API
<a name="create-multi-az-db-cluster-creating-api"></a>

在可以使用 RDS API 建立多可用區域資料庫叢集之前，您必須先滿足所需的先決條件，例如建立 VPC 和 RDS 資料庫子網路群組。如需詳細資訊，請參閱 [資料庫叢集先決條件](#create-multi-az-db-cluster-prerequisites)。

若要使用 RDS API 建立多可用區域資料庫叢集，請呼叫 [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 操作。請指定 `DBClusterIdentifier`。對於 `Engine` 參數，指定 `mysql` 或 `postgresql`。

如需每個選項的詳細資訊，請參閱[建立多可用區域資料庫叢集的設定](#create-multi-az-db-cluster-settings)。

`CreateDBCluster` 操作會建立資料庫叢集的寫入器資料庫執行個體和兩個讀取器資料庫執行個體。每個資料庫執行個體位於不同的可用區域。

## 建立多可用區域資料庫叢集的設定
<a name="create-multi-az-db-cluster-settings"></a>

如需當您建立多可用區域資料庫叢集時所選擇設定的詳細資訊，請參閱下表。如需 AWS CLI 選項的詳細資訊，請參閱 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)。如需 RDS API 參數的詳細資訊，請參閱 [ CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)。


| 主控台設定 | 設定說明 | CLI 選項和 RDS API 參數 | 
| --- | --- | --- | 
|  **配置儲存**  |  針對資料庫叢集中每個資料庫執行個體配置的儲存量 (以 GiB 為單位)。如需詳細資訊，請參閱 [Amazon RDS 資料庫執行個體儲存體](CHAP_Storage.md)。  |  **CLI 選項：** `--allocated-storage` **API 參數：**  `AllocatedStorage`  | 
| Auto minor version upgrade (自動次要版本升級) |  **Enable auto minor version upgrade (啟用自動次要版本升級)**，讓資料庫叢集自動在可用時接收偏好次要資料庫引擎版本升級。Amazon RDS 會在維護時段執行自動次要版本升級。  |  **CLI 選項：** `--auto-minor-version-upgrade` `--no-auto-minor-version-upgrade` **API 參數：** `AutoMinorVersionUpgrade`  | 
|  Backup retention period (備份保留期間)  |  您想要資料庫叢集之自動備份保留的天數。對於多可用區域資料庫叢集，此值必須設定為 **1** 或以上。 如需詳細資訊，請參閱 [備份簡介](USER_WorkingWithAutomatedBackups.md)。  |  **CLI 選項：** `--backup-retention-period` **API 參數：** `BackupRetentionPeriod`  | 
|  備份時段 |  Amazon RDS 自動備份資料庫叢集的時段。除非要在特定時段備份資料庫，否則請使用預設值 **No Preference (無偏好設定)**。 如需詳細資訊，請參閱 [備份簡介](USER_WorkingWithAutomatedBackups.md)。  |  **CLI 選項：** `--preferred-backup-window` **API 參數：** `PreferredBackupWindow`  | 
|  **憑證授權單位**  |  資料庫叢集所使用之伺服器憑證的憑證授權單位 (CA)。 如需詳細資訊，請參閱[使用 SSL/TLS 加密與資料庫執行個體或叢集的連線](UsingWithRDS.SSL.md)。  |  **CLI 選項：** `--ca-certificate-identifier` **RDS API 參數：** `CACertificateIdentifier`  | 
|  Copy tags to snapshots (將標籤複製到快照)  |  此選項可在您建立快照時將任何資料庫叢集標籤複製到某個資料庫快照。 如需詳細資訊，請參閱 [標記 Amazon RDS 資源](USER_Tagging.md)。  |  **CLI 選項：** `-copy-tags-to-snapshot` `-no-copy-tags-to-snapshot` **RDS API 參數：** `CopyTagsToSnapshot`  | 
|  Database authentication (資料庫身分驗證)  |  您想要使用的資料庫身分驗證選項。 選擇 **Password authentication (密碼身分驗證)**，僅使用資料庫密碼驗證資料庫使用者。 選擇 **Password and IAM DB authentication** (密碼和 IAM 資料庫身分驗證)，透過使用者和角色搭配資料庫密碼和使用者憑證來驗證資料庫使用者。如需詳細資訊，請參閱[適用於 MariaDB、MySQL 和 PostgreSQL 的 IAM 資料庫身分驗證](UsingWithRDS.IAMDBAuth.md)。  |  **CLI 選項：** `--enable-iam-database-authentication` `--no-enable-iam-database-authentication` **RDS API 參數：** `EnableIAMDatabaseAuthentication`  | 
|  Database port (資料庫連線埠)  |  您想要透過其存取資料庫叢集的連接埠。會顯示預設連接埠。 連接埠在建立資料庫叢集之後就無法變更。 某些公司的防火牆會封鎖與這些預設連接埠的連線。如果您的公司防火牆會封鎖預設連接埠，請為您的資料庫叢集輸入另一個連接埠。  |  **CLI 選項：** `--port` **RDS API 參數：** `Port`  | 
|  DB cluster identifier (資料庫叢集識別符)  |  資料庫叢集的名稱。以您為內部部署伺服器命名的相同方，為您的資料庫叢集命名。您的資料庫叢集識別符最多可包含 63 個英數字元，而且對於您選擇的 AWS 區域中的帳戶來說必須是唯一的。  |  **CLI 選項：** `--db-cluster-identifier` **RDS API 參數：** `DBClusterIdentifier`  | 
|  DB instance class (資料庫執行個體類別)  |  多可用區域資料庫叢集中每個資料庫執行個體的運算和記憶體容量，例如 `db.m5d.xlarge`。 可能的話，選擇足夠大的資料庫執行個體類別，讓一般查詢工作集可以保留在記憶體中。當工作集保留在記憶體中時，系統可以避免寫入至磁碟，因而可改善效能。 如需受支援資料庫執行個體類別的清單，請參閱[多可用區域資料庫叢集的執行個體類別可用性](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts.InstanceAvailability)。  |  **CLI 選項：** `--db-cluster-instance-class` **RDS API 參數：** `DBClusterInstanceClass`  | 
|  **DB cluster parameter group (資料庫叢集參數群組)**  |  要與資料庫叢集建立關聯的資料庫叢集參數群組。 如需詳細資訊，請參閱 [多可用區域資料庫叢集的參數群組](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)。  |  **CLI 選項：** `--db-cluster-parameter-group-name` **RDS API 參數：** `DBClusterParameterGroupName`  | 
|  DB engine version (資料庫引擎版本)  |  您要使用的資料庫引擎版本。  |  **CLI 選項：** `--engine-version` **RDS API 參數：** `EngineVersion`  | 
|  DB cluster parameter group (資料庫叢集參數群組)  |  資料庫執行個體參數群組與資料庫執行個體建立關聯。 如需詳細資訊，請參閱[多可用區域資料庫叢集的參數群組](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)。  |  **CLI 選項：** `--db-cluster-parameter-group-name` **RDS API 參數：** `DBClusterParameterGroupName`  | 
|  DB subnet group (資料庫子網路群組)  | 您要用於資料庫叢集的資料庫子網路群組。選取 Choose existing (選擇現有的) 來使用現有的資料庫子網路群組。然後，從 Existing DB subnet groups (現有資料庫子網路群組) 下拉式清單中選擇所需的子網路群組。選擇 **Automatic setup** (自動設定) 以讓 RDS 選取相容的資料庫子網路群組。如果不存在，RDS 會為您的叢集建立新的子網路群組。如需詳細資訊，請參閱[使用資料庫子網路群組](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)。 |  **CLI 選項：** `--db-subnet-group-name` **RDS API 參數：** `DBSubnetGroupName`  | 
| 刪除保護 |  **啟用刪除保護**可避免您的資料庫叢集遭意外刪除。如果您使用主控台建立生產資料庫叢集，預設會啟用刪除保護功能。 如需詳細資訊，請參閱 [刪除資料庫執行個體](USER_DeleteInstance.md)。  |  **CLI 選項：** `--deletion-protection` `--no-deletion-protection` **RDS API 參數：** `DeletionProtection`  | 
|  加密  |  **Enable Encryption (啟用加密)** 以開啟此資料庫叢集的靜態加密。 多可用區域資料庫叢集的加密預設為開啟。 如需詳細資訊，請參閱 [加密 Amazon RDS 資源](Overview.Encryption.md)。  |  **CLI 選項：** `--kms-key-id` `--storage-encrypted` `--no-storage-encrypted` **RDS API 參數：** `KmsKeyId` `StorageEncrypted`  | 
|  Enhanced Monitoring (增強型監控)  |  **Enable enhanced monitoring (啟用增強型監控)** 以針對資料庫叢集執行所在的作業系統開啟指標即時收集。 如需詳細資訊，請參閱 [使用增強型監控來監控作業系統指標](USER_Monitoring.OS.md)。  |  **CLI 選項：** `--monitoring-interval` `--monitoring-role-arn` **RDS API 參數：** `MonitoringInterval` `MonitoringRoleArn`  | 
|  初始資料庫名稱  |  資料庫叢集上資料庫的名稱。如果您未提供名稱，Amazon RDS 不會在 MySQL 的資料庫叢集上建立資料庫。不過，它確實會在 PostgreSQL 的資料庫叢集上建立資料庫。名稱不能是資料庫引擎的保留字。它具有其他限制，取決於資料庫引擎。 MySQL： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) PostgreSQL： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html)  |  **CLI 選項：** `--database-name` **RDS API 參數：** `DatabaseName`  | 
|  **Log exports (日誌匯出)**  |  要發佈到 Amazon CloudWatch Logs 的資料庫日誌檔類型。 如需詳細資訊，請參閱 [將資料庫日誌發佈至 Amazon CloudWatch Logs](USER_LogAccess.Procedural.UploadtoCloudWatch.md)。  |  **CLI 選項：** `-enable-cloudwatch-logs-exports` **RDS API 參數：** `EnableCloudwatchLogsExports`  | 
|  Maintenance window (維護時段)  |  將擱置中修改套用至資料庫叢集的 30 分鐘時段。如果不在意時段，請選擇 **No Preference (無偏好設定)**。 如需詳細資訊，請參閱 [Amazon RDS 維護時段](USER_UpgradeDBInstance.Maintenance.md#Concepts.DBMaintenance)。  |  **CLI 選項：** `--preferred-maintenance-window` **RDS API 參數：** `PreferredMaintenanceWindow`  | 
|  在 中管理主登入資料 AWS Secrets Manager  |  選取 **Manage master credentials in AWS Secrets Manager** (管理 AWS Secrets Manager中的主要憑證) 以秘密管理 Secrets Manager 中的主要使用者密碼。 選擇性地選擇要用來保護機密的 KMS 金鑰。從您帳戶中的 KMS 金鑰進行選擇，或輸入來自不同帳戶的金鑰。 如需詳細資訊，請參閱[使用 Amazon RDS 和 進行密碼管理 AWS Secrets Manager](rds-secrets-manager.md)。  |  **CLI 選項：** `--manage-master-user-password \| --no-manage-master-user-password` `--master-user-secret-kms-key-id` **RDS API 參數：** `ManageMasterUserPassword` `MasterUserSecretKmsKeyId`  | 
|  Master password (主要密碼)  |  主要使用者帳戶的密碼。  |  **CLI 選項：** `--master-user-password` **RDS API 參數：** `MasterUserPassword`  | 
|  主要使用者名稱  |  做為具有所有資料庫權限之主要使用者名稱來登入資料庫叢集的名稱。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) 您無法在多可用區域資料庫叢集建立之後變更主要使用者名稱。 如需授予主要使用者權限的詳細資訊，請參閱 [主要使用者帳戶權限](UsingWithRDS.MasterAccounts.md)。  |  **CLI 選項：** `--master-username` **RDS API 參數：** `MasterUsername`  | 
| Performance Insights (績效詳情) |  **Enable Performance Insights (啟用績效詳情)** 會監控您的資料庫叢集負載，讓您可分析資料庫效能並對其進行疑難排解。 選擇保留期間，用來判斷要保留多少績效詳情資料歷史記錄。保留設定為**預設值 (7 天)**。若要更長時間保留績效資料，請指定 1 - 24 個月。如需保留期間的詳細資訊，請參閱 [Performance Insights 的定價和資料保留](USER_PerfInsights.Overview.cost.md)。 選擇一個 KMS 金鑰，用來保護用於加密此資料庫磁碟區的金鑰。從您帳戶中的 KMS 金鑰進行選擇，或輸入來自不同帳戶的金鑰。 如需詳細資訊，請參閱[在 Amazon RDS 上使用績效詳情監控資料庫負載](USER_PerfInsights.md)。  |  **CLI 選項：** `--enable-performance-insights` `--no-enable-performance-insights` `--performance-insights-retention-period` `--performance-insights-kms-key-id` **RDS API 參數：** `EnablePerformanceInsights` `PerformanceInsightsRetentionPeriod` `PerformanceInsightsKMSKeyId`  | 
|  佈建 IOPS  |  初始配置給資料庫叢集的佈建IOPS數量（每秒輸入/輸出作業）。  |  **CLI 選項：** `--iops` **RDS API 參數：** `Iops`  | 
|  公用存取  |  **Publicly accessible (可公開存取)** 用來給予資料庫叢集一個公有 IP 地址，這表示可在 VPC 外加以存取。資料庫叢集也必須位於 VPC 的公有子網路中，才能公開存取。 **Not publicly accessible (不可公開存取)** 將使得資料庫叢集只能從 VPC 內部存取。 如需詳細資訊，請參閱 [在 VPC 中的網際網路中隱藏資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Hiding)。 若要從其 VPC 外部連線到資料庫叢集，資料庫叢集必須可公開存取。此外，必須使用資料庫叢集安全群組的傳入規則授予存取權，且必須符合其他需求。如需詳細資訊，請參閱[無法連線至 Amazon RDS 資料庫執行個體](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)。 如果您的資料庫叢集無法公開存取，您可以使用 AWS Site-to-Site連線或 Direct Connect 連線從私有網路存取。如需詳細資訊，請參閱[網際網路流量隱私權](inter-network-traffic-privacy.md)。  |  **CLI 選項：** `--publicly-accessible` `--no-publicly-accessible` **RDS API 參數：** `PubliclyAccessible`  | 
| RDS 延長支援 | 選取**啟用 RDS 延長支援**，以允許支援的主要引擎版本在超過 RDS 標準支援結束日期後繼續執行。 當您建立資料庫叢集時，Amazon RDS 預設為 RDS 延伸支援。若要防止在 RDS 標準支援日期結束後建立新的資料庫叢集，並避免 RDS 延長支援的費用，請停用此設定。在 RDS 延長支援定價開始日期之前，您現有的資料庫叢集不會產生費用。 如需詳細資訊，請參閱[使用 Amazon RDS 的 Amazon RDS 延伸支援](extended-support.md)。 |  **CLI 選項：** `--engine-lifecycle-support` **RDS API 參數：** `EngineLifecycleSupport`  | 
|  **Storage throughput** (訊息輸送量)  |  資料庫叢集的儲存體輸送量值。只有在您針對儲存體類型選擇一般用途 SSD (gp3) 時，此設定才可見。 此設定無法設定，且會根據您指定的 IOPS 自動設定。 如需詳細資訊，請參閱[gp3 儲存體 (建議)](CHAP_Storage.md#gp3-storage)。  |  此值會自動計算，且沒有 CLI 選項。  | 
|  **RDS Proxy**  |  選擇 **Create an RDS Proxy** (建立 RDS 代理)，為您的資料庫叢集建立一個代理。Amazon RDS 會自動為代理建立 IAM 角色和 Secrets Manager 機密。  |  無法在建立資料庫叢集時使用。  | 
|  儲存體類型  |  資料庫叢集的儲存類型。 僅支援一般用途 SSD (gp3)、佈建 IOPS (io1) 和佈建 IOPS SSD (io2) 儲存體。 如需詳細資訊，請參閱[Amazon RDS 儲存類型](CHAP_Storage.md#Concepts.Storage)。  |  **CLI 選項：** `--storage-type` **RDS API 參數：** `StorageType`  | 
|  Virtual Private Cloud (VPC)  |  要與此資料庫叢集相關聯的 VPC (以 Amazon VPC 服務為基礎)。 如需詳細資訊，請參閱[Amazon VPC 和 Amazon RDS](USER_VPC.md)。  |  對於 CLI 及 API，您指定 VPC 安全性群組 ID。  | 
|  VPC security group (firewall) (VPC 安全群組 (防火牆))  |  要與資料庫叢集建立關聯的安全群組。 如需詳細資訊，請參閱 [VPC 安全群組概觀](Overview.RDSSecurityGroups.md#Overview.RDSSecurityGroups.VPCSec)。  |  **CLI 選項：** `--vpc-security-group-ids` **RDS API 參數：** `VpcSecurityGroupIds`  | 

## 建立多可用區域資料庫叢集時不適用的設定
<a name="create-multi-az-db-cluster-settings-not-applicable"></a>

 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)和 RDS API 操作中的下列設定[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)不適用於多可用區域資料庫叢集。

您也無法在主控台中為多可用區域資料庫叢集指定這些設定。


| AWS CLI 設定 | RDS API 設定 | 
| --- | --- | 
|  `--availability-zones`  |  `AvailabilityZones`  | 
|  `--backtrack-window`  |  `BacktrackWindow`  | 
|  `--character-set-name`  |  `CharacterSetName`  | 
|  `--domain`  |  `Domain`  | 
|  `--domain-iam-role-name`  |  `DomainIAMRoleName`  | 
|  `--enable-global-write-forwarding \| --no-enable-global-write-forwarding`  |  `EnableGlobalWriteForwarding`  | 
|  `--enable-http-endpoint \| --no-enable-http-endpoint`  |  `EnableHttpEndpoint`  | 
|  `--global-cluster-identifier`  |  `GlobalClusterIdentifier`  | 
|  `--option-group-name`  |  `OptionGroupName`  | 
|  `--pre-signed-url`  |  `PreSignedUrl`  | 
|  `--replication-source-identifier`  |  `ReplicationSourceIdentifier`  | 
|  `--scaling-configuration`  |  `ScalingConfiguration`  | 

# 連線至 Amazon RDS 的多可用區域資料庫叢集
<a name="multi-az-db-clusters-concepts-connection-management"></a>

 多可用區域資料庫叢集具有三個資料庫執行個體，而非單一資料庫執行個體。每個連線會由特定資料庫執行個體處理。連線到多可用區域資料庫叢集時，您指定的主機名稱和連接埠會指向稱為*端點*的完全限定網域名稱。多可用區域資料庫叢集會使用端點機制，抽象處理這些連線，因此您不需準確指定資料庫叢集中要連線的資料庫執行個體。因此，在某些資料庫執行個體無法使用時，您不需將所有主機名稱硬式編碼或編寫您自己的邏輯，就可以重新路由連線。

寫入器端點會連接至資料庫叢集的寫入器資料庫執行個體 (支援讀取和寫入操作)。讀取器端點連接到僅支援讀取操作的兩個讀取器資料庫執行個體中的任何一個。

 使用端點，您可以根據您的使用案例將每個連線對應至適當的資料庫執行個體或資料庫執行個體群組。例如，若要執行 DDL 和 DML 陳述式，您可以連接至屬於寫入器資料庫執行個體的任何資料庫執行個體。若要執行查詢，您可以連接至讀取器端點，而多可用區域資料庫叢集會在所有讀取器資料庫執行個體間自動管理連線。針對診斷或調校，您可以連接至特定資料庫執行個體端點來檢查關於特定資料庫執行個體的詳細資訊。

如需連線至資料庫執行個體的詳細資訊，請參閱 [連接至 Amazon RDS 資料庫執行個體](CHAP_CommonTasks.Connect.md)。

如需連線至多可用性區域資料庫叢集的詳細資訊，請參閱下列主題。

**主題**
+ [叢集端點](#multi-az-db-clusters-concepts-connection-management-endpoints-cluster)
+ [讀取器端點](#multi-az-db-clusters-concepts-connection-management-endpoints-reader)
+ [執行個體端點](#multi-az-db-clusters-concepts-connection-management-endpoints-instance)
+ [高可用性連線](#multi-az-db-clusters-concepts-connection-management-endpoints-ha)
+ [使用 Amazon RDS 的 AWS 驅動程式連線至多可用區域資料庫叢集使用 Amazon Web Services (AWS) JDBC 驅動程式連線至多可用區域資料庫叢集](maz-cluster-connect-drivers.md)

## 多可用區域資料庫叢集端點的類型
<a name="multi-az-db-clusters-concepts-connection-management-endpoint-types"></a>

 端點代表包含主機地址的唯一識別符。下列類型的端點可從多可用區域資料庫叢集取得。

**叢集端點**  
 多可用區域資料庫叢集的*叢集端點* (或*寫入器端點*) 會連接至該資料庫叢集的目前寫入器資料庫執行個體。此端點是唯一可執行寫入操作 (如 DDL 和 DML 陳述式) 的端點。此端點也可以執行讀取操作。  
 每個多可用區域資料庫叢集具有一個叢集端點和一個寫入器資料庫執行個體。  
 您會對資料庫叢集上的所有寫入操作，包括插入、更新、刪除和 DDL 變更使用該叢集端點。您也可以對讀取操作 (例如查詢) 使用叢集端點。  
 如果資料庫叢集目前的寫入器資料庫執行個體失敗，多可用區域資料庫叢集會自動容錯移轉至新的寫入器資料庫執行個體。容錯移轉期間，資料庫叢集會繼續從新的寫入器資料庫執行個體對叢集端點提供連接請求，將對服務的中斷降到最低。  
 下例示範多可用區域資料庫叢集的叢集端點。  
 `mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com`   
如需有關連線至叢集端點的詳細資訊，請參閱 [叢集端點](#multi-az-db-clusters-concepts-connection-management-endpoints-cluster)。

**讀取器端點**  
 多可用區域資料庫叢集的*讀取器端點*可為資料庫叢集的唯讀連線提供支援。對讀取操作 (例如 `SELECT` 查詢) 使用讀取器端點。藉由在讀取器資料庫執行個體上處理這些陳述式，此端點可降低寫入器資料庫執行個體上的額外負荷。它也可協助叢集擴展處理同時 `SELECT` 查詢的能力。每個多可用區域資料庫叢集有一個讀取器端點。  
 讀取器端點會將每個連線請求傳送到其中一個讀取器資料庫執行個體。當您針對工作階段使用讀取器端點時，您只能執行唯讀陳述式，例如該工作階段中的 `SELECT`。  
 下列範例說明多可用區域資料庫叢集的讀取器端點。讀取器端點的僅供讀取的意圖由叢集端點名稱內的 `-ro` 表示。  
 `mydbcluster.cluster-ro-123456789012.us-east-1.rds.amazonaws.com`   
如需有關連線至讀取器端點的詳細資訊，請參閱 [讀取器端點](#multi-az-db-clusters-concepts-connection-management-endpoints-reader)。

**執行個體端點**  
 *執行個體端點*會連接至多可用區域資料庫叢集內的特定資料庫執行個體。資料庫叢集中的每個資料庫執行個體都有自己唯一的執行個體端點。因此，資料庫叢集目前的寫入器資料庫執行個體會有一個執行個體端點，而資料庫叢集中的每個讀取器資料庫執行個體也都會有一個執行個體端點。  
 執行個體端點透過與資料庫叢集的連接提供直接控制。此控制可以協助您處理使用叢集端點或讀取器端點可能不適當的案例。例如，根據工作負載類型而定，您的用戶端應用程式可能要更精細的負載平衡。在此情況下，您可以設定多個用戶端來連接至資料庫叢集中的不同讀取器資料庫執行個體，以分配讀取工作負載。  
 下列範例說明多可用區域資料庫叢集中資料庫執行個體的執行個體端點。  
 `mydbinstance.123456789012.us-east-1.rds.amazonaws.com`   
如需連線至執行個體端點的詳細資訊，請參閱 [執行個體端點](#multi-az-db-clusters-concepts-connection-management-endpoints-instance)。

## 檢視端點
<a name="multi-az-db-clusters-concepts-connection-management-viewing"></a>

使用 主控台 AWS CLI或 Amazon RDS API 來檢視叢集、讀取器和執行個體端點。

------
#### [ Console ]

 在 中 AWS 管理主控台，您會在每個多可用區域資料庫叢集的詳細資訊頁面上看到叢集端點和讀取器端點。您可以在每個資料庫執行個體的詳細資訊頁面中查看執行個體端點。

------
#### [ AWS CLI ]

使用 AWS CLI，您會在 [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 命令的輸出中看到寫入器和讀取器端點。例如，下列命令會顯示目前 AWS 區域中所有叢集的端點屬性。

```
aws rds describe-db-cluster-endpoints
```

------
#### [ Amazon RDS API ]

 使用 Amazon RDS API，您可以呼叫 [DescribeDBClusterEndpoints](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusterEndpoints.html) 動作來擷取端點。輸出也會顯示 Amazon Aurora 資料庫叢集端點 (如果存在)。

------

## 叢集端點
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-cluster"></a>

每個多可用區域叢集有單一內建叢集端點，其名稱和其他屬性是由 Amazon RDS 管理。您無法建立、刪除或修改這類型的端點。

您會在管理資料庫叢集、執行擷取、轉換、載入 (ETL) 操作，或是開發和測試應用程式時使用叢集端點。叢集端點會連接至叢集的寫入器資料庫執行個體。寫入器資料庫執行個體是您可以建立資料表和索引、執行 `INSERT` 陳述式，以及執行其他 DDL 和 DML 操作的唯一資料庫執行個體。

叢集端點所指向的實體 IP 地址，會在容錯移轉機制將新資料庫執行個體提升為叢集的資料庫執行個體時變更。如果您使用任何形式的連接集區或其他多工，請準備清空或降低任何快取的 DNS 資訊的存留時間。這麼做可確保您不會嘗試對變得無法使用或在容錯移轉之後現在為唯讀的資料庫執行個體建立讀寫連線。

## 讀取器端點
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-reader"></a>

您可以為多可用區域資料庫叢集的唯讀連接使用讀取器端點。此端點可協助您的資料庫叢集處理查詢密集型工作負載。讀取器端點是您提供給應用程式以在叢集上執行報告或其他唯讀操作的端點。讀取器端點會將連線傳送到多可用區域資料庫叢集中的可用讀取器資料庫執行個體。

 每個多可用區域叢集有單一內建讀取器端點，其名稱和其他屬性是由 Amazon RDS 管理。您無法建立、刪除或修改這類型的端點。

## 執行個體端點
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-instance"></a>

多可用區域資料庫叢集中的每個資料庫執行個體會有其自己的內建執行個體端點，其名稱和其他屬性是由 Amazon RDS 管理。您無法建立、刪除或修改這類型的端點。透過多可用區域資料庫叢集，您通常會比執行個體端點更常使用寫入器和讀取器端點。

在日常操作中，您使用執行個體端點的主要方式是用來診斷會影響多可用區域資料庫叢集中特定資料庫執行個體的容量或效能問題。連接至特定資料庫執行個體時，您可以檢查其狀態變數、指標等等。這麼做可幫助您判斷該資料庫執行個體中所發生情況，與叢集中其他資料庫執行個體所發生情況的差異。

## 高可用性連線
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-ha"></a>

若為高可用性很重要的多可用區域資料庫叢集，請針對讀寫或一般用途連線使用寫入器端點，以及針對唯讀連線使用讀取器端點。寫入者和讀取者端點比執行個體端點更能善加管理資料庫執行個體容錯移轉。與執行個體端點不同的是，如果叢集中的資料庫執行個體變得無法使用，寫入者和讀取者端點會自動變更它們要連線到哪個資料庫執行個體。

 如果資料庫叢集的寫入器資料庫執行個體失敗，Amazon RDS 會自動容錯移轉至新的寫入器資料庫執行個體。它藉由將讀取器資料庫執行個體升級為新的寫入器資料庫執行個體來執行這個操作。如果發生容錯移轉，您可以使用寫入器端點來重新連接至新提升的寫入器資料庫執行個體。或者您可以使用讀取器端點來重新連接至資料庫叢集中的其中一個讀取器資料庫執行個體。在容錯移轉期間，在讀取器資料庫執行個體提升為新的寫入器資料庫執行個體之後，讀取器端點可能會短暫直接連接至資料庫叢集的新寫入器資料庫執行個體。如果您要設計自己的應用程式邏輯來管理執行個體端點的連線，則可手動或以程式設計方式探索資料庫叢集中可用資料庫執行個體的結果集。

# 使用 Amazon RDS 的 AWS 驅動程式連線至多可用區域資料庫叢集
<a name="maz-cluster-connect-drivers"></a>

驅動程式 AWS 套件旨在支援更快的切換和容錯移轉時間，以及使用 AWS Secrets Manager AWS Identity and Access Management (IAM) 和聯合身分進行身分驗證。 AWS 驅動程式依賴監控資料庫叢集狀態，並注意叢集拓撲以判斷新的寫入器。相較於開放原始碼驅動程式的數十秒，此方法可將切換和容錯移轉時間縮短為短短幾秒。

隨著推出新的服務功能，驅動程式 AWS 套件的目標是內建支援這些服務功能。

## 使用 Amazon Web Services (AWS) JDBC 驅動程式連線至多可用區域資料庫叢集
<a name="maz-cluster-connect-jdbc"></a>

Amazon Web Services (AWS) JDBC 驅動程式設計為進階 JDBC 包裝函式，可協助應用程式利用叢集資料庫的功能。此包裝函式是現有 JDBC 驅動程式的補充和延伸功能。驅動程式與下列社群驅動程式相容：
+ MySQL Connector/J。
+ MariaDB 連接器/J
+ pgJDBC

若要安裝 AWS JDBC 驅動程式，請附加 AWS JDBC 驅動程式 .jar 檔案 （位於應用程式 `CLASSPATH`)，並保留對個別社群驅動程式的參考。更新個別的連線 URL 字首，如下所示：
+ `jdbc:mysql://` 至 `jdbc:aws-wrapper:mysql://`
+ `jdbc:mariadb://` 至 `jdbc:aws-wrapper:mariadb://`
+ `jdbc:postgresql://` 至 `jdbc:aws-wrapper:postgresql://`

如需 AWS JDBC 驅動程式的詳細資訊和完整的使用說明，請參閱 [Amazon Web Services (AWS) JDBC 驅動程式 GitHub 儲存庫](https://github.com/awslabs/aws-advanced-jdbc-wrapper)。

## 使用 Amazon Web Services (AWS) Python 驅動程式連線至多可用區域資料庫叢集
<a name="maz-cluster-connect-py"></a>

Amazon Web Services (AWS) Python 驅動程式設計為進階 Python 包裝函式。此包裝函式是開放原始碼 Psycopg 驅動程式的補充和延伸功能。 AWS Python 驅動程式支援 Python 3.8 版和更新版本。您可以使用 `pip` 命令以及`psycopg`開放原始碼`aws-advanced-python-wrapper`套件來安裝套件。

如需 AWS Python 驅動程式的詳細資訊和完整的使用說明，請參閱 [Amazon Web Services (AWS) Python Driver GitHub 儲存庫](https://github.com/awslabs/aws-advanced-python-wrapper)。

# 自動連線 AWS 運算資源和 Amazon RDS 的多可用區域資料庫叢集
<a name="multi-az-compute-rds-connect"></a>

您可以自動連線多可用區域資料庫叢集和 AWS 運算資源，例如 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和 AWS Lambda 函數。

下列主題提供設定網路設定、安全群組和連線參數的詳細說明，以在多可用區域資料庫叢集部署中建立與 Amazon RDS 資料庫執行個體的可靠連線。他們專注於最佳化與多可用區域資料庫叢集互動的應用程式之網路連線能力和效能，以確保安全且有效率的資料操作。

**Topics**
+ [自動連線 EC2 執行個體和多可用區域資料庫叢集](multiaz-ec2-rds-connect.md)
+ [自動連線 Lambda 函數和多可用區域資料庫叢集](multiaz-lambda-rds-connect.md)

# 自動連線 EC2 執行個體和多可用區域資料庫叢集
<a name="multiaz-ec2-rds-connect"></a>

您可以使用 Amazon RDS 主控台，簡化 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體與多可用區域資料庫叢集之間的連線設定。通常，您的多可用區域資料庫叢集位於私有子網路中，而 EC2 執行個體位於 VPC 內的公有子網路中。您可以在 EC2 執行個體上使用 SQL 用戶端，連線到多可用區域資料庫叢集。EC2 執行個體也可以執行存取私有多可用區資料庫叢集的 Web 伺服器或應用程式。

![\[自動連線 EC2 執行個體和多可用區域資料庫叢集。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/multi-az-ec2-connect-overview.png)


如果您想要連線至與多可用區域資料庫叢集不在相同 VPC 中的 EC2 執行個體，請參閱 [在 VPC 中存取資料庫執行個體的案例](USER_VPC.Scenarios.md) 中的案例。

**Topics**
+ [與 EC2 執行個體自動連線的概要](#multiaz-ec2-rds-connect-overview)
+ [自動連線 EC2 執行個體和多可用區域資料庫叢集](#multiaz-ec2-rds-connect-connecting)
+ [檢視已連線的運算資源](#multiaz-ec2-rds-connect-viewing)

## 與 EC2 執行個體自動連線的概要
<a name="multiaz-ec2-rds-connect-overview"></a>

當您在 EC2 執行個體與多可用區域資料庫叢集之間自動設定連線時，Amazon RDS 會為您的 EC2 執行個體以及資料庫叢集設定 VPC 安全群組。

以下是將 EC2 執行個體與多可用區域資料庫叢集連線的要求：
+ EC2 執行個體必須與多可用區域資料庫叢集存在於相同的 VPC 中。

  如果沒有 EC2 執行個體存在於相同的 VPC 中，主控台會提供一個連結來建立該執行個體。
+ 設定連線的使用者必須擁有執行下列 EC2 操作的許可：
  + `ec2:AuthorizeSecurityGroupEgress` 
  + `ec2:AuthorizeSecurityGroupIngress` 
  + `ec2:CreateSecurityGroup` 
  + `ec2:DescribeInstances` 
  + `ec2:DescribeNetworkInterfaces` 
  + `ec2:DescribeSecurityGroups` 
  + `ec2:ModifyNetworkInterfaceAttribute` 
  + `ec2:RevokeSecurityGroupEgress` 

當您設定 EC2 執行個體的連線時，Amazon RDS 會根據與多可用區域資料庫叢集和 EC2 執行個體相關聯之安全群組的目前組態行動，如下表所述。


| 目前 RDS 安全群組組態 | 目前 EC2 安全群組組態 | RDS 動作 | 
| --- | --- | --- | 
|  有一或多個與多可用區域資料庫叢集相關聯的安全群組，其名稱符合模式 `rds-ec2-n`(其中 `n` 是數字)。符合模式的安全群組尚未修改。此安全群組只包含一個傳入規則，其具有 EC2 執行個體的 VPC 安全群組做為來源。  |  有一或多個與 EC2 執行個體相關聯的安全群組，其名稱符合模式 `rds-ec2-n` (其中 `n` 是數字)。符合模式的安全群組尚未修改。此安全群組只包含一個傳出規則，其具有多可用區域資料庫叢集的 VPC 安全群組做為來源。  |  Amazon RDS 不會採取任何動作。 已在 EC2 執行個體與多可用區域資料庫叢集之間自動設定連線。由於 EC2 執行個體與 RDS 資料庫之間已存在連線，因此不會修改安全群組。  | 
|  以下任一種條件均適用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-ec2-rds-connect.html)  |  以下任一種條件均適用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-ec2-rds-connect.html)  |  [RDS action: create new security groups](ec2-rds-connect.md#rds-action-create-new-security-groups)  | 
|  有一或多個與多可用區域資料庫叢集相關聯的安全群組，其名稱符合模式 `rds-ec2-n`。符合模式的安全群組尚未修改。此安全群組只包含一個傳入規則，其具有 EC2 執行個體的 VPC 安全群組做為來源。  |  有一或多個與 EC2 執行個體相關聯的安全群組，其名稱符合模式 `ec2-rds-n`。不過，這些安全群組都不能用於與多可用區域資料庫叢集的連線。如果安全群組沒有傳出規則，具有多可用區域資料庫叢集的 VPC 安全群組做為來源，則無法使用安全群組。即使已修改安全群組，也無法使用。  |  [RDS action: create new security groups](ec2-rds-connect.md#rds-action-create-new-security-groups)  | 
|  有一或多個與多可用區域資料庫叢集相關聯的安全群組，其名稱符合模式 `rds-ec2-n`。符合模式的安全群組尚未修改。此安全群組只包含一個傳入規則，其具有 EC2 執行個體的 VPC 安全群組做為來源。  |  存在用於連線的有效 EC2 安全群組，但與 EC2 執行個體沒有相關聯。此安全群組具有符合模式 `rds-ec2-n` 的名稱。尚未將其修改。其只包含一個傳出規則，具有多可用區域資料庫叢集的 VPC 安全群組做為來源。  |  [RDS action: associate EC2 security group](ec2-rds-connect.md#rds-action-associate-ec2-security-group)  | 
|  以下任一種條件均適用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-ec2-rds-connect.html)  |  有一或多個與 EC2 執行個體相關聯的安全群組，其名稱符合模式 `rds-ec2-n`。符合模式的安全群組尚未修改。此安全群組只包含一個傳出規則，其具有多可用區域資料庫叢集的 VPC 安全群組做為來源。  |  [RDS action: create new security groups](ec2-rds-connect.md#rds-action-create-new-security-groups)  | 

**RDS 動作：建立新的安全群組**  
Amazon RDS 會採取下列動作：
+ 建立符合模式 `rds-ec2-n` 的新安全群組。此安全群組具有一個傳入規則，其具有 EC2 執行個體的 VPC 安全群組做為來源。與多可用區域資料庫叢集關聯的此一安全群組可讓 EC2 執行個體存取多可用區域資料庫叢集。
+ 建立符合模式 `ec2-rds-n` 的新安全群組。此安全群組包含一個傳出規則，其具有多可用區域資料庫叢集的 VPC 安全群組做為來源。此安全群組與 EC2 執行個體相關聯，並可讓 EC2 執行個體將流量傳送到多可用區域資料庫叢集。

**RDS 動作：關聯 EC2 安全群組**  
Amazon RDS 會將有效的現有 EC2 安全群組與 EC2 執行個體建立關聯。此安全群組允許 EC2 執行個體將流量傳送到多可用區域資料庫叢集。

## 自動連線 EC2 執行個體和多可用區域資料庫叢集
<a name="multiaz-ec2-rds-connect-connecting"></a>

在設定 EC2 執行個體與 RDS 資料庫之間的連線之前，請確定您符合 [與 EC2 執行個體自動連線的概要](ec2-rds-connect.md#ec2-rds-connect-overview) 中所述的要求。

如果您在設定連線之後變更這些安全群組，這些變更可能會影響 EC2 執行個體與 RDS 資料庫之間的連線。

**注意**  
您只能使用 AWS 管理主控台，在 EC2 執行個體與 RDS 資料庫之間自動設定連線。您無法自動設定與 AWS CLI 或 RDS API 的連線。

**自動連線 EC2 執行個體與 RDS 資料庫**

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

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

1. 從**動作**，選擇**設定 EC2 連線**。

   **Set up EC2 connection** (設定 EC2 連線) 頁面即會出現。

1. 在 **Set up EC2 connection** (設定 EC2 連線) 頁面上，選擇 EC2 執行個體。  
![\[設定 EC2 連線頁面。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/auto-connect-rds-ec2-set-up.png)

   如果相同 VPC 中沒有 EC2 執行個體，請選擇 **Create EC2 instance** (建立 EC2 執行個體) 來建立執行個體。在此情況下，請確定新 EC2 執行個體與 RDS 資料庫位於相同的 VPC 中。

1. 選擇**繼續**。

   **Review and confirm** (檢閱並確認) 頁面即會出現。  
![\[EC2 連線檢閱和確認頁面。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/auto-connect-rds-ec2-confirm.png)

1. 在 **Review and confirm** (檢閱並確認) 頁面上，檢閱 RDS 將做出以設定與 EC2 執行個體連線的變更。

   如果變更正確，請選擇**確認並設定**。

   如果變更不正確，請選擇 **Previous** (上一步) 或 **Cancel** (取消)。

## 檢視已連線的運算資源
<a name="multiaz-ec2-rds-connect-viewing"></a>

您可以使用 AWS 管理主控台 檢視連線至 RDS 資料庫 的運算資源。顯示的資源包括已自動設定的運算資源連線。您可以使用下列方式自動設定與運算資源的連線：
+ 您可以在建立資料庫時選取運算資源。

  如需詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)及[為 Amazon RDS 建立多可用區域資料庫叢集](create-multi-az-db-cluster.md)。
+ 您可以設定現有資料庫與運算資源之間的連線。

  如需詳細資訊，請參閱[自動連線 EC2 執行個體和 RDS 資料庫 ](ec2-rds-connect.md#ec2-rds-connect-connecting)。

列出的運算資源不包括已手動連線至資料庫的運算資源。例如，您可以透過將規則新增至與資料庫關聯的 VPC 安全群組，來允許運算資源手動存取資料庫。

針對要列出的運算資源，必須滿足下列條件：
+ 與運算資源相關聯的安全群組，其名稱符合模式 `ec2-rds-n` (其中 `n` 是數字)。
+ 與運算資源相關聯的安全群組具有傳出規則，其連接埠範圍設為 RDS 資料庫所使用的連接埠。
+ 與運算資源相關聯的安全群組具有傳出規則，其來源設為與 RDS 資料庫相關聯的安全群組。
+ 與 RDS 資料庫相關聯的安全群組，其名稱符合模式 `rds-ec2-n` (其中 `n` 是數字)。
+ 與 RDS 資料庫相關聯的安全群組具有傳入規則，其連接埠範圍設為 RDS 資料庫所使用的連接埠。
+ 與 RDS 資料庫相關聯的安全群組具有傳入規則，其來源設為與運算資源相關聯的安全群組。

**若要檢視連線至 RDS 資料庫 的運算資源。**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)，然後選擇 RDS 資料庫的名稱。

1. 在 **Connectivity & security** (連線和安全) 索引標籤上，檢視 **Connected compute resources** (已連線的運算資源)。  
![\[已連線的運算資源。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/ec2-connected-compute-resources.png)

# 自動連線 Lambda 函數和多可用區域資料庫叢集
<a name="multiaz-lambda-rds-connect"></a>

您可以使用 RDS 主控台，簡化 Lambda 函數與多可用區域資料庫叢集之間的連線設定。您可以使用 RDS 主控台，簡化 Lambda 函數與多可用區域資料庫叢集之間的連線設定。通常，您的多可用區域資料庫叢集位於 VPC 內的私有子網路中。應用程式可使用 Lambda 函數來存取您的私有多可用區資料庫叢集。

下圖顯示多可用區域資料庫叢集與 Lambda 函數之間的直接連線。

![\[自動連線 Lambda 函數和多可用區域資料庫叢集。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/auto-connect-maz-lambda.png)


您可以透過 RDS Proxy 設定 Lambda 函數與資料庫之間的連線來改善資料庫效能和復原能力。通常，Lambda 函數經常進行短暫的資料庫連線，這些連線將受益於 RDS Proxy 提供的連線集區。您可以利用 Lambda 函數中已有的任何 IAM 身分驗證，而不是在 Lambda 應用程式的程式碼中管理資料庫憑證。如需詳細資訊，請參閱[Amazon RDS Proxy ](rds-proxy.md)。

您可以使用主控台自動為您的連線建立代理。您也可以選取現有的代理。主控台會更新代理安全群組，以允許來自資料庫和 Lambda 函數的連線。您可以輸入資料庫憑證，或選取存取資料庫所需的 Secret Manager 密碼。

![\[透過 RDS Proxy 自動將多可用區域資料庫叢集與 Lambda 函數連線。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/auto-connect-maz-lambda-Proxy.png)


**Topics**
+ [使用 Lambda 函數自動連線概觀](#multiaz-lambda-rds-connect-overview)
+ [自動連線 Lambda 函數和多可用區域資料庫叢集](#multiaz-lambda-rds-connect-connecting)
+ [檢視已連線的運算資源](#multiaz-lambda-rds-connect-viewing)

## 使用 Lambda 函數自動連線概觀
<a name="multiaz-lambda-rds-connect-overview"></a>

當您在 Lambda 函數與多可用區域資料庫叢集之間自動設定連線時，Amazon RDS 會為您的 Lambda 函數以及資料庫叢集設定 VPC 安全群組。

以下是將 Lambda 函數與多可用區域資料庫叢集連線的要求：
+ Lambda 函數必須與多可用區域資料庫叢集存在於相同的 VPC 中。

  如果沒有 Lambda 函數存在於相同的 VPC 中，主控台會提供一個連結來建立該執行個體。
+ 設定連線的使用者必須擁有執行下列 Amazon RDS、Amazon EC2、Lambda、Secrets Manager 和 IAM 操作的許可：
  + Amazon RDS
    + `rds:CreateDBProxies`
    + `rds:DescribeDBInstances`
    + `rds:DescribeDBProxies`
    + `rds:ModifyDBInstance`
    + `rds:ModifyDBProxy`
    + `rds:RegisterProxyTargets`
  + Amazon EC2
    + `ec2:AuthorizeSecurityGroupEgress` 
    + `ec2:AuthorizeSecurityGroupIngress` 
    + `ec2:CreateSecurityGroup` 
    + `ec2:DeleteSecurityGroup`
    + `ec2:DescribeSecurityGroups` 
    + `ec2:RevokeSecurityGroupEgress` 
    + `ec2:RevokeSecurityGroupIngress`
  + Lambda
    + `lambda:CreateFunctions`
    + `lambda:ListFunctions`
    + `lambda:UpdateFunctionConfiguration`
  + Secrets Manager
    + `sercetsmanager:CreateSecret`
    + `secretsmanager:DescribeSecret`
  + IAM
    + `iam:AttachPolicy`
    + `iam:CreateRole`
    + `iam:CreatePolicy`
  + AWS KMS
    + `kms:describeKey`

當您在 Lambda 函數與多可用區域資料庫叢集之間設定連線時，Amazon RDS 會為您的函數以及多可用區域資料庫叢集設定 VPC 安全群組。如果您使用 RDS Proxy，則 Amazon RDS 也會為代理設定 VPC 安全群組。Amazon RDS 會根據與安全群組相關聯的目前組態執行動作資料庫執行個體多可用區域資料庫叢集、Lambda 函數和代理，如下表所述。


| 目前 RDS 安全群組組態 | 目前 Lambda 安全群組組態 | 目前代理安全群組組態 | RDS 動作 | 
| --- | --- | --- | --- | 
|  Amazon RDS 不會採取任何動作，因為所有資源的安全群組都遵循正確的命名模式，並且擁有正確的傳入和傳出規則。  |  有一或多個與多可用區域資料庫叢集相關聯的安全群組，其名稱符合模式 `rds-lambda-n` (其中 `n` 是數字)，或者 `TargetHealth` 關聯的代理是 `AVAILABLE`。 符合模式的安全群組尚未修改。此安全群組只有一個傳入規則，其具有 Lambda 函數或代理的 VPC 安全群組做為來源。  |  有一或多個與 Lambda 函數相關聯的安全群組，其名稱符合模式 `lambda-rds-n` 或 `lambda-rdsproxy-n` (其中 `n` 是數字)。 符合模式的安全群組尚未修改。此安全群組只包含一個傳出規則，其使用多可用區域資料庫叢集或代理的 VPC 安全群組做為目的地。  |  有一或多個與代理相關聯的安全群組，其名稱符合模式 `rdsproxy-lambda-n` (其中 `n` 是數字)。 符合模式的安全群組尚未修改。此安全群組包含傳入和傳出規則，其具有 Lambda 函數和多可用區域資料庫叢集的 VPC 安全群組。  | 
|  以下任一種條件均適用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html) Amazon RDS 無法使用沒有傳入規則的安全群組，並將 Lambda 函數或代理 VPC 安全群組做為來源。Amazon RDS 也無法使用經過修改的安全群組。修改範例包括新增規則或變更現有規則的連線埠。  |  以下任一種條件均適用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html) Amazon RDS 無法使用沒有傳出規則的安全群組，其具有多可用區域資料庫叢集的 VPC 安全群組做為來源。Amazon RDS 也無法使用經過修改的安全群組。  | 以下任一種條件均適用：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html)Amazon RDS 無法使用沒有傳入和傳出規則的安全群組，並與多可用區域資料庫叢集的 VPC 安全群組和 Lambda 函數搭配使用。Amazon RDS 也無法使用經過修改的安全群組。 | [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 
|  有一或多個與多可用區域資料庫叢集相關聯的安全群組，其名稱符合模式 `rds-lambda-n`，或者 `TargetHealth` 相關聯的代理是 `AVAILABLE`。 符合模式的安全群組尚未修改。此安全群組只有一個傳入規則，其具有 Lambda 函數或代理的 VPC 安全群組做為來源。  |  有一或多個與 Lambda 函數相關聯的安全群組，其名稱符合模式 `lambda-rds-n` 或 `lambda-rdsproxy-n`。 不過，Amazon RDS 無法使用這些安全群組中的任一個與多可用區域資料庫叢集連線。Amazon RDS 無法使用沒有傳出規則的安全群組，其具有多可用區域資料庫叢集或代理的 VPC 安全群組做為目的地。Amazon RDS 也無法使用經過修改的安全群組。  |  有一或多個與代理相關聯的安全群組，其名稱符合模式 `rdsproxy-lambda-n`。 不過，Amazon RDS 無法使用這些安全群組中的任一個與多可用區域資料庫叢集或 Lambda 函數連線。Amazon RDS 無法使用沒有傳入和傳出規則的安全群組，並與多可用區域資料庫叢集的 VPC 安全群組和 Lambda 函數搭配使用。Amazon RDS 也無法使用經過修改的安全群組。  | [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 
|  有一或多個與多可用區域資料庫叢集相關聯的安全群組，其名稱符合模式 `rds-lambda-n`，或者 `TargetHealth` 相關聯的代理是 `AVAILABLE`。 符合模式的安全群組尚未修改。此安全群組只有一個傳入規則，其具有 Lambda 函數或代理的 VPC 安全群組做為來源。  |  存在用於連線的有效 Lambda 安全群組，但與 Lambda 函數沒有相關聯。此安全群組具有符合模式 `lambda-rds-n` 或 `lambda-rdsproxy-n` 的名稱。尚未將其修改。其只包含一個傳出規則，具有多可用區域資料庫叢集或代理的 VPC 安全群組做為目的地。  |  存在用於連線的有效代理安全群組，但與代理沒有相關聯。此安全群組具有符合模式 `rdsproxy-lambda-n` 的名稱。尚未將其修改。包含傳入和傳出規則，其具有多可用區域資料庫叢集和 Lambda 函數的 VPC 安全群組。  |  [RDS action: associate Lambda security group](#maz-lam-action-associate-lam-security-group)  | 
|  以下任一種條件均適用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html)  |  有一或多個與 Lambda 函數相關聯的安全群組，其名稱符合模式 `lambda-rds-n` 或 `lambda-rdsproxy-n`。 符合模式的安全群組尚未修改。此安全群組只包含一個傳出規則，其具有多可用區域資料庫叢集的 VPC 安全群組做為目的地。  |  有一或多個與代理相關聯的安全群組，其名稱符合模式 `rdsproxy-lambda-n`。 符合模式的安全群組尚未修改。此安全群組包含傳入和傳出規則，其具有多可用區域資料庫叢集和 Lambda 函數的 VPC 安全群組。  |  [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 
|  有一或多個與多可用區域資料庫叢集相關聯的安全群組，其名稱符合模式 `rds-rdsproxy-n`(其中 `n` 是數字)。  |  以下任一種條件均適用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html) Amazon RDS 無法使用沒有傳出規則的安全群組，其具有多可用區域資料庫叢集或代理的 VPC 安全群組做為目的地。Amazon RDS 也無法使用經過修改的安全群組。  | 以下任一種條件均適用：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html)Amazon RDS 無法使用沒有傳入和傳出規則的安全群組，並與多可用區域資料庫叢集的 VPC 安全群組和 Lambda 函數搭配使用。Amazon RDS 也無法使用經過修改的安全群組。 |  [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 

**RDS 動作：建立新的安全群組**  
Amazon RDS 會採取下列動作：
+ 建立符合模式 `rds-lambda-n` 的新安全群組。此安全群組具有以 Lambda 函數或代理的 VPC 安全群組做為來源的傳入規則。與多可用區域資料庫叢集關聯的此一安全群組可讓函數或代理存取多可用區域資料庫叢集。
+ 建立符合模式 `lambda-rds-n` 的新安全群組。此安全群組包含一個傳出規則，其具有多可用區域資料庫叢集或代理的 VPC 安全群組做為來源。此安全群組與 Lambda 函數相關聯，可讓 Lambda 函數將流量傳送到多可用區域資料庫叢集或透過代理傳送流量。
+ 建立符合模式 `rdsproxy-lambda-n` 的新安全群組。此安全群組包含傳入和傳出規則，其具有多可用區域資料庫叢集和 Lambda 函數的 VPC 安全群組。

**RDS 動作：與 Lambda 相關聯的安全群組**  
Amazon RDS 將有效、現有的 Lambda 安全群組與 Lambda 函數建立關聯。此安全群組允許函數將流量傳送到多可用區域資料庫叢集或透過 Proxy 傳送流量。

## 自動連線 Lambda 函數和多可用區域資料庫叢集
<a name="multiaz-lambda-rds-connect-connecting"></a>

您可以使用 Amazon RDS 主控台將 Lambda 函數自動連線至多可用區域資料庫叢集。簡化資源之間建立連線的過程。

您也可以使用 RDS Proxy 將代理包含在連線中。Lambda 函數經常進行短暫的資料庫連線，這些連線將受益於 RDS Proxy 提供的連線集區。您還可以使用 Lambda 函數中已有的任何 IAM 身分驗證，而不是在 Lambda 應用程式的程式碼中管理資料庫憑證。

您可以使用**設定 Lambda 連線**頁面，將現有的多可用區域資料庫叢集連線至新的和現有的 Lambda 函數。設定程序會自動為您設定所需的安全群組。

在設定 Lambda 函數和多可用區域資料庫叢集之間的連線之前，請確保：
+ 您的 Lambda 函數和多可用區域資料庫叢集位於相同的 VPC 中。
+ 您擁有正確的使用者帳戶權限。有關需求的詳細資訊，請參閱 [使用 Lambda 函數自動連線概觀](lambda-rds-connect.md#lambda-rds-connect-overview)。

如果您在設定連線之後變更安全群組，這些變更可能會影響 Lambda 函數與多可用區域資料庫叢集之間的連線。

**注意**  
您只能在 中自動設定多可用區域資料庫叢集與 Lambda 函數之間的連線 AWS 管理主控台。若要連線 Lambda 函數，多可用區域資料庫叢集中的所有執行個體都必須處於**可用**狀態。

**自動連線 Lambda 函數和多可用區域資料庫叢集**

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

1. 在導覽窗格中選擇**資料庫**，然後選擇您要連線至 Lambda 函數的多可用區域資料庫叢集。

1. 針對**動作**，選擇**設定 Lambda 連線**。

1. 在**設定 Lambda 連線**頁面中的**選取 Lambda 函數**，執行下列任一操作：
   + 如果您在與多可用區域資料庫叢集相同的 VPC 中擁有現有的 Lambda 函數，請選擇**選擇現有函數**，然後選擇函數。
   + 如果您在同一個 VPC 中沒有 Lambda 函數，請選擇**建立新函數**，然後輸入**函數名稱**。預設執行期會設定為 Nodejs.18。完成連線設定後，您可以在 Lambda 主控台中修改新 Lambda 函數的設定。

1. (選用) 在 **RDS Proxy** 中，選取**使用 RDS Proxy 連線**，然後執行下列任一項操作：
   + 若您要使用現有的代理，請選擇**選擇現有的代理**，然後選擇代理。
   + 如果您沒有代理，並且您希望 Amazon RDS 自動為您建立代理，請選擇**建立新的代理**。然後，為**資料庫憑證**，執行下列任一操作：

     1. 選擇**資料庫使用者名稱和密碼**，然後為您的多可用區資料庫叢集輸入**使用者名稱**和**密碼**。

     1. 選擇 **Secrets Manager 密碼**。然後，針對**選取秘密**，選擇 AWS Secrets Manager 秘密。如果您沒有 Secrets Manager 密碼，請選擇**建立新的 Secrets Manager 密碼**，以[建立新的密碼](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。建立密碼之後，針對**選取密碼**，選擇新的密碼。

     建立新的代理之後，請選擇**選擇現有的代理**，然後選擇代理。請注意，您的代理可能需要一些時間才能用於連線。

1. (選用) 展開**連線摘要**並為您的資源驗證反白顯示的更新。

1. 選擇 **Set up (設定)**。

確認設定後，Amazon RDS 會開始連線至 Lambda 函數、RDS Proxy (如果您使用代理) 和多可用區域資料庫叢集的程序。主控台會顯示**連線詳細資訊**對話方塊，此對話方塊會列出允許資源之間連線的安全群組變更。

## 檢視已連線的運算資源
<a name="multiaz-lambda-rds-connect-viewing"></a>

您可以使用 AWS 管理主控台 檢視連線至多可用區域資料庫叢集的運算資源。顯示的資源包括 Amazon RDS 自動設定的運算資源連線。

列出的運算資源不包含手動連線至多可用區域資料庫叢集的運算資源。例如，您可以透過將規則新增至與叢集關聯的 VPC 安全群組，來允許運算資源手動存取您的多可用區域資料庫。

若要讓主控台列出 Lambda 函數，必須符合下列條件：
+ 與運算資源相關聯的安全群組，其名稱符合模式 `lambda-rds-n` 或 `lambda-rdsproxy-n` (其中 `n` 是數字)。
+ 與運算資源相關聯的安全群組具有傳出規則，其連接埠範圍設為多可用區域資料庫叢集或關聯代理所使用的連接埠。傳出規則目的地必須設定為與多可用區域資料庫叢集或關聯代理相關聯的安全群組。
+ 與資料庫資料庫叢集附加的代理安全群組，其名稱符合模式 `rds-rdsproxy-n` (其中 `n` 是數字)。
+ 與函數相關聯的安全群組具有傳出規則，其中連接埠設定為多可用區域資料庫叢集或相關 Proxy 所使用的連接埠。目的地必須設定為與多可用區域資料庫叢集或關聯代理相關聯的安全群組。

**檢視自動連線至多可用區域資料庫叢集的運算資源**

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

1. 在導覽窗格中，選擇**資料庫**，然後選擇多可用區域資料庫叢集。

1. 在**連線與安全性**索引標籤中，檢視**已連線的運算資源**中的運算資源。

# 使用 Amazon RDS 修改多可用區域資料庫叢集
<a name="modify-multi-az-db-cluster"></a>

多可用區域資料庫叢集在三個不同的可用區域中有一個寫入器資料庫執行個體和兩個讀取器資料庫。多可用區域資料庫叢集相較於多可用區域部署，可提供高可用性、增加讀取工作負載的容量以及更低的延遲。如需建立多可用區域資料庫叢集的詳細資訊，請參閱[Amazon RDS 的多可用區域資料庫叢集部署](multi-az-db-clusters-concepts.md)。

您可以修改多可用區域資料庫叢集以變更其設定。您也可以在多可用區域資料庫叢集上執行操作，例如擷取其快照。

**重要**  
您無法修改多可用區域資料庫叢集內的資料庫執行個體。所有修改都必須在資料庫叢集層級完成。您可以在多可用區域資料庫叢集內的資料庫執行個體上執行的唯一操作是將其重新啟動。

您可以使用 AWS 管理主控台 AWS CLI、 或 RDS API 修改多可用區域資料庫叢集。

## 主控台
<a name="modify-multi-az-db-cluster-console"></a>

**若要修改多可用區域資料庫叢集**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要修改的多可用區域資料庫叢集。

1. 選擇 **Modify (修改)**。**Modify DB cluster (修改資料庫叢集)** 頁面隨即出現。

1. 變更您要的任何設定。如需每項設定的相關資訊，請參閱 [修改多可用區域資料庫叢集的設定](#modify-multi-az-db-cluster-settings)。

1. 當所有變更都如您所願時，請選擇 **Continue (繼續)** 並查看修改摘要。

1. (選用) 選擇 **Apply immediately (立即套用)** 以立即套用變更。在某些情況下，選擇此選項會導致停機。如需詳細資訊，請參閱 [立即套用變更](#modify-multi-az-db-cluster-apply-immediately)。

1. 在確認頁面上，檢閱您的變更。如果都正確，請選擇 **Modify DB cluster (修改資料庫叢集)** 以儲存您的變更。

   或者，選擇 **Back (上一步)** 以編輯變更，或是選擇 **Cancel (取消)** 以取消變更。

## AWS CLI
<a name="modify-multi-az-db-cluster-cli"></a>

若要使用 修改多可用區域資料庫叢集 AWS CLI，請呼叫 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 命令。指定資料庫叢集識別符，以及您要修改選項的值。如需每個選項的詳細資訊，請參閱[修改多可用區域資料庫叢集的設定](#modify-multi-az-db-cluster-settings)。

**Example**  
以下程式碼會修改 `my-multi-az-dbcluster`，將備份保留期設為 1 週 (7 天)。程式碼可藉由使用 `--deletion-protection` 來開啟刪除保護。若要關閉刪除保護，請使用 `--no-deletion-protection`。使用 `--no-apply-immediately`，會在下一次維護時段期間由系統套用變更。使用 `--apply-immediately` 可立即套用變更。如需詳細資訊，請參閱[立即套用變更](#modify-multi-az-db-cluster-apply-immediately)。  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-cluster \
    --db-cluster-identifier my-multi-az-dbcluster \
    --backup-retention-period 7 \
    --deletion-protection \
    --no-apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-cluster ^
    --db-cluster-identifier my-multi-az-dbcluster ^
    --backup-retention-period 7 ^
    --deletion-protection ^
    --no-apply-immediately
```

## RDS API
<a name="modify-multi-az-db-cluster-api"></a>

若要使用 Amazon RDS API 修改多可用區域資料庫叢集，請呼叫 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 操作。指定資料庫叢集識別符，以及您要修改設定的參數。如需每項參數的相關資訊，請參閱 [修改多可用區域資料庫叢集的設定](#modify-multi-az-db-cluster-settings)。

## 立即套用變更
<a name="modify-multi-az-db-cluster-apply-immediately"></a>

修改多可用區域資料庫叢集時，您可以立即套用變更。若要立即套用變更，從 AWS 管理主控台選擇 **Apply immediately (立即套用)** 選項。或者，您可以在呼叫 時使用 `--apply-immediately`選項， AWS CLI 或在使用 Amazon RDS API `true`時將 `ApplyImmediately` 參數設定為 。

若您未選擇立即套用變更，則系統會將變更內容放入待定修改佇列。在下一次維護時段期間，系統便會套用佇列中的任何待定變更。若您選擇立即套用變更，則系統會一併套用待定修改佇列中的新變更及任何變更內容。

**重要**  
如果有任何擱置的修改需要資料庫叢集暫時無法使用 (*停機*)，選擇立即套用選項可能會導致非預期的停機時間。  
當您選擇立即套用變更時，任何待定的修改也會立即套用，而不會等到下一次維護時段才套用。  
若您不想在下一個維護時段套用待定變更，您可修改資料庫執行個體以還原該變更。您可以使用 AWS CLI 並指定 `--apply-immediately`選項來執行此操作。

即使您選擇延遲變更，針對某些資料庫設定的變更仍會立即套用。若要查看不同的資料庫設定如何影響立即套用設定，請參閱 [修改多可用區域資料庫叢集的設定](#modify-multi-az-db-cluster-settings)。

## 修改多可用區域資料庫叢集的設定
<a name="modify-multi-az-db-cluster-settings"></a>

如需可以用來修改多可用區域資料庫叢集之設定的詳細資訊，請參閱下表。如需 AWS CLI 選項的詳細資訊，請參閱 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)。如需 RDS API 參數的詳細資訊，請參閱 [ ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)。


| 主控台設定 | 設定說明 | CLI 選項和 RDS API 參數 | 進行變更時的狀態 | 停機時間備註 | 
| --- | --- | --- | --- | --- | 
|  **配置儲存**  |  針對資料庫叢集中每個資料庫執行個體配置的儲存量 (以 GiB 為單位)。如需詳細資訊，請參閱 [Amazon RDS 資料庫執行個體儲存體](CHAP_Storage.md)。    |  **CLI 選項：** `--allocated-storage` **RDS API 參數：**  `AllocatedStorage`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  |  進行此變更時，不會發生停機。  | 
| Auto minor version upgrade (自動次要版本升級) |  **Enable auto minor version upgrade (啟用自動次要版本升級)**，讓資料庫叢集自動在可用時接收偏好次要資料庫引擎版本升級。Amazon RDS 會在維護時段執行自動次要版本升級。  |  **CLI 選項：** `--auto-minor-version-upgrade` `--no-auto-minor-version-upgrade` **RDS API 參數：** `AutoMinorVersionUpgrade`  |  系統會立即進行變更。此設定會忽略立即套用設定。  |  進行此變更時，會發生停機。  | 
| Backup retention period (備份保留期間)  |  資料庫叢集之自動備份保留的天數。該值必須大於零。 如需詳細資訊，請參閱[備份簡介](USER_WorkingWithAutomatedBackups.md)。  |  **CLI 選項：** `--backup-retention-period` **RDS API 參數：** `BackupRetentionPeriod`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。    | 進行此變更時，不會發生停機。 | 
| 備份時段 |  Amazon RDS 自動備份資料庫叢集的時段。除非要在特定時段備份資料庫，否則請使用預設值 **No Preference (無偏好設定)**。 如需詳細資訊，請參閱 [備份簡介](USER_WorkingWithAutomatedBackups.md)。  |  **CLI 選項：** `--preferred-backup-window` **RDS API 參數：** `PreferredBackupWindow`  |  系統會盡快以非同步的方式來套用變更。  |  進行此變更時，不會發生停機。  | 
|  **憑證授權單位**  |  資料庫叢集所使用之伺服器憑證的憑證授權單位 (CA)。 如需詳細資訊，請參閱[使用 SSL/TLS 加密與資料庫執行個體或叢集的連線](UsingWithRDS.SSL.md)。  |  **CLI 選項：** `--ca-certificate-identifier` **RDS API 參數：** `CACertificateIdentifier`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  | 只有在資料庫引擎不支援無需重新啟動即可輪換時，才會發生停機。您可以使用 [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 命令來判斷資料庫引擎是否支援旋轉而不重新啟動。 | 
|  Copy tags to snapshots (將標籤複製到快照)  |  此選項可在您建立快照時將任何資料庫叢集標籤複製到某個資料庫快照。 如需詳細資訊，請參閱 [標記 Amazon RDS 資源](USER_Tagging.md)。  |  **CLI 選項：** `-copy-tags-to-snapshot` `-no-copy-tags-to-snapshot` **RDS API 參數：** `CopyTagsToSnapshot`  |  系統會立即進行變更。此設定會忽略立即套用設定。  |  進行此變更時，不會發生停機。  | 
|  Database authentication (資料庫身分驗證  |  針對多可用區域資料庫叢集，僅支援**密碼身分驗證**。  |  無，因為密碼身分驗證是預設值。  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  |  進行此變更時，不會發生停機。  | 
|  **DB cluster identifier** (資料庫叢集識別符)  |  資料庫叢集識別符 此值會以小寫字母字串的形式儲存。 當您變更資料庫叢集識別符時，資料庫叢集端點會變更。資料庫叢集中資料庫執行個體的識別符和端點也會變更。新的資料庫叢集名稱必須是唯一的。長度上限為 63 個字元。 資料庫叢集中資料庫執行個體的名稱會變更，以與資料庫叢集的新名稱相對應。新的資料庫執行個體名稱不能與現有資料庫執行個體的名稱相同。例如，如果您將資料庫叢集名稱變更為 `maz`，資料庫執行個體名稱可能會變更為 `maz-instance-1`。在此情況下，不能有名為 `maz-instance-1` 的現有資料庫執行個體。 如需詳細資訊，請參閱[為 Amazon RDS 重新命名多可用區域資料庫叢集](multi-az-db-cluster-rename.md)。  |  **CLI 選項：** `--new-db-cluster-identifier` **RDS API 參數：** `NewDBClusterIdentifier`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  |  進行此變更時，不會發生停機。  | 
|  資料庫叢集執行個體類別  |  多可用區域資料庫叢集中每個資料庫執行個體的運算和記憶體容量，例如 `db.r6gd.xlarge`。 可能的話，選擇足夠大的資料庫執行個體類別，讓一般查詢工作集可以保留在記憶體中。當工作集保留在記憶體中時，系統可以避免寫入至磁碟，因而可改善效能。 如需詳細資訊，請參閱[多可用區域資料庫叢集的執行個體類別可用性](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts.InstanceAvailability)。  |  **CLI 選項：** `--db-cluster-instance-class` **RDS API 參數：** `DBClusterInstanceClass`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  |  進行此變更時，會發生停機。  | 
|  **DB cluster parameter group (資料庫叢集參數群組)**  |  要與資料庫叢集建立關聯的資料庫叢集參數群組。 如需詳細資訊，請參閱 [多可用區域資料庫叢集的參數群組](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)。  |  **CLI 選項：** `--db-cluster-parameter-group-name` **RDS API 參數：** `DBClusterParameterGroupName`  |  系統會立即變更參數群組。  |  進行此變更時，不會發生停機。當您變更參數群組時，某些參數的變更會立即套用到多可用區域資料庫叢集的資料庫執行個體，而不需要重新啟動。其他參數的變更只有在資料庫執行個體重新啟動之後才會套用。  | 
|  DB engine version (資料庫引擎版本)  |  您要使用的資料庫引擎版本。  |  **CLI 選項：** `--engine-version` **RDS API 參數：** `EngineVersion`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  |  進行此變更時，會發生停機。  | 
| 刪除保護 |  **啟用刪除保護**可避免您的資料庫叢集遭意外刪除。 如需詳細資訊，請參閱 [刪除資料庫執行個體](USER_DeleteInstance.md)。  |  **CLI 選項：** `--deletion-protection` `--no-deletion-protection` **RDS API 參數：** `DeletionProtection`  |  系統會立即進行變更。此設定會忽略立即套用設定。  |  進行此變更時，不會發生停機。  | 
|  Maintenance window (維護時段)  |  將擱置中修改套用至資料庫叢集的 30 分鐘時段。如果不在意時段，請選擇 **No Preference (無偏好設定)**。 如需詳細資訊，請參閱 [Amazon RDS 維護時段](USER_UpgradeDBInstance.Maintenance.md#Concepts.DBMaintenance)。  |  **CLI 選項：** `--preferred-maintenance-window` **RDS API 參數：** `PreferredMaintenanceWindow`  |  系統會立即進行變更。此設定會忽略立即套用設定。  |  如果您有一個或多個會導致停機的擱置動作，並將維護時段變更至涵蓋目前時間，則系統會立即套用這些擱置動作，最終導致停機。  | 
|  在 中管理主登入資料 AWS Secrets Manager  |  選取 **Manage master credentials in AWS Secrets Manager** (管理 AWS Secrets Manager中的主要憑證) 以秘密管理 Secrets Manager 中的主要使用者密碼。 選擇性地選擇要用來保護機密的 KMS 金鑰。從您帳戶中的 KMS 金鑰進行選擇，或輸入來自不同帳戶的金鑰。 如果 RDS 已在管理資料庫叢集的主要使用者密碼，您可以選擇 **Rotate secret immediately** (立即輪換機密)來輪換主要使用者密碼。 如需詳細資訊，請參閱[使用 Amazon RDS 和 進行密碼管理 AWS Secrets Manager](rds-secrets-manager.md)。  |  **CLI 選項：** `--manage-master-user-password \| --no-manage-master-user-password` `--master-user-secret-kms-key-id` `--rotate-master-user-password \| --no-rotate-master-user-password` **RDS API 參數：** `ManageMasterUserPassword` `MasterUserSecretKmsKeyId` `RotateMasterUserPassword`  |  如果您開啟或關閉自動主要使用者密碼管理，變更會立即發生。此變更會忽略立即套用設定。 如果您要輪換主要使用者密碼，則必須指定立即套用變更。  |  進行此變更時，不會發生停機。  | 
|  新主要使用者密碼  |  主要使用者帳戶的密碼。  |  **CLI 選項：** `--master-user-password` **RDS API 參數：** `MasterUserPassword`  |  系統會盡快以非同步的方式來套用變更。此設定會忽略立即套用設定。  |  進行此變更時，不會發生停機。  | 
|  佈建 IOPS  |  初始配置給資料庫叢集的佈建IOPS數量（每秒輸入/輸出作業）。  |  **CLI 選項：** `--iops` **RDS API 參數：** `Iops`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  |  進行此變更時，不會發生停機。  | 
|  公用存取  |  **Publicly accessible (可公開存取)** 用來給予資料庫叢集一個公有 IP 地址，這表示可在 Virtual Private Cloud (VPC) 外加以存取。資料庫叢集也必須位於 VPC 的公有子網路中，才能公開存取。 **Not publicly accessible (不可公開存取)** 將使得資料庫叢集只能從 VPC 內部存取。 如需詳細資訊，請參閱 [在 VPC 中的網際網路中隱藏資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Hiding)。 若要從其 VPC 外部連線到資料庫叢集，資料庫叢集必須可公開存取。此外，必須使用資料庫叢集安全群組的傳入規則授予存取權，且必須符合其他需求。如需詳細資訊，請參閱[無法連線至 Amazon RDS 資料庫執行個體](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)。 如果您的資料庫叢集無法公開存取，您可以使用 an AWS Site-to-Site VPN 連線或從私有網路 Direct Connect 存取它。如需詳細資訊，請參閱[網際網路流量隱私權](inter-network-traffic-privacy.md)。  | 無法在修改資料庫叢集時使用。 |  系統會立即進行變更。此設定會忽略立即套用設定。  |  進行此變更時，不會發生停機。  | 
| 儲存體類型 |  資料庫叢集的儲存類型。 僅支援一般用途 SSD (gp3)、佈建 IOPS (io1) 和佈建 IOPS SSD (io2) 儲存體。 如需詳細資訊，請參閱[Amazon RDS 儲存類型](CHAP_Storage.md#Concepts.Storage)。  |  **CLI 選項：** `--storage-type` **RDS API 參數：** `StorageType`  |  如果您選擇立即套用變更，則會立即執行。 如果您未選擇立即套用變更，則會在下一個維護時段執行。  |  進行此變更時，不會發生停機。  | 
|  VPC 安全群組  |  要與資料庫叢集建立關聯的安全群組。 如需詳細資訊，請參閱 [VPC 安全群組概觀](Overview.RDSSecurityGroups.md#Overview.RDSSecurityGroups.VPCSec)。  |  **CLI 選項：** `--vpc-security-group-ids` **RDS API 參數：** `VpcSecurityGroupIds`  |  系統會盡快以非同步的方式來套用變更。此設定會忽略立即套用設定。  |  進行此變更時，不會發生停機。  | 

## 修改多可用區域資料庫叢集時不適用的設定
<a name="modify-multi-az-db-cluster-settings-not-applicable"></a>

 AWS CLI 命令 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 和 RDS API 操作 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 中的下列設定不適用於多可用區域資料庫叢集。

您也無法在主控台中為多可用區域資料庫叢集修改這些設定。


| AWS CLI 設定 | RDS API 設定 | 
| --- | --- | 
|  `--backtrack-window`  |  `BacktrackWindow`  | 
|  `--cloudwatch-logs-export-configuration`  |  `CloudwatchLogsExportConfiguration`  | 
|  `--copy-tags-to-snapshot \| --no-copy-tags-to-snapshot`  |  `CopyTagsToSnapshot`  | 
|  `--db-instance-parameter-group-name`  |  `DBInstanceParameterGroupName`  | 
|  `--domain`  |  `Domain`  | 
|  `--domain-iam-role-name`  |  `DomainIAMRoleName`  | 
|  `--enable-global-write-forwarding \| --no-enable-global-write-forwarding`  |  `EnableGlobalWriteForwarding`  | 
|  `--enable-http-endpoint \| --no-enable-http-endpoint`  |  `EnableHttpEndpoint`  | 
|  `--option-group-name`  |  `OptionGroupName`  | 
|  `--port`  |  `Port`  | 
|  `--scaling-configuration`  |  `ScalingConfiguration`  | 
|  `--storage-type`  |  `StorageType`  | 

# 升級 Amazon RDS 多可用區域資料庫叢集的引擎版本
<a name="multi-az-db-clusters-upgrading"></a>

Amazon RDS 會提供每個受支援資料庫引擎的較新版本，讓您的多可用區域資料庫叢集保持最新狀態。本主題說明將多可用區域資料庫叢集升級至較新版本的程序。

升級多可用區域資料庫叢集需要選取新的相容引擎版本，並規劃潛在的停機時間。此程序會使用多可用區域架構的容錯移轉功能，確保最小的中斷。最佳實務包括在低流量期間執行升級、在非生產環境中進行測試，以及驗證應用程式與新版本的相容性。

**Topics**
+ [次要版本升級](#multi-az-db-clusters-upgrade-minor)
+ [主要版本升級](#multi-az-db-clusters-upgrade-major)
+ [升級多可用區域資料庫叢集](#multi-az-db-clusters-upgrade-process)
+ [升級多可用區域資料庫叢集僅供讀取複本](#multi-az-db-clusters-upgrade-replicas)
+ [使用事件監控多可用區域資料庫叢集升級](#multi-az-db-clusters-upgrade-monitoring)

## 次要版本升級
<a name="multi-az-db-clusters-upgrade-minor"></a>

次要版本升級只包含與現有應用程式回溯相容的變更。當您啟動次要版本升級時，Amazon RDS 會先一次升級一個讀取器資料庫執行個體。然後，其中一個讀取器資料庫執行個體會切換為新的寫入器資料庫執行個體。Amazon RDS 接著會升級舊的寫入器執行個體 (現在是讀取器執行個體)。

升級期間的停機時間僅限於其中一個讀取器資料庫執行個體成為新寫入器資料庫執行個體所需的時間。此停機時間的作用就像自動容錯移轉一樣。如需詳細資訊，請參閱[容錯移轉 Amazon RDS 的多可用區域資料庫叢集](multi-az-db-clusters-concepts-failover.md)。請注意，多可用區域資料庫叢集的複本延遲可能會影響停機時間。如需詳細資訊，請參閱[複本延遲和多可用區域資料庫叢集](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-replica-lag)。

對於 RDS for PostgreSQL 多可用區域資料庫叢集僅供讀取複本，Amazon RDS 會一次升級一個叢集成員執行個體。讀取器和寫入器叢集角色不會在升級期間切換。因此，當 Amazon RDS 升級叢集寫入器執行個體時，您的資料庫叢集可能會遇到停機時間。

**注意**  
多可用區域資料庫叢集次要版本升級的停機時間通常為 35 秒。與 RDS Proxy 搭配使用時，您可以進一步將停機時間縮短至一秒或更短。如需詳細資訊，請參閱[Amazon RDS Proxy ](rds-proxy.md)。或者，您可以使用開放原始碼資料庫代理，例如 [ProxySQL](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-of-downtime-with-proxysql-when-upgrading-amazon-rds-multi-az-deployments-with-two-readable-standbys/)、[PgBouncer](https://aws.amazon.com/blogs/database/fast-switchovers-with-pgbouncer-on-amazon-rds-multi-az-deployments-with-two-readable-standbys-for-postgresql/) 或 [AWS 進階 JDBC 包裝函式驅動程式](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-downtime-with-the-advanced-jdbc-wrapper-driver-when-upgrading-amazon-rds-multi-az-db-clusters/)。

## 主要版本升級
<a name="multi-az-db-clusters-upgrade-major"></a>

主要版本升級可能引進與現有應用程式不相容的變更。

當您啟動 RDS for PostgreSQL 多可用區域資料庫叢集的主要版本升級時，Amazon RDS 會同時升級讀取器和寫入器執行個體。因此，在升級完成之前，您的資料庫叢集可能無法使用。

當您啟動 RDS for MySQL 多可用區域資料庫叢集的主要版本升級時，Amazon RDS 會一次升級一個叢集成員執行個體，因此會從較低的引擎版本複寫至較高的引擎版本。請務必確保您的工作負載在主要版本升級期間與來源和目標引擎版本相容，因為引擎版本在語法和功能上可能有所不同。

**注意**  
如同次要版本升級，RDS for MySQL 主要版本升級的停機時間通常為 35 秒。與 RDS Proxy 搭配使用時，您可以進一步將停機時間縮短至一秒或更短。如需詳細資訊，請參閱[Amazon RDS Proxy ](rds-proxy.md)。

## 升級多可用區域資料庫叢集
<a name="multi-az-db-clusters-upgrade-process"></a>

多可用區域資料庫叢集的引擎版本升級程序，與資料庫執行個體引擎版本的升級程序相同。如需說明，請參閱[升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。唯一的差別是使用 AWS Command Line Interface (AWS CLI) 時，您可以使用 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 命令並指定 `--db-cluster-identifier` 參數 （以及 `--allow-major-version-upgrade` 參數）。

如需主要和次要版本升級的詳細資訊，根據您的資料庫引擎而定，請參閱以下文件：
+ [RDS for PostgreSQL 資料庫引擎的升級](USER_UpgradeDBInstance.PostgreSQL.md)
+ [RDS for MySQL 資料庫引擎的升級](USER_UpgradeDBInstance.MySQL.md)

## 升級多可用區域資料庫叢集僅供讀取複本
<a name="multi-az-db-clusters-upgrade-replicas"></a>

Amazon RDS 不會自動升級多可用區域資料庫叢集讀取複本。對於*次要*版本升級，您必須先手動升級所有讀取複本，再升級叢集。否則，升級會遭到封鎖。當您執行叢集的*主要*版本升級時，所有讀取複本的複寫狀態都會變更為**已終止**。升級完成後，您必須刪除並重新建立讀取複本。如需詳細資訊，請參閱[監控僅供讀取複本](USER_ReadRepl.Monitoring.md)。

## 使用事件監控多可用區域資料庫叢集升級
<a name="multi-az-db-clusters-upgrade-monitoring"></a>

當您升級多可用區域資料庫叢集的引擎版本時，Amazon RDS 會在程序的每個階段發出特定事件。若要追蹤升級進度，您可以檢視或訂閱這些事件。

 如需 RDS 事件的詳細資訊，請參閱 [監控 Amazon RDS 事件](working-with-events.md)。

如需引擎升級期間發生之特定 Amazon RDS 事件的詳細資訊，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。

# 為 Amazon RDS 重新命名多可用區域資料庫叢集
<a name="multi-az-db-cluster-rename"></a>

您可以使用 AWS 管理主控台、AWS CLI `modify-db-cluster` 命令或 Amazon RDS API `ModifyDBCluster` 操作，重新命名多可用區域資料庫叢集。重新命名多可用區域資料庫叢集會產生重大影響。以下是您重新命名多可用區域資料庫叢集前的考量清單。
+ 當您重新命名多可用區域資料庫叢集時，多可用區域資料庫叢集的叢集端點會變更。這些端點之所以變更，因為它們包含您指派給多可用區域資料庫叢集的名稱。您可以將流量從舊端點重新導向至新端點。如需建立多可用區域資料庫叢集端點的詳細資訊，請參閱 [連線至 Amazon RDS 的多可用區域資料庫叢集](multi-az-db-clusters-concepts-connection-management.md)。
+ 當您重新命名多可用區域資料庫叢集時，多可用區域資料庫叢集所使用的舊 DNS 名稱會加以刪除，但其會保留在快取內幾分鐘。重新命名的多可用區域資料庫叢集的新 DNS 名稱會在大約 2 分鐘內生效。重新命名的多可用區域資料庫叢集必須等到新名稱生效後才可使用。
+ 重新命名叢集時，您無法使用現有的多可用區域資料庫叢集名稱。
+ 如果您重複使用資料庫叢集名稱，與多可用區域資料庫叢集名稱相關聯的指標和事件會保留下來。
+ 多可用區域資料庫叢集標籤會與多可用區域資料庫叢集一起保留，無論重新命名與否。
+ 重新命名的多可用區域資料庫叢集會保留其資料庫叢集快照。

**注意**  
多可用區域資料庫叢集是在雲端中執行的隔離資料庫環境。多可用區域資料庫叢集可以託管多個資料庫。如需有關變更資料庫名稱的資訊，請參閱資料庫引擎相關文件。

## 重新命名以取代現有的多可用區域資料庫叢集
<a name="multi-az-db-cluster-rename-to-replace"></a>

重新命名多可用區域資料庫叢集的最常見案例，包括從資料庫叢集快照還原資料，或執行時間點復原 (PITR)。透過重新命名多可用區域資料庫叢集，您可以取代多可用區域資料庫叢集，而無需變更參考多可用區域資料庫叢集的任何應用程式碼。在這些情況下，完成下列步驟：

1. 停止所有流量進入多可用區域資料庫叢集。您可以重新導向流量，以免其存取多可用區域資料庫叢集上的資料庫，或選擇其他方式，來防止流量存取多可用區域資料庫叢集上的資料庫。

1. 重新命名現有的多可用區域資料庫叢集。

1. 透過從資料庫叢集還原或復原至某個時間點，來建立新的多可用區域資料庫叢集。然後，為新的多可用區域資料庫叢集提供先前的多可用區域資料庫叢集的名稱。

如果您刪除舊的多可用區域資料庫叢集，則必須負責刪除舊的多可用區域資料庫叢集的任何不需要的資料庫叢集快照。

## 主控台
<a name="multi-az-db-cluster-rename.CON"></a>

**重新命名多可用區域資料庫叢集**

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

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

1. 選擇您要重新命名的多可用區域資料庫叢集。

1. 選擇 **Modify** (修改)。

1. 在 **Settings** (設定) 中，針對 **DB cluster identifier** (資料庫叢集識別符)，輸入新名稱。

1. 選擇 **Continue (繼續)**。

1. 若要立即套用變更，請選擇 **Apply immediately** (立即套用)。在某些情況下，選擇此選項會導致停機。如需更多詳細資訊，請參閱 [立即套用變更](modify-multi-az-db-cluster.md#modify-multi-az-db-cluster-apply-immediately)。

1. 在確認頁面上，檢閱您的變更。如果都正確，請選擇 **Modify cluster (修改叢集)** 以儲存您的變更。

   或者，選擇 **Back** (上一步) 以編輯您的變更，或是選擇 **Cancel** (取消) 以捨棄您的變更。

## AWS CLI
<a name="multi-az-db-cluster-rename.CLI"></a>

若要重新命名多可用區域資料庫叢集，請使用 AWS CLI 命令 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)。使用多可用區域資料庫叢集的新名稱提供目前的 `--db-cluster-identifier` 值和 `--new-db-cluster-identifier` 參數。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier DBClusterIdentifier \
3.     --new-db-cluster-identifier NewDBClusterIdentifier
```
在 Windows 中：  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier DBClusterIdentifier ^
3.     --new-db-cluster-identifier NewDBClusterIdentifier
```

## RDS API
<a name="multi-az-db-cluster-rename.API"></a>

若要重新命名多可用區域資料庫叢集，請搭配下列參數呼叫 Amazon RDS API 操作 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)：
+ `DBClusterIdentifier` – 資料庫叢集的現有名稱。
+ `NewDBClusterIdentifier` – 資料庫叢集的新名稱。

# 重新啟動 Amazon RDS 的多可用區域資料庫叢集和讀取器資料庫執行個體
<a name="multi-az-db-clusters-concepts-rebooting"></a>

您可能需要重新啟動多可用區域資料庫叢集，這通常是為了維護的原因。例如，假如您進行了某些修改，或變更與資料庫叢集相關聯的資料庫叢集參數群組，則要重新啟動資料庫叢集。這樣才可讓變更生效。

如果資料庫叢集未使用其相關聯資料庫叢集參數群組的最新變更，則 AWS 管理主控台 會顯示狀態為**待重新啟動**的資料庫叢集參數群組。**pending-reboot** (等待重新啟動) 參數群組狀態不會在下一個維護時段期間造成自動重新啟動。若要對該資料庫叢集套用最新參數變更，請手動重新啟動資料庫叢集。如需參數群組的詳細資訊，請參閱[多可用區域資料庫叢集的參數群組](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)。

重新啟動資料庫叢集，將會重新啟動資料庫引擎服務。重新啟動資料庫叢集會暫時中斷，在此期間，資料庫叢集狀態設定為 **rebooting** (重新啟動中)。

如果資料庫叢集不是 **Available** (可用) 狀態，就無法重新啟動資料庫叢集。資料庫無法使用可能由多種原因導致，例如，備份進行中、先前要求的修改，或維護時段的動作。

重新啟動資料庫叢集所需的時間取決於損毀復原程序、重新啟動當時的資料庫活動，以及特定資料庫叢集的行為。若要改善重新啟動時間，建議在重新啟動程序期間盡可能減少資料庫活動。減少資料庫活動，可降低傳輸中交易的轉返活動。

**重要**  
多可用區域資料庫叢集不支援使用容錯移轉重新啟動。當您重新啟動多可用區域資料庫叢集的寫入器執行個體時，不會影響該資料庫叢集中的讀取器資料庫執行個體，也不會發生容錯移轉。重新啟動讀取器資料庫執行個體時，不會發生容錯移轉。若要容錯移轉多可用區域資料庫叢集，請在主控台中選擇**容錯移轉**、呼叫 AWS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/rds/failover-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/failover-db-cluster.html)，或呼叫 API 操作 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html)。

## 主控台
<a name="USER_RebootMultiAZDBCluster.Console"></a>

**若要重新啟動資料庫叢集**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要重新啟動的多可用區域資料庫叢集。

1. 針對 **Actions** (動作)，選擇 **Reboot** (重新啟動)。

   **Reboot DB cluster (重新啟動資料庫叢集)** 頁面隨即出現。

1. 選擇 **Reboot (重新啟動)** 以重新啟動您的資料庫叢集。

   或者選擇 **Cancel (取消)**。

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

若要使用 重新啟動多可用區域資料庫叢集 AWS CLI，請呼叫 [reboot-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-cluster.html) 命令。

```
aws rds reboot-db-cluster --db-cluster-identifier mymultiazdbcluster
```

## RDS API
<a name="USER_RebootMultiAZDBCluster.API"></a>

若要藉由使用 Amazon RDS API 重新啟動多可用區域資料庫叢集，請呼叫 [RebootDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RebootDBCluster.html) 操作。

# 容錯移轉 Amazon RDS 的多可用區域資料庫叢集
<a name="multi-az-db-clusters-concepts-failover"></a>

如果您的多可用區域資料庫叢集中的寫入器資料庫執行個體發生計劃內或計劃外中斷，Amazon RDS 會自動容錯移轉到不同可用區域中的讀取器資料庫執行個體。這可確保高可用性，並將中斷降至最低。在硬體故障、網路問題或手動請求期間，可能會發生容錯移轉。主題概述故障的自動偵測、容錯移轉期間的事件順序，及其對讀取和寫入操作的影響。它還提供最佳實務，以監控和最小化容錯移轉時間。

完成容錯移轉所需的時間取決於寫入器資料庫執行個體失效時的資料庫活動和其他條件。容錯移轉時間通常低於 35 秒。當兩個讀取器資料庫執行個體都套用來自失敗寫入器的未完成交易時，容錯移轉就會完成。容錯移轉完成後，RDS 控制台使用者界面可能需要多一點時間來反映新的可用區域。

**Topics**
+ [自動容錯移轉](#multi-az-db-clusters-concepts-failover-automatic)
+ [手動容錯移多可用區域資料庫叢集](#multi-az-db-clusters-concepts-failover-manual)
+ [判斷多可用區域資料庫叢集是否已容錯移轉](#multi-az-db-clusters-concepts-failover-determining)
+ [設定 DNS 名稱查詢的 JVM TTL](#multi-az-db-clusters-concepts-failover-java-dns)

## 自動容錯移轉
<a name="multi-az-db-clusters-concepts-failover-automatic"></a>

Amazon RDS 會自動處理容錯移轉，因此您可以盡快恢復資料庫操作，而無須人為介入管理。若要容錯移轉，寫入器資料庫執行個體會自動切換至讀取器資料庫執行個體。

## 手動容錯移多可用區域資料庫叢集
<a name="multi-az-db-clusters-concepts-failover-manual"></a>

如果您手動容錯移轉多可用區域資料庫叢集，RDS 會先終止主要資料庫執行個體。然後，內部監控系統偵測到主要資料庫執行個體運作狀態不佳，並提升可讀取的複本資料庫執行個體。容錯移轉時間通常低於 35 秒。

您可以使用 AWS 管理主控台、AWS CLI 或 RDS API 手動容錯移轉多可用區域資料庫叢集。

### 主控台
<a name="multi-az-db-clusters-concepts-failover-manual-con"></a>

**若要手動容錯移轉多可用區域資料庫叢集**

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

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

1. 選擇您要容錯移轉的多可用區域資料庫叢集。

1. 針對 **Actions** (動作)，選擇 **Failover** (容錯移轉)。

   **容錯移轉資料庫叢集**頁面隨即出現。

1. 選擇 **Failover (容錯移轉)** 以確認手動容錯移轉。

### AWS CLI
<a name="multi-az-db-clusters-concepts-failover-manual-cli"></a>

若要手動容錯移轉多可用區域資料庫叢集，請使用 AWS CLI 命令 [ failover-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/failover-db-cluster.html)。

**Example**  

```
1. aws rds failover-db-cluster --db-cluster-identifier mymultiazdbcluster
```

### RDS API
<a name="multi-az-db-clusters-concepts-failover-manual-api"></a>

若要手動容錯移轉多可用區域資料庫叢集，請呼叫 Amazon RDS API [FailoverDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html) 並指定 `DBClusterIdentifier`。

## 判斷多可用區域資料庫叢集是否已容錯移轉
<a name="multi-az-db-clusters-concepts-failover-determining"></a>

若要判斷您的多可用區域資料庫叢集是否已容錯移轉，您可以執行下列動作：
+ 設定資料庫事件訂閱，透過電子郵件或 SMS 通知您已啟動容錯移轉。如需事件的詳細資訊，請參閱[使用 Amazon RDS 事件通知](USER_Events.md)。
+ 使用 Amazon RDS 主控台或 API 操作來檢視資料庫事件。
+ 使用 Amazon RDS 主控台、AWS CLI 和 RDS API，檢視多可用區域資料庫叢集的目前狀態。

有關如何回應容錯移轉、減少恢復時間以及其他 Amazon RDS 最佳實務，詳細資訊請參閱 [Amazon RDS 的最佳實務](CHAP_BestPractices.md)。

## 設定 DNS 名稱查詢的 JVM TTL
<a name="multi-az-db-clusters-concepts-failover-java-dns"></a>

容錯移轉機制會自動將資料庫執行個體的網域名稱系統 (DNS) 記錄變更為指向讀取器資料庫執行個體。因此，您必須重新建立資料庫執行個體任何現有的連線。在 Java 虛擬機器 (JVM) 環境中，基於 Java DNS 快取機制的運作方式，您可能需要重新配置 JVM 設定。

JVM 會快取 DNS 名稱查詢。當 JVM 將主機名稱解析為 IP 地址時，它會在指定的時間段內快取 IP 地址，稱為*存留時間* (TTL)。

由於 AWS 資源使用偶爾會變更的 DNS 名稱項目，因此建議您將 JVM 設定為不超過 60 秒的 TTL 值。如此可確保當資源的 IP 位址變更時，您的應用程式可以透過重新查詢 DNS 來接收並使用資源的新 IP 位址。

在一些 Java 組態上，則會設定 JVM 預設 TTL，以便其在重新啟動 JVM 之前絕對不會重新整理 DNS 項目。因此，如果您的應用程式仍在執行時，AWS 資源的 IP 地址發生變更，則在您手動重新啟動 JVM 並重新整理快取的 IP 資訊之前，將無法使用該資源。在此情況下，設定 JVM 的 TTL 至為關鍵，以便其定期重新整理其快取的 IP 資訊。

**注意**  
預設 TTL 可能會視 JVM 的版本以及是否已安裝安全管理員而異。許多 JVM 提供的預設 TTL 少於 60 秒。如果您使用此類 JVM (而非安全管理員)，則可忽略本主題的其餘內容。如需 Oracle 中安全管理員的詳細資訊，請參閱 Oracle 文件中的[安全管理員](https://docs.oracle.com/javase/tutorial/essential/environment/security.html)。

若要修改 JVM 的 TTL，請設定 [https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html](https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html) 屬性值。根據您的需求，使用下列其中一種方法：
+ 若要為使用 JVM 的所有應用程式全域設定屬性值，請在 `networkaddress.cache.ttl` 檔案中設定 `$JAVA_HOME/jre/lib/security/java.security`。

  ```
  networkaddress.cache.ttl=60								
  ```
+ 若要僅針對您的應用程式進行適當的本機設定，請在建立任何網路連線之前，在您應用程式的初始化程式碼中設定 `networkaddress.cache.ttl`。

  ```
  java.security.Security.setProperty("networkaddress.cache.ttl" , "60");									
  ```

# 為 Amazon RDS 的多可用區域資料庫叢集設定 PostgreSQL 邏輯複寫
<a name="USER_MultiAZDBCluster_LogicalRepl"></a>

透過搭配多可用區域資料庫叢集使用 PostgreSQL 邏輯複寫，您可以複寫和同步個別資料表，而不是整個資料庫執行個體。邏輯複寫會使用發佈與訂閱模型，將來源中的變更複寫到一或多個收件人。其運作方式為使用 PostgreSQL 預寫日誌 (WAL) 中的變更記錄。如需詳細資訊，請參閱[為 Amazon RDS for PostgreSQL 執行邏輯複寫](PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication.md)。

當您在多可用區域資料庫叢集的寫入器資料庫執行個體上建立新的邏輯複寫插槽時，插槽會以非同步方式複製到叢集中的每個讀取器資料庫執行個體。讀取器資料庫執行個體上的插槽會持續與寫入器資料庫執行個體上的插槽同步。

執行 RDS for PostgreSQL 14.8-R2 版及更新版本，以及 15.3-R2 版及更新版本的多可用區域資料庫叢集支援邏輯複寫。

**注意**  
除了原生 PostgreSQL 邏輯複寫功能之外，執行 RDS for PostgreSQL 的多可用區域資料庫叢集也支援 `pglogical` 延伸模組。

如需 PostgreSQL 邏輯複寫的詳細資訊，請參閱 PostgreSQL 文件中的[邏輯複寫](https://www.postgresql.org/docs/current/logical-replication.html)。

**Topics**
+ [先決條件](#multi-az-db-clusters-logical-replication-prereqs)
+ [設定邏輯複寫](#multi-az-db-clusters-logical-replication)
+ [限制與建議](#multi-az-db-clusters-logical-replication-limitations)

## 先決條件
<a name="multi-az-db-clusters-logical-replication-prereqs"></a>

若要為多可用區域資料庫叢集設定 PostgreSQL 邏輯複寫，您必須符合下列先決條件。
+ 您的使用者帳戶必須是 `rds_superuser` 群組的成員並具有 `rds_superuser` 權限。如需詳細資訊，請參閱[了解 PostgreSQL 角色和許可](Appendix.PostgreSQL.CommonDBATasks.Roles.md)。
+ 您的多可用區域資料庫叢集必須與自訂資料庫叢集參數群組相關聯，以便您可以設定下列程序中所述的參數值。如需詳細資訊，請參閱[使用多可用區域資料庫叢集的資料庫叢集參數群組](USER_WorkingWithDBClusterParamGroups.md)。

## 設定邏輯複寫
<a name="multi-az-db-clusters-logical-replication"></a>

若要為多可用區域資料庫叢集設定邏輯複寫，請在相關聯的資料庫叢集參數群組內啟用特定參數，然後建立邏輯複寫插槽。

**注意**  
從 PostgreSQL 第 16 版開始，您可以使用多可用區域資料庫叢集的讀取器資料庫執行個體進行邏輯複寫。

**為 RDS for PostgreSQL 多可用區域資料庫叢集設定邏輯複寫**

1. 開啟與 RDS for PostgreSQL 多可用區域資料庫叢集相關聯的自訂資料庫叢集參數群組。

1. 在**參數**搜尋欄位中，找出 `rds.logical_replication` 靜態參數並將其值設為 `1`。此參數變更可能會增加 WAL 產生，因此只有在使用邏輯插槽時才啟用該變更。

1. 做為此變更的一部分，請設定下列資料庫叢集參數。
   + `max_wal_senders`
   + `max_replication_slots`
   + `max_connections`

   根據您預期的用量，您可能也需要變更下列參數的值。不過，在許多情況下，預設值就足夠了。
   + `max_logical_replication_workers`
   + `max_sync_workers_per_subscription`

1. 重新啟動多可用區域資料庫叢集，讓參數值生效。如需說明，請參閱[重新啟動 Amazon RDS 的多可用區域資料庫叢集和讀取器資料庫執行個體](multi-az-db-clusters-concepts-rebooting.md)。

1. 如 [使用邏輯複寫槽](PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication.md#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplicationSlots) 中所述，在多可用區域資料庫叢集的寫入器資料庫執行個體上建立邏輯複寫插槽。此程序要求您指定解碼外掛程式。目前，RDS for PostgreSQL 支援隨附於 PostgreSQL 的 `test_decoding`、`wal2json` 和 `pgoutput` 外掛程式。

   插槽會以非同步方式複製到叢集中的每個讀取器資料庫執行個體。

1. 驗證多可用區域資料庫叢集的所有讀取器資料庫執行個體上的插槽狀態。若要這麼做，請檢查所有讀取器資料庫執行個體上的 `pg_replication_slots` 檢視，並確定當應用程式主動取用邏輯變更時，`confirmed_flush_lsn` 狀態正在進行。

   下列命令示範如何檢查讀取器資料庫執行個體上的複寫狀態。

   ```
   % psql -h test-postgres-instance-2.abcdefabcdef.us-west-2.rds.amazonaws.com
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D0001700
   (1 row)
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D8003628
   (1 row)
   
   % psql -h test-postgres-instance-3.abcdefabcdef.us-west-2.rds.amazonaws.com
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D0001700
   (1 row)
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D8003628
   (1 row)
   ```

在完成複寫任務之後，您應該停止複寫程序、捨棄複寫插槽，並關閉邏輯複寫。若要關閉邏輯複寫，請修改您的資料庫叢集參數群組，並將 `rds.logical_replication` 的值設回 `0`。重新啟動叢集，讓參數變更生效。

## 限制與建議
<a name="multi-az-db-clusters-logical-replication-limitations"></a>

將邏輯複寫用於執行 PostgreSQL 第 16 版的多可用區域資料庫叢集時，適用下列限制和建議：
+ 您只能使用寫入器資料庫執行個體來建立或捨棄邏輯複寫插槽。例如，`CREATE SUBSCRIPTION` 命令必須在主機連接字串中使用叢集寫入器端點。
+ 在任何資料表同步或重新同步期間，都必須使用叢集寫入器端點。例如，您可以使用下列命令來重新同步新增的資料表：

  ```
  Postgres=>ALTER SUBSCRIPTION subscription-name CONNECTION host=writer-endpoint
  Postgres=>ALTER SUBSCRIPTION subscription-name REFRESH PUBLICATION
  ```
+ 您必須等待資料表同步完成，才能使用讀取器資料庫執行個體進行邏輯複寫。您可以使用 `[pg\$1subscription\$1rel](https://www.postgresql.org/docs/current/catalog-pg-subscription-rel.html)` 目錄資料表來監控資料表同步。當 `srsubstate` 欄設定為就緒 (`r`) 時，表示資料表同步完成。
+ 建議您在初始資料表同步完成後，使用執行個體端點進行邏輯複寫連線。下列命令會將複寫卸載至其中一個讀取器資料庫執行個體，以減輕寫入器資料庫執行個體的負載：

  ```
  Postgres=>ALTER SUBSCRIPTION subscription-name CONNECTION host=reader-instance-endpoint
  ```

  您無法同時在多個資料庫執行個體上使用相同的插槽。當兩個或更多應用程式從叢集中的不同資料庫執行個體複寫邏輯變更時，某些變更可能會因為叢集容錯移轉或網路問題而遺失。在這類情況下，您可以在主機連接字串中使用執行個體端點進行邏輯複寫。其他使用相同組態的應用程式會顯示下列錯誤訊息：

  ```
  replication slot slot_name is already active for PID x providing immediate feedback.
  ```
+ 使用 `pglogical` 延伸模組時，您只能使用叢集寫入器端點。延伸模組有其已知限制，可能會在資料表同步期間建立未使用的邏輯複寫插槽。過時的複寫插槽會保留預先寫入日誌 (WAL) 檔案，而可能導致磁碟空間問題。

# 對 Amazon RDS 使用多可用區域資料庫叢集僅供讀取複本
<a name="USER_MultiAZDBCluster_ReadRepl"></a>

資料庫叢集僅供讀取複本是一種特別的叢集類型，您可以從來源資料庫執行個體建立。建立僅供讀取複本後，對主要資料庫執行個體所做的任何更新，會以非同步方式複製到多可用區域資料庫叢集僅供讀取複本。您可以將讀取查詢從應用程式路由到僅供讀取複本，以減少主要資料庫執行個體的負載。使用僅供讀取複本，您可以彈性地擴展超越單一資料庫執行個體的容量限制，以處理高讀取量的資料庫工作負載。

您也可以從多可用區域資料庫叢集建立一或多個資料庫執行個體的僅供讀取複本。資料庫執行個體僅供讀取複本可讓您將過多的讀取流量導向僅供讀取複本，進而擴充超越來源多可用區域資料庫叢集的運算或 I/O 容量。目前，您無法從現有的多可用區域資料庫叢集建立多可用區域資料庫叢集的僅供讀取複本。

選擇要使用僅供讀取複本遷移至多可用區域資料庫叢集，或是從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本時，請考量您的特定使用案例和效能需求。

**使用僅供讀取複本遷移至多可用區域資料庫叢集**  
若您需要增強資料庫的可用性和耐久性，同時將停機時間降至最低，這就是理想的方法。使用僅供讀取複本轉換至多可用區域資料庫叢集，可確保持續操作和資料一致性。此方法特別適用於必須維持可用性並減輕即時工作負載所受影響的生產環境。

**從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本**  
若您想要擴展讀取操作，或是卸載來自主要資料庫執行個體的讀取流量，就適合使用此方法。藉由從現有的多可用區域資料庫叢集建立僅供讀取複本，您將可分散大量讀取工作負載並改善效能，而不會影響主要執行個體的穩定性。

正確的方法取決於您的優先順序是確保高可用性和耐久性，還是擴展讀取效能。請評估工作負載特性和操作需求，以做出明智的決策。

**Topics**
+ [使用僅供讀取複本遷移至多可用區域資料庫叢集](multi-az-db-clusters-migrating-to-with-read-replica.md)
+ [從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本](multi-az-db-clusters-create-instance-read-replica.md)

# 使用僅供讀取複本遷移至多可用區域資料庫叢集
<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，多可用區域資料庫叢集僅供讀取複本無法容錯移轉。

# 從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本
<a name="multi-az-db-clusters-create-instance-read-replica"></a>

您可以從多可用區域資料庫叢集建立資料庫執行個體的僅供讀取複本，以便擴充超越叢集的運算或 I/O 容量，用以處理高讀取量的資料庫工作負載。您可以將此多餘讀取流量指向到一或多個資料庫執行個體僅供讀取複本。您也可以使用僅供讀取複本，從多可用區域資料庫叢集遷移至資料庫執行個體。

若要建立僅供讀取複本，請指定多可用區域資料庫叢集作為複寫來源。多可用區域資料庫叢集的其中一個讀取器執行個體永遠是複寫的來源，而不是寫入器執行個體。此條件可確保複本始終與來源叢集同步，即使在容錯移轉的情況下也是如此。

**Topics**
+ [比較讀取器資料庫執行個體和資料庫執行個體僅供讀取複本](#multi-az-db-clusters-readerdb-vs-dbrr)
+ [考量事項](#multi-az-db-clusters-instance-read-replica-considerations)
+ [建立資料庫執行個體僅供讀取複本](#multi-az-db-clusters-instance-read-replica-create)
+ [提升資料庫執行個體僅供讀取複本](#multi-az-db-clusters-promote-instance-read-replica)
+ [從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本的限制](#multi-az-db-clusters-create-instance-read-replica-limitations)

## 比較讀取器資料庫執行個體和資料庫執行個體僅供讀取複本
<a name="multi-az-db-clusters-readerdb-vs-dbrr"></a>

多可用區域資料庫叢集的*資料庫執行個體僅供讀取複本*在下列方面與多可用區域資料庫叢集的*讀取器資料庫執行個體*不同：
+ 讀取器資料庫執行個體會做為自動容錯移轉目標，而資料庫執行個體僅供讀取複本不是。
+ 讀取器資料庫執行個體必須先確認來自寫入器資料庫執行個體的變更，才能遞交變更。然而，對於資料庫執行個體僅供讀取複本，不需要確認，更新就會以非同步方式複製到僅供讀取複本。
+ 讀取器資料庫執行個體一律與多可用區域資料庫叢集的寫入器資料庫執行個體共用相同的執行個體類別、儲存類型和引擎版本。但是，資料庫執行個體僅供讀取複本不一定需要與來源叢集共用相同的組態。
+ 您可將資料庫執行個體僅供讀取複本提升為獨立資料庫執行個體。您無法將多可用區域資料庫叢集的讀取器資料庫執行個體提升為獨立執行個體。
+ 讀取器端點僅會將請求路由至多可用區域資料庫叢集的讀取器資料庫執行個體。它絕不會將請求路由到資料庫執行個體僅供讀取複本。

如需有關讀取器和寫入器資料庫執行個體的詳細資訊，請參閱 [多可用區域資料庫叢集架構](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-overview)。

## 考量事項
<a name="multi-az-db-clusters-instance-read-replica-considerations"></a>

從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本之前，請考量以下項目：
+ 當您建立資料庫執行個體僅供讀取複本時，它必須與其來源叢集位於相同的主要版本，並位於相同或更新的次要版本。建立僅供讀取複本之後，您可以選擇性地將僅供讀取複本升級到比來源叢集更高的次要版本。
+ 建立資料庫執行個體僅供讀取複本時，配置的儲存體必須與來源多可用區域資料庫叢集的配置儲存體相同。您可以在建立僅供讀取複本之後變更已配置的儲存體。
+ 對於 RDS for MySQL，來源多可用區域資料庫叢集的 `gtid-mode` 參數必須設定為 `ON`。如需詳細資訊，請參閱[使用多可用區域資料庫叢集的資料庫叢集參數群組](USER_WorkingWithDBClusterParamGroups.md)。
+ 長時間執行的作用中交易會使建立僅供讀取複本的流程變慢。建議您等到長時間執行交易完成後，再建立僅供讀取複本。
+ 如果您刪除資料庫執行個體僅供讀取複本的來源多可用區域資料庫叢集，它所寫入的任何僅供讀取複本都會提升為獨立的資料庫執行個體。

## 建立資料庫執行個體僅供讀取複本
<a name="multi-az-db-clusters-instance-read-replica-create"></a>

您可以使用 AWS 管理主控台 AWS CLI或 RDS API，從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本。

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

### 主控台
<a name="multi-az-db-clusters-create-instance-read-replica-console"></a>

若要從多可用區域資料庫叢集建立資料庫執行個體，請使用 AWS 管理主控台完成下列步驟。

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

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

1. 選擇要作為僅供讀取複本來源的多可用區域資料庫叢集。

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

1. 對於**複本來源**，請確定已選取正確的多可用區域資料庫叢集。

1. 在**資料庫識別符**中，輸入僅供讀取複本的名稱。

1. 在其餘區段，指定資料庫執行個體的設定。如需設定的相關資訊，請參閱 [資料庫執行個體的設定](USER_CreateDBInstance.Settings.md)。
**注意**  
資料庫執行個體僅供讀取複本配置的儲存體必須與來源多可用區域資料庫叢集配置的儲存體相同。

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

### AWS CLI
<a name="multi-az-db-clusters-create-instance-read-replica-cli"></a>

若要從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本，請使用 AWS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)。若為 `--source-db-cluster-identifier`，請指定多可用區域資料庫叢集的識別符。

在 Linux、macOS 或 Unix 中：

```
aws rds create-db-instance-read-replica \
  --db-instance-identifier myreadreplica \
  --source-db-cluster-identifier mymultiazdbcluster
```

在 Windows 中：

```
aws rds create-db-instance-read-replica ^
  --db-instance-identifier myreadreplica ^
  --source-db-cluster-identifier mymultiazdbcluster
```

### RDS API
<a name="multi-az-db-clusters-create-instance-read-replica-api"></a>

若要從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本，請使用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) 操作。

## 提升資料庫執行個體僅供讀取複本
<a name="multi-az-db-clusters-promote-instance-read-replica"></a>

如果您不再需要資料庫執行個體僅供讀取複本，您可以將其提升為獨立的資料庫執行個體。當您提升僅供讀取複本時，資料庫執行個體將在可使用前重新啟動。如需說明，請參閱 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)。

如果您使用僅供讀取複本，將多可用區域資料庫叢集部署遷移至單一可用區域或多可用區域資料庫執行個體部署，請務必停止正在寫入來源資料庫叢集的任何交易。然後，等候對僅供讀取複本進行的所有更新。在多可用區域資料庫叢集的其中一個讀取器資料庫執行個體上進行資料庫更新後，才會在僅供讀取複本上發生資料庫更新。此複寫延遲可能會有很大不同。使用 `ReplicaLag` 指標以確定針對僅供讀取複本進行的所有更新時間。如需複本延遲的詳細資訊，請參閱 [監控僅供讀取複本](USER_ReadRepl.Monitoring.md)。

提升僅供讀取複本之後，請等待提升資料庫執行個體的狀態變成 `Available`，接著再指示您的應用程式使用提升後的資料庫執行個體。或者，如果不再需要，您可以選擇刪除多可用區域資料庫叢集部署。如需說明，請參閱 [刪除 Amazon RDS 的多可用區域資料庫叢集](USER_DeleteMultiAZDBCluster.Deleting.md)。

## 從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本的限制
<a name="multi-az-db-clusters-create-instance-read-replica-limitations"></a>

下列限制適用於從多可用區域資料庫叢集部署建立資料庫執行個體僅供讀取複本。
+ 您無法在與 AWS 帳戶 擁有來源多可用區域資料庫叢集 AWS 帳戶 的 不同的 中建立資料庫執行個體僅供讀取複本。
+ 您無法在 AWS 區域 與來源多可用區域資料庫叢集不同的 中建立資料庫執行個體僅供讀取複本。
+ 您無法將資料庫執行個體僅供讀取複本復原至某個時間點。
+ 儲存體加密必須在來源多可用區域資料庫叢集和資料庫執行個體僅供讀取複本上具有相同的設定。
+ 如果來源多可用區域資料庫叢集已加密，則資料庫執行個體僅供讀取複本必須使用相同的 KMS 金鑰來加密。
+ 若要在來源多可用區域資料庫叢集上執行次要版本升級，您必須先在資料庫執行個體僅供讀取複本上執行次要版本升級。
+ 資料庫執行個體僅供讀取複本不支援階層式僅供讀取複本。
+ 對於 RDS for PostgreSQL，來源多可用區域資料庫叢集必須執行 PostgreSQL 13.11、14.8 或 15.2.R2 版或更新版本，才能建立資料庫執行個體僅供讀取複本。
+ 您可以在資料庫執行個體僅供讀取複本的來源多可用區域資料庫叢集上執行主要版本升級，但複寫至僅供讀取複本會停止且無法重新啟動。

# 從 Amazon RDS 的多可用區域資料庫叢集設定外部複寫
<a name="multi-az-db-clusters-external-replication"></a>

您可以設定多可用區域資料庫叢集與 Amazon RDS 外部資料庫之間的複寫。

外部複寫可讓多可用區域資料庫叢集在內部部署或其他雲端環境中的 RDS 資料庫執行個體與外部資料庫之間複寫資料。它有利於災難復原、資料遷移，並維護不同位置系統之間的一致性。本節涵蓋設定複寫的先決條件、如何設定程序，以及複寫延遲、頻寬和與不同資料庫引擎相容性等重要考量。

## RDS for MySQL
<a name="multi-az-db-clusters-external-mysql"></a>

若要設定 RDS for MySQL 多可用區域資料庫叢集的外部複寫，您必須在叢集內的資料庫執行個體上保留二進位日誌檔案足夠長的時間，以確保在 Amazon RDS 刪除 binlog 檔案之前，將變更套用至複本。若要這麼做，請呼叫 `mysql.rds_set_configuration` 預存程序並指定 `binlog retention hours` 參數來設定二進位日誌保留。如需詳細資訊，請參閱[binlog 保留 (小時)](mysql-stored-proc-configuring.md#mysql_rds_set_configuration-usage-notes.binlog-retention-hours)。

`binlog retention hours` 的預設值為 `NULL`，這表示不會保留二進位日誌 (0 小時)。如果您想要設定多可用區域資料庫叢集的外部複寫，您必須將參數設定為 `NULL` 以外的值。

您只能從多可用區域資料庫叢集的寫入器資料庫執行個體設定二進位日誌保留，且該設定會以異步方式傳播至所有讀取器資料庫執行個體。

此外，我們強烈建議在您的外部複本上啟用 GTID 型複寫。然後，如果其中一個資料庫執行個體失敗，則您可以從叢集內另一個運作狀態良好的資料庫執行個體繼續複寫。如需詳細資訊，請參閱 MySQL 文件中的[使用全域交易識別符的複寫](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids.html)。

## RDS for PostgreSQL
<a name="multi-az-db-clusters-external-postgres"></a>

若要為 RDS for PostgreSQL 多可用區域資料庫叢集設定外部複寫，您必須啟用邏輯複寫。如需說明，請參閱[為 Amazon RDS 的多可用區域資料庫叢集設定 PostgreSQL 邏輯複寫](USER_MultiAZDBCluster_LogicalRepl.md)。

# 刪除 Amazon RDS 的多可用區域資料庫叢集
<a name="USER_DeleteMultiAZDBCluster.Deleting"></a>

您可以使用 AWS 管理主控台、AWS CLI 或 RDS API 刪除多可用區域資料庫叢集。

刪除多可用區域資料庫叢集所需的時間會根據下列因素而不同：
+ 備份保留期間 (也就是要刪除的備份數量)。
+ 刪除的資料量。
+ 是否擷取最終快照。

必須對多可用區域資料庫叢集停用刪除保護，您才能將其刪除。如需詳細資訊，請參閱 [刪除資料庫執行個體的先決條件](USER_DeleteInstance.md#USER_DeleteInstance.DeletionProtection)。您可以修改多可用區域資料庫叢集，藉以停用刪除保護。如需詳細資訊，請參閱 [使用 Amazon RDS 修改多可用區域資料庫叢集](modify-multi-az-db-cluster.md)。

## 主控台
<a name="USER_DeleteMultiAZDBCluster.Deleting.CON"></a>

**若要刪除多可用區域資料庫叢集**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要刪除的多可用區域資料庫叢集。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 選擇 **Create final snapshot? (是否建立最終快照？)**，為多可用區域資料庫叢集建立最終資料庫快照。

   如果您建立最終快照，請針對 **Final snapshot name (最終快照名稱)** 輸入名稱。

1. 選擇 **Retain automated backups (保留自動備份)** 來保留自動備份。

1. 在方塊中輸入 **delete me**。

1. 選擇 **刪除**。

## AWS CLI
<a name="USER_DeleteMultiAZDBCluster.Deleting.CLI"></a>

若要使用 AWS CLI 刪除多可用區域資料庫叢集，請搭配下列選項呼叫 [delete-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-cluster.html) 命令：
+ `--db-cluster-identifier`
+ `--final-db-snapshot-identifier` 或 `--skip-final-snapshot` \$1

**Example 具有最終快照**  
針對 Linux、macOS 或 Unix：  

```
aws rds delete-db-cluster \
    --db-cluster-identifier mymultiazdbcluster \
    --final-db-snapshot-identifier mymultiazdbclusterfinalsnapshot
```
針對 Windows：  

```
aws rds delete-db-cluster ^
    --db-cluster-identifier mymultiazdbcluster ^
    --final-db-snapshot-identifier mymultiazdbclusterfinalsnapshot
```

**Example 沒有最終快照**  
針對 Linux、macOS 或 Unix：  

```
aws rds delete-db-cluster \
    --db-cluster-identifier mymultiazdbcluster \
    --skip-final-snapshot
```
針對 Windows：  

```
aws rds delete-db-cluster ^
    --db-cluster-identifier mymultiazdbcluster ^
    --skip-final-snapshot
```

## RDS API
<a name="USER_DeleteMultiAZDBCluster.Deleting.API"></a>

若要使用 Amazon RDS API 刪除多可用區域資料庫叢集，請搭配下列參數呼叫 [DeleteDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html) 操作：
+ `DBClusterIdentifier`
+ `FinalDBSnapshotIdentifier` 或 `SkipFinalSnapshot` \$1

# Amazon RDS 的多可用區域資料庫叢集的限制
<a name="multi-az-db-clusters-concepts.Limitations"></a>

Multi-AZ 資料庫叢集在三個不同的可用區域中有一個寫入器資料庫執行個體和兩個讀取器資料庫。多可用區域資料庫叢集相較於多可用區域部署，可提供高可用性、增加讀取工作負載的容量以及更低的延遲。如需建立多可用區域資料庫叢集的詳細資訊，請參閱[Amazon RDS 的多可用區域資料庫叢集部署](multi-az-db-clusters-concepts.md)。

下列限制適用於多可用區域資料庫叢集：
+ 多可用區域資料庫叢集不支援下列功能：
  + IPv6 連線 (雙堆疊模式)
  + 跨區域自動備份
  + Kerberos 身分驗證
  + 修改連接埠。或者，您可以將多可用區域資料庫叢集還原到某個時間點，並指定不同的連接埠。
  + 選項群組
  + 被刪除叢集的時間點復原 (PITR)
  + 藉由設定配置儲存體上限來自動擴展儲存體。或者，您可以手動擴展儲存體。
  + 停止和啟動多可用區域資料庫叢集
  + 複製多可用區域資料庫叢集的快照
  + 加密未加密的多可用區域資料庫叢集
+ RDS for MySQL 多可用區域資料庫叢集僅支援下列系統預存程序：
  + `mysql.rds_rotate_general_log`
  + `mysql.rds_rotate_slow_log`
  + `mysql.rds_show_configuration`
  + `mysql.rds_set_external_master_with_auto_position`
  + `mysql.rds_set_configuration`
+ RDS for PostgreSQL 多可用區域資料庫叢集不支援下列延伸模組：`aws_s3` 和 `pg_transport`。
+ RDS for PostgreSQL 多可用區域資料庫叢集不支援針對傳出網路存取使用自訂 DNS 伺服器。