使用多可用區域資料庫叢集僅供讀取複本 - Amazon Relational Database Service

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

使用多可用區域資料庫叢集僅供讀取複本

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

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

使用僅供讀取複本遷移至多可用區域資料庫叢集

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

建立多可用區域資料庫叢集僅供讀取複本之前,請考量以下項目:

  • 來源資料庫執行個體必須位於支援多可用區域資料庫叢集的版本。如需詳細資訊,請參閱 Amazon RDS 中異地同步備份資料庫叢集支援的區域和資料庫引擎

  • 多可用區域資料庫叢集僅供讀取複本必須與其來源位於相同的主要版本,並位於相同或更新的次要版本。

  • 您必須將備份保留期設定為 0 以外的值,才能開啟來源資料庫執行個體上的自動備份。

  • 來源資料庫執行個體的配置儲存體必須為 100 GiB 或更高。

  • 對於 RDS for MySQL,必須將來源資料庫執行個體的 gtid-modeenforce_gtid_consistency 參數都設定為 ON。您必須使用自訂參數群組,而不是預設參數群組。如需詳細資訊,請參閱 在資料庫執行個體中使用資料庫參數群組

  • 長時間執行的作用中交易會使建立僅供讀取複本的流程變慢。建議您等到長時間執行交易完成後,再建立僅供讀取複本。

  • 如果您刪除多可用區域資料庫叢集的來源資料庫執行個體,僅供讀取複本會提升為獨立的多可用區域資料庫叢集。

建立和提升多可用區域資料庫叢集僅供讀取複本

您可以使用 AWS Management Console、 AWS CLI或 RDS API 建立和升級異地同步備份資料庫叢集僅供讀取複本。

注意

強烈建議您根據來源資料庫執行個體的 Amazon VPC,在相同的虛擬私有雲端 (VPC) 中建立所有僅供讀取複本。

如果您在來源資料庫執行個體的不同 VPC 中建立僅供讀取複本,則無類別網域間路由 (CIDR) 範圍可能會在複本和 Amazon RDS 系統之間重疊。CIDR 重疊會使複本不穩定,這會對連線到該複本的應用程式產生負面影響。如果您在建立僅供讀取複本時收到錯誤,請選擇不同的目的地資料庫子網路群組。如需詳細資訊,請參閱 在 VPC 中使用資料庫執行個體

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

  1. 登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

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

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

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

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

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

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

    6. 在其餘區段,指定資料庫叢集設定。如需設定的相關資訊,請參閱 建立多可用區域資料庫叢集的設定

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

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

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

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

    2. 登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

    3. 在 Amazon RDS 主控台,選擇 Databases (資料庫)

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

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

    5. 針對 Actions (動作),選擇 Promote (提升)。

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

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

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

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

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

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

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

    若要從來源資料庫執行個體建立僅供讀取複本,請使用 AWS CLI 指令create-db-cluster。若為 --replication-source-identifier,請指定來源資料庫執行個體的 Amazon Resource Name (ARN)。

    對於LinuxmacOS、或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
  2. 停止任何交易寫入至僅供來源資料庫執行個體,然後等待針對僅供讀取複本所做的所有更新。

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

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

    若要提升多可用區域資料庫叢集僅供讀取複本,請使用 AWS CLI 命令 promote-read-replica-db-cluster。若為 --db-cluster-identifier,請指定多可用區域資料庫叢集僅供讀取複本的識別符。

    aws rds promote-read-replica-db-cluster --db-cluster-identifier mymultiazdbcluster
  4. 等待提升的多可用區域資料庫叢集狀態成為 Available

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

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

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

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

    若要建立多可用區域資料庫叢集僅供讀取複本,請使用 CreateDBCluster 操作搭配必要參數 DBClusterIdentifier。若為 ReplicationSourceIdentifier,請指定來源資料庫執行個體的 Amazon Resource Name (ARN)。

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

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

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

    若要提升多可用區域資料庫叢集僅供讀取複本,請使用 PromoteReadReplicaDBCluster 操作搭配必要參數 DBClusterIdentifier。指定多可用區域資料庫叢集僅供讀取複本的識別符。

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

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

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

