

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

# 使用資料庫執行個體僅供讀取複本
<a name="USER_ReadRepl"></a>

僅供讀取複本是資料庫執行個體的唯讀副本。您可以將查詢從應用程式路由到僅供讀取複本，以減少主要資料庫執行個體的負載。如此一來，您可以彈性地擴展超越單一資料庫執行個體的容量限制，以處理高讀取量的資料庫工作負載。

若要從來源資料庫執行個體建立僅供讀取複本，Amazon RDS 會使用資料庫引擎的內建複寫功能。如需搭配特定引擎使用僅供讀取複本的資訊，請參閱下列各節：
+ [使用適用於 Amazon RDS for Db2 的複本](db2-replication.md)
+ [使用 MariaDB 僅供讀取複本](USER_MariaDB.Replication.ReadReplicas.md)
+ [使用 Amazon RDS 中的 Microsoft SQL Server 的僅供讀取複本](SQLServer.ReadReplicas.md)
+ [使用 MySQL 僅供讀取複本](USER_MySQL.Replication.ReadReplicas.md)
+ [使用適用於 Amazon RDS for Oracel 的僅供讀取複本](oracle-read-replicas.md)
+ [使用 Amazon RDS for PostgreSQL 的僅供讀取複本](USER_PostgreSQL.Replication.ReadReplicas.md)

在您從來源資料庫執行個體建立僅供讀取複本之後，來源會成為主要資料庫執行個體。當您對主要資料庫執行個體進行更新時，Amazon RDS 會以非同步方式將它們複製到僅供讀取複本。下圖顯示複寫到不同可用區域 (AZ) 中僅供讀取複本的來源資料庫執行個體。用戶端對主要資料庫執行個體具有讀取/寫入存取權，以及對複本具有唯讀存取權。

![僅供讀取複本組態](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/read-replica.png)


