跳至主要內容

Amazon RDS

Amazon RDS 讀取複寫

方便管理針對總體擁有成本進行最佳化的關聯式資料庫

為什麼選擇 Amazon RDS 讀取複寫?

Amazon RDS 讀取複寫提供 Amazon RDS 資料庫 (DB) 執行個體增強的效能和耐久性。僅供讀取複本可以輕鬆彈性地橫向擴展超越單一資料庫執行個體的容量限制,以處理高讀取量的資料庫工作負載。您可以建立一或多個指定來源資料庫執行個體的複本,然後從多個資料副本為大量應用程式讀取流量提供服務,以這種方式提升總體的讀取輸送量。需要將讀取複寫變為獨立資料庫執行個體時,也可以提升該讀取複寫。讀取複寫可用於 Amazon RDS for MySQLAmazon RDS for MariaDBAmazon RDS for PostgreSQLAmazon RDS for OracleAmazon RDS for SQL ServerAmazon RDS for Db2,以及 Amazon Aurora

Amazon RDS 會使用來源資料庫執行個體的快照,針對 MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server 資料庫引擎建立第二個資料庫執行個體。之後,每當來源資料庫執行個體變更時,就會使用引擎的原生非同步複寫更新僅供讀取複本。使用僅供讀取複本做為資料庫執行個體僅允許唯讀連線;應用程式連線到僅供讀取複本的方式與連線其他資料庫執行個體一樣。Amazon RDS 會複寫來源資料庫執行個體中的所有資料庫。

Amazon Aurora 透過採用專為資料庫工作負載建置的 SSD 虛擬化儲存層,進一步擴展了讀取複寫的優勢。Amazon Aurora 複本與來源執行個體共用同一個基礎儲存,不僅能降低成本,也能消除將資料複製到複本節點的需求。如需 Amazon Aurora 複寫功能的詳細資訊,請參閱線上文件

Diagram illustrating application servers connecting to a primary database server for read/write operations and a read replica for read-only operations using asynchronous replication. Includes BI/reporting application server and general application servers.

Amazon RDS 讀取複寫的優勢

    您可以將讀取查詢從應用程式路由到讀取複寫,以減少來源資料庫執行個體的負載。僅供讀取複本可以讓您彈性地橫向擴展超越單一資料庫執行個體的容量限制,以處理高讀取量的資料庫工作負載。因為僅供讀取複本可提升為主要狀態,因此實作碎片時很有用。為了進一步最大化讀取效能,使用 Amazon RDS for MySQL 可在讀取複寫直接新增資料表索引,不須將這些索引放入主複本。

    Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server 中的讀取複寫為 Amazon RDS Multi-AZ 部署提供了互補的可用性機制。若來源資料庫執行個體失敗,可以提升僅供讀取複本,並且可以將僅供讀取複本及其備用執行個體設定於不同的可用區域中。這個功能可補充同步複寫、自動故障偵測,以及多可用區域部署提供之容錯移轉的不足之處。

    建立 Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 或 SQL Server 的讀取複寫時,Amazon RDS 會使用來源資料庫執行個體和讀取複寫之間的公開金鑰加密來設定安全的通訊通道,即使跨區域複寫時也一樣。Amazon RDS 會建立各種 AWS 安全組態,如新增啟用安全通道所需的安全群組項目。您也可以針對使用 AWS Key Management Service (KMS) 靜態加密的 Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server 資料庫執行個體建立僅讀取複寫。

設定

您可以使用 AWS 管理主控台,輕鬆將僅供讀取複本新增到現有的資料庫執行個體。使用 AWS 管理主控台中與資料庫執行個體對應的 “Create Read Replica” (建立僅供讀取複本) 選項。Amazon RDS for MySQL、Amazon RDS for PostgreSQL、Amazon RDS for MariaDB 和 Amazon RDS for SQL Server 可讓您將多達 15 個讀取複本新增至每個資料庫執行個體。使用 Amazon RDS for Oracle,可在每個資料庫執行個體最多新增 5 個僅供讀取複本。

Amazon RDS for MySQL、Amazon RDS for PostgreSQL、Amazon RDS for MariaDB 和 Amazon RDS for Oracle 為資料庫儲存提供兩種 SSD 型選項:一般用途和佈建 IOPS。這些引擎的僅供讀取複本不需要使用與其主資料庫執行個體相同的儲存類型。您可以為僅供讀取複本選取替代儲存類型,以優化效能或支出。 如需詳細資訊,請參閱 Amazon RDS for MySQLAmazon RDS for MariaDBAmazon RDS for PostgreSQLAmazon RDS for OracleAmazon RDS for SQL Server,以及 Amazon Aurora 的讀取複寫文件。

讀取複寫、多可用區域部署和多區域部署

Amazon RDS 讀取複寫可補足多可用區域部署的不足之處。雖然這兩個功能都會保留資料的第二個副本,但兩者之間有以下差異:

多可用區域部署
多區域部署
讀取複寫
主要目的是高可用性

主要目的是災難復原和本機效能

主要目的是可擴展性

非 Aurora︰同步複寫;Aurora:同步複寫

非同步複寫

非同步複寫

非 Aurora︰僅主要執行個體處於作用中狀態;Aurora:所有執行個體均處於作用中狀態

所有區域皆可供存取,且可用於讀取

所有僅供讀取複本皆可供存取,且可用於讀取擴展

非 Aurora︰自動備份來自備用資料庫;Aurora:自動備份來自共用儲存層

自動備份可來自每個區域

預設不會設定任何備份

在單一區域內一律跨越至少兩個可用區域

每個區域均可採用多可用區部署

可以在一個可用區域內、跨可用區域或跨區域

非 Aurora:資料庫引擎版本升級發生於主要執行個體;Aurora:所有執行個體一起更新

非 Aurora:資料庫引擎版本升級獨立於每個區域;Aurora:所有執行個體一起更新

非 Aurora:資料庫引擎版本升級獨立於來源執行個體;Aurora:所有執行個體一起更新

偵測到問題時自動容錯移轉至備用 (非 Aurora) 或僅供讀取複本 (Aurora)

Aurora 允許提升次要區域成為主要區域

可以手動提升為獨立資料庫執行個體 (非 Aurora) 或作為主要執行個體 (Aurora)

您可以結合讀取複寫和其他 Amazon RDS 功能,以獲得兩者的優點。例如,您可以將來源資料庫設為異地同步備份以獲得高可用性,並建立僅供讀取複本 (在單一可用區域) 以獲得讀取可擴展性。或者,您可以使用 Aurora 全球資料庫,將資料從多可用區域 Aurora 部署複製到其他區域。

使用 RDS for MySQL、RDS for MariaDB、RDS for PostgreSQL 和 RDS for Oracle,您也可以將讀取複寫設為多可用區域,這讓您可以將讀取複寫當作 DR 目標使用。當您將讀取複寫升級為獨立資料庫時,便準備好啟用多可用區域功能。