建立多可用區域資料庫叢集僅供讀取複本的限制

下列限制適用於從單一可用區域部署或多可用區域資料庫執行個體部署建立多可用區域叢集僅供讀取複本。

  • 您無法在不同於擁有來源資料庫執行個 AWS 帳戶 體的異地同步備份資料庫叢集僅供讀取複本中建立。 AWS 帳戶

  • 您無法在不同於來源資料庫執行個體中建立異地同 AWS 區域 步備份資料庫叢集僅供讀取複本。

  • 您無法將多可用區域資料庫叢集僅供讀取複本復原至某個時間點。

  • 儲存體加密必須在來源資料庫執行個體和多可用區域資料庫叢集上具有相同的設定。

  • 如果來源資料庫執行個體已加密,則多可用區域資料庫叢集僅供讀取複本必須使用相同的 KMS 金鑰加密。

  • 如果來源資料庫執行個體使用一般用途 SSD (gp3) 儲存,且配置的儲存體少於 400 GiB,則無法修改異地同步備份資料庫叢集僅供讀取複本的佈建 IOPS。

  • 若要在來源資料庫執行個體上執行次要版本升級,您必須先在多可用區域資料庫叢集僅供讀取複本上執行次要版本升級。

  • 當您在 RDS for PostgreSQL 異地同步備份資料庫叢集僅供讀取複本上執行次要版本升級時,讀取器資料庫執行個體在升級後不會切換至寫入器資料庫執行個體。因此,Amazon RDS 升級寫入器執行個體時,您的資料庫叢集可能會遇到停機時間。

  • 您無法在異地同步備份資料庫叢集僅供讀取複本上執行主要版本升級。

  • 您可以在多可用區域資料庫叢集僅供讀取複本的來源資料庫執行個體上執行主要版本升級,但複寫至僅供讀取複本會停止且無法重新啟動。

  • 多可用區域資料庫叢集僅供讀取複本不支援階層式僅供讀取複本。

  • 對於 RDS for PostgreSQL,多可用區域資料庫叢集僅供讀取複本無法容錯移轉。

從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本

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

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

比較讀取器資料庫執行個體和資料庫執行個體僅供讀取複本

多可用區域資料庫叢集的資料庫執行個體僅供讀取複本在下列方面與多可用區域資料庫叢集的讀取器資料庫執行個體不同:

  • 讀取器資料庫執行個體會做為自動容錯移轉目標,而資料庫執行個體僅供讀取複本不是。

  • 讀取器資料庫執行個體必須先確認來自寫入器資料庫執行個體的變更,才能遞交變更。然而,對於資料庫執行個體僅供讀取複本,不需要確認,更新就會以非同步方式複製到僅供讀取複本。

  • 讀取器資料庫執行個體一律與多可用區域資料庫叢集的寫入器資料庫執行個體共用相同的執行個體類別、儲存類型和引擎版本。但是,資料庫執行個體僅供讀取複本不一定需要與來源叢集共用相同的組態。

  • 您可將資料庫執行個體僅供讀取複本提升為獨立資料庫執行個體。您無法將多可用區域資料庫叢集的讀取器資料庫執行個體提升為獨立執行個體。

  • 讀取器端點僅會將請求路由至多可用區域資料庫叢集的讀取器資料庫執行個體。它絕不會將請求路由到資料庫執行個體僅供讀取複本。

如需有關讀取器和寫入器資料庫執行個體的詳細資訊,請參閱 多可用區域資料庫叢集概觀

考量事項