僅供讀取複本會以標準資料庫執行個體計費，費率與用於複本的資料庫執行個體類別相同。在相同 AWS 區域內的來源資料庫執行個體與僅供讀取複本之間複寫資料時，不會向您收取資料傳輸費用。如需詳細資訊，請參閱[跨區域複寫成本](USER_ReadRepl.XRgn.md#USER_ReadRepl.XRgn.Costs)及[Amazon RDS 資料庫執行個體計費 ](User_DBInstanceBilling.md)。

**Topics**
+ [Amazon RDS 僅供讀取複本的概觀](#USER_ReadRepl.Overview)
+ [資料庫引擎的僅供讀取複本之間的差異](USER_ReadRepl.Overview.Differences.md)
+ [建立僅供讀取複本](USER_ReadRepl.Create.md)
+ [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)
+ [監控僅供讀取複本](USER_ReadRepl.Monitoring.md)
+ [在不同的 中建立僅供讀取複本 AWS 區域](USER_ReadRepl.XRgn.md)

## Amazon RDS 僅供讀取複本的概觀
<a name="USER_ReadRepl.Overview"></a>

下列各節討論資料庫*執行個體*僅供讀取複本。如需多可用區域資料庫*叢集*僅供讀取複本的詳細資訊，請參閱 [對 Amazon RDS 使用多可用區域資料庫叢集僅供讀取複本](USER_MultiAZDBCluster_ReadRepl.md)。

**Topics**
+ [僅供讀取複本的使用案例](#USER_ReadRepl.Overview.use-cases)
+ [僅供讀取複本的運作方式](#USER_ReadRepl.Overview.how-it-works)
+ [多可用區域部署中的僅供讀取複本](#USER_ReadRepl.Overview.maz-replicas)
+ [跨區域僅供讀取複本](#USER_ReadRepl.Overview.xregion-replicas)
+ [僅供讀取複本儲存類型](#USER_ReadRepl.Overview.replica-storage)
+ [從複本建立複本的限制](#USER_ReadRepl.Overview.circular-replication)
+ [刪除複本時的考量](#USER_ReadRepl.Overview.deletion-considerations)

### 僅供讀取複本的使用案例
<a name="USER_ReadRepl.Overview.use-cases"></a>

為指定的來源資料庫執行個體部署一或多個僅供讀取複本，在各種鏈中可能都有意義，包括：
+ 擴展超越單一資料庫執行個體的運算或 I/O 容量，以處理高讀取量的資料庫工作負載。您可以將此多餘讀取流量指向到一或多個僅供讀取複本。
+ 在來源資料庫執行個體不可用時，為讀取流量提供服務。在某些情況下，如果您的來源資料庫執行個體無法處理 I/O 請求 (例如，由於備份或計劃維護而暫停 I/O)。在這些情況下，您可以將讀取流量導向到您的僅供讀取複本。請注意，在這種使用案例中，因為來源資料庫執行個體不可用，僅供讀取複本中的資料可能為「過時」狀態。
+ 商業報告或資料倉儲案例，您可能希望針對僅供讀取複本執行商業報告查詢，而非針對生產資料庫執行個體。
+ 實作災難復原。您可以在主要資料庫執行個體失敗時，提升僅供讀取複本為獨立的執行個體，以做為災難復原解決方案。

### 僅供讀取複本的運作方式
<a name="USER_ReadRepl.Overview.how-it-works"></a>

建立僅供讀取複本時，請將現有資料庫執行個體指定為來源。然後 Amazon RDS 會取得來源執行個體的快照，並從該快照建立唯讀執行個體。Amazon RDS 會使用非同步複寫方法，以供資料庫引擎更新僅供讀取複本，而不論主要資料庫執行個體是否有變更。

僅供讀取複本做為資料庫執行個體運作，並允許唯讀連接。例外是 RDS for Db2 和 RDS for Oracle 資料庫引擎，兩者分別支援待命模式和掛載模式的複本資料庫。待命複本和掛載複本不接受使用者連線，因此無法處理唯讀工作負載。待命複本和掛載複本的主要用途是跨區域災難復原。如需詳細資訊，請參閱[使用適用於 Amazon RDS for Db2 的複本](db2-replication.md)及[使用適用於 Amazon RDS for Oracel 的僅供讀取複本](oracle-read-replicas.md)。

應用程式會連線至僅供讀取複本，如同它們對任何資料庫執行個體所做一般。Amazon RDS 會複寫來源資料庫執行個體中的所有資料庫。

您必須手動建立僅供讀取複本。RDS 不支援自動調整僅供讀取複本，這是隨著讀取需求變更而自動新增或移除僅供讀取複本的功能。

### 多可用區域部署中的僅供讀取複本
<a name="USER_ReadRepl.Overview.maz-replicas"></a>

您可以在多可用區域部署中，為資料庫執行個體設定僅供讀取複本，該執行個體還具有設定為高可用性的待命複本。使用待命複本進行複寫是同步的。與僅供讀取複本不同，待命複本無法提供讀取流量。

在下列案例中，用戶端對某個 AZ 中的主要資料庫執行個體具有讀取/寫入存取權。主要執行個體會以非同步方式將更新複製到第二個 AZ 中的僅供讀取複本，並以同步方式將它們複製到第三個 AZ 中的待命複本。用戶端對僅供讀取複本只有讀取存取權。

![僅供讀取複本和待命複本組態](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/read-and-standby-replica.png)


如需高可用性和待命複本的相關資訊，請參閱[設定及管理 Amazon RDS 的多可用區域部署](Concepts.MultiAZ.md)。

### 跨區域僅供讀取複本
<a name="USER_ReadRepl.Overview.xregion-replicas"></a>

在某些情況下，僅供讀取複本位於 AWS 區域 與其主要資料庫執行個體不同的 中。在這些情況下，Amazon RDS 會在主要資料庫執行個體與僅供讀取複本之間設定安全通訊管道。Amazon RDS 會建立啟用安全頻道所需的任何 AWS 安全組態，例如新增安全群組項目。如需跨區域僅供讀取複本的相關資訊，請參閱[在不同的 中建立僅供讀取複本 AWS 區域](USER_ReadRepl.XRgn.md)。

本章中的資訊適用於在 AWS 區域 與來源資料庫執行個體相同的 或單獨的 中建立 Amazon RDS 僅供讀取複本 AWS 區域。以下資訊並不適用於在 Amazon EC2 執行個體上執行的執行個體，或內部部署的執行個體上設定複寫。

### 僅供讀取複本儲存類型
<a name="USER_ReadRepl.Overview.replica-storage"></a>

根據預設，僅供讀取複本建立時使用與來源資料庫執行個體相同的儲存類型。但您仍可以依照下表中的選項建立使用與來源資料庫執行個體不同儲存類型的僅供讀取複本。


| 來源資料庫執行個體儲存體類型 | 來源資料庫執行個體儲存體配置 | 僅供讀取複本儲存體類型選項 | 
| --- | --- | --- | 
| 佈建 IOPS | 100 GiB–64 TiB | 佈建 IOPS、一般用途、磁性 | 
| 一般用途 | 100 GiB–64 TiB | 佈建 IOPS、一般用途、磁性 | 
| 一般用途 | <100 GiB | 一般用途、磁性 | 
| 磁帶 | 100 GiB–6 TiB | 佈建 IOPS、一般用途、磁性 | 
| 磁帶 | <100 GiB | 一般用途、磁性 | 

**注意**  
當您提升僅供讀取複本的配置儲存空間時，其至少必須提升 10%。如果您嘗試以低於 10% 的值增加該值，便會發生錯誤。

### 從複本建立複本的限制
<a name="USER_ReadRepl.Overview.circular-replication"></a>

Amazon RDS 不支援循環複寫。您不能將資料庫執行個體設定為現有資料庫執行個體的複寫來源。您只能從現有的資料庫執行個體建立新的僅供讀取複本。例如，如果 **MySourceDBInstance** 建立複本到 **ReadReplica1**，您不能將 **ReadReplica1** 設定為向 **MySourceDBInstance** 建立複本。

對於 MRDS for MariaDB 和 RDS for MySQL，以及對於 RDS for PostgreSQL 的某些版本，您可從現有僅供讀取複本建立僅供讀取複本。例如，您可以從現有複本 **ReadReplica1** 建立新的僅供讀取複本 **ReadReplica2**。對於 RDS for Db2、RDS for Oracle 和 RDS for SQL Server，您無法從現有的僅供讀取複本建立僅供讀取複本。

### 刪除複本時的考量
<a name="USER_ReadRepl.Overview.deletion-considerations"></a>

RDS 不支援自動調整僅供讀取複本。因此，RDS 不會在需求增加時增加複本數量，也不會在需求減少時減少複本數量。如果您不再需要僅供讀取複本，請使用刪除資料庫執行個體的相同機制手動將其刪除。如果您刪除來源資料庫執行個體而不刪除其相同 中的僅供讀取複本 AWS 區域，則每個複本都會提升為獨立的資料庫執行個體。

如需刪除資料庫執行個體的相關資訊，請參閱[刪除資料庫執行個體](USER_DeleteInstance.md)。如需僅供讀取複本提升的相關資訊，請參閱[提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)。如需刪除跨區域僅供讀取複本的來源資料庫執行個體的相關資訊，請參閱 [跨區域複寫考量](USER_ReadRepl.XRgn.md#USER_ReadRepl.XRgn.Cnsdr)。