從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本之前,請考量以下項目:

  • 當您建立資料庫執行個體僅供讀取複本時,它必須與其來源叢集位於相同的主要版本,並位於相同或更新的次要版本。建立僅供讀取複本之後,您可以選擇性地將僅供讀取複本升級到比來源叢集更高的次要版本。

  • 建立資料庫執行個體僅供讀取複本時,配置的儲存體必須與來源多可用區域資料庫叢集的配置儲存體相同。您可以在建立僅供讀取複本之後變更已配置的儲存體。

  • 對於 RDS for MySQL,來源多可用區域資料庫叢集的 gtid-mode 參數必須設定為 ON。如需詳細資訊,請參閱 使用多可用區域資料庫叢集的資料庫叢集參數群組

  • 長時間執行的作用中交易會使建立僅供讀取複本的流程變慢。建議您等到長時間執行交易完成後,再建立僅供讀取複本。

  • 如果您刪除資料庫執行個體僅供讀取複本的來源多可用區域資料庫叢集,它所寫入的任何僅供讀取複本都會提升為獨立的資料庫執行個體。

建立資料庫執行個體僅供讀取複本

您可以使用 AWS Management Console、 AWS CLI或 RDS API 從異地同步備份資料庫叢集建立資料庫執行個體僅供讀取複本。

注意

強烈建議您根據來源多可用區域資料庫叢集的 Amazon VPC,在相同的虛擬私有雲端 (VPC) 中建立所有僅供讀取複本。

如果您在與來源多可用區域資料庫叢集不同的 VPC 中建立僅供讀取複本,則無類別域間路由 (CIDR) 範圍可能會在複本和 RDS 系統之間重疊。CIDR 重疊會使複本不穩定,這會對連線到該複本的應用程式產生負面影響。如果您在建立僅供讀取複本時收到錯誤,請選擇不同的目的地資料庫子網路群組。如需詳細資訊,請參閱 在 VPC 中使用資料庫執行個體

若要從多可用區域資料庫叢集建立資料庫執行個體,請使用 AWS Management Console完成下列步驟。

  1. 登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

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

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

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

  6. 資料庫識別符中,輸入僅供讀取複本的名稱。

  7. 在其餘區段,指定資料庫執行個體的設定。如需設定的相關資訊,請參閱 資料庫執行個體的設定

    注意

    資料庫執行個體僅供讀取複本配置的儲存體必須與來源多可用區域資料庫叢集配置的儲存體相同。

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

若要從異地同步備份資料庫叢集建立資料庫執行個體僅供讀取複本,請使用指 AWS CLI 令create-db-instance-read-replica。若為 --source-db-cluster-identifier,請指定多可用區域資料庫叢集的識別符。

對於LinuxmacOS、或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

若要從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本,請使用 CreateDBInstanceReadReplica 操作。

提升資料庫執行個體僅供讀取複本

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

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

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

從多可用區域資料庫叢集建立資料庫執行個體僅供讀取複本的限制

下列限制適用於從多可用區域資料庫叢集部署建立資料庫執行個體僅供讀取複本。

  • 您無法在不同於擁有來源異地同步備份資料庫叢集 AWS 帳戶 的資料庫執行個體僅供讀取複本中建立。 AWS 帳戶

  • 您無法在不同於來源異地同 AWS 區域 步備份資料庫叢集中建立資料庫執行個體僅供讀取複本。

  • 您無法將資料庫執行個體僅供讀取複本復原至某個時間點。

  • 儲存體加密必須在來源多可用區域資料庫叢集和資料庫執行個體僅供讀取複本上具有相同的設定。

  • 如果來源多可用區域資料庫叢集已加密,則資料庫執行個體僅供讀取複本必須使用相同的 KMS 金鑰來加密。

  • 若要在來源多可用區域資料庫叢集上執行次要版本升級,您必須先在資料庫執行個體僅供讀取複本上執行次要版本升級。

  • 資料庫執行個體僅供讀取複本不支援階層式僅供讀取複本。

  • 對於 RDS for PostgreSQL,來源多可用區域資料庫叢集必須執行 PostgreSQL 13.11、14.8 或 15.2.R2 版或更新版本,才能建立資料庫執行個體僅供讀取複本。

  • 您可以在資料庫執行個體僅供讀取複本的來源多可用區域資料庫叢集上執行主要版本升級,但複寫至僅供讀取複本會停止且無法重新啟動。