如何為 Amazon Aurora MySQL 資料庫執行個體建立讀取複本?

3 分的閱讀內容
0

我有一個 Amazon Aurora MySQL 叢集。我想要建立區域內或跨區域讀取複本,或為 Aurora 資料庫叢集新增區域。我該如何操作?

簡短描述

Aurora 複本可增加 Aurora MySQL 資料庫叢集內的運算容量。它們有助於在區域內分配讀取工作負載(讀取擴展),並充當容錯移轉目標。這表示如果您的主資料庫執行個體失敗,Aurora 複本就會升級為主執行個體。

跨區域讀取複本使用 MySQL 二進位日誌記錄將您的資料複寫到另一個區域中的叢集。這可讓您將讀取作業擴展到更接近使用者的次要區域。這有助於改善災難復原功能。也可讓您更輕鬆地從一個 AWS 區域移轉到另一個區域。

Amazon Aurora 全球資料庫可以跨越多個 AWS 區域。它們允許低延遲的全球讀取,並從可能影響整個 AWS 區域的罕見中斷中提供復原。Aurora 使用自己的複寫通訊協定和專用基礎架構將資料複寫到次要 AWS 區域,進而導致延遲通常不到一秒鐘。

使用下列步驟建立區域內或跨區域讀取複本,或將新區域新增至 Aurora MySQL 資料庫叢集。

除了 Aurora 管理的二進位日誌記錄之外,您還可以設定和管理自己的二進位記錄複寫環境。在此環境中,Aurora 可以是來源或目標。

**注意:**這些步驟不適用於 Aurora 無伺服器或 Aurora 多主要叢集。

解決方法

**注意:**如果在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI

為 Aurora MySQL 叢集建立區域內讀取複本

使用 Amazon RDS 主控台

1.    開啟「 Amazon RDS 主控台」**,**然後從導覽窗格中選擇「 資料庫」。

2.    選擇您要新增資料庫執行個體的資料庫叢集。

3.    在「 動作 」區段中,選擇「 新增讀取器」。

4.    在「 新增讀取器 」頁面上,自訂 Aurora 複本的選項。

5.    選擇「 新增讀取器 」以建立複本。

使用 AWS CLI

若要使用 AWS CLI 在資料庫叢集中建立 Aurora 複本,請執行 create-db-instance 命令。使用 --db-cluster-identifier 選項包含資料庫叢集的名稱。您也可以使用availability-zone 參數為 Aurora 複本指定可用區域 (AZ)。

此範例命令會為 Aurora MySQL 建立讀取複本 (相同區域以及 Aurora MySQL 5.7 和 Aurora MySQL 8.0 相容)。

Linux、macOS 或 Unix:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a \
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large \
    --availability-zone us-west-2a

Windows:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a ^
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large ^
    --availability-zone us-west-2a

注意: 如果您想要為 Aurora MySQL 5.6 相容叢集建立讀取複本,請在此命令中將 --engine parameter 修改為 --engine aurora

為 Aurora MySQL 叢集建立跨區域讀取複本

在建立跨區域讀取複本之前,您必須為來源 Aurora MySQL 資料庫叢集開啟二進位日誌記錄。跨區域複寫使用 MySQL 二進位複寫,在跨區域讀取複本叢集上重新顯示變更。然後,使用 Amazon RDS 主控台或 AWS CLI 建立跨區域叢集。

注意: 您無法為未加密的 Aurora 資料庫叢集建立加密的 Aurora 複本。您無法為加密的 Aurora 資料庫叢集建立未加密的 Aurora 複本。

為資料庫叢集開啟二進位日誌記錄

1.    更新來源資料庫叢集的 binlog_format 參數。這是預設叢集參數群組中的叢集層級參數。

2.    如果您的資料庫叢集使用預設的資料庫叢集參數群組,請建立新的資料庫叢集參數群組以修改 binlog_format 設定。最佳作法是將 binlog_format 設定為 MIXED。如果您需要特定的 binlog 格式,您也可以將 binlog_format 設定為 ROWSTATEMENT

3.    重新啟動 Aurora 資料庫叢集以使變更生效。

使用 Amazon RDS 主控台建立跨區域叢集

1.    開啟「 Amazon RDS 主控台」,然後選擇託管來源資料庫叢集的 AWS 區域。

2.    在導覽窗格中,選擇「 執行個體」。

3.    對您要建立跨區域讀取複本的資料庫執行個體,選擇核取方塊。

4.    對於「 動作,選擇「 建立跨區域讀取複本」。

5.    在「 建立跨區域讀取複本 」頁面上,選擇跨區域讀取複本資料庫叢集的選項設定。

使用 AWS CLI 建立跨區域叢集

若要使用 AWS CLI 建立跨區域叢集,請先使用 create-db-cluster 呼叫在目標區域中建立叢集本身。然後,使用 create-db-instance 呼叫建立讀取器執行個體。

此範例使用 Linux、macOS 或 Unix 建立跨區域複本,並且與 Aurora MySQL 5.7 和 Aurora MySQL 8.0 相容。

1.    執行類似下列的命令來建立叢集:

aws rds create-db-cluster \
  --db-cluster-identifier sample-replica-cluster \
  --engine aurora-mysql \
  --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-source-cluster

2.    驗證叢集是否可用:

aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster

3.    在叢集中建立執行個體:

aws rds create-db-instance \
  --db-cluster-identifier sample-replica-cluster \
  --db-instance-class db.r6g.large \
  --db-instance-identifier sample-replica-instance \
  --engine aurora-mysql

要在 Windows 上使用 CLI 建立相同的內容,請使用相同的步驟,但使用 ^ 符號代替 **\ ** 作為行分隔符號。

將 AWS 區域新增至 Aurora 佈建的叢集以建立 Aurora 全球資料庫

使用 Amazon RDS 主控台

  1. 開啟「 Amazon RDS 主控台」。

  2. 在導覽窗格中,選擇「 資料庫」。

  3. 選擇需要次要 Aurora 資料庫叢集的 Aurora 全域資料庫。確定主要 Aurora 資料庫叢集的狀態為「 可用」。

  4. 從「 動作」中選擇「 ** 新增區域**」。

  5. 選擇您要新增的 AWS 區域。

** 注意:** 您無法為相同的 Aurora 全域資料庫選擇已有次要 Aurora 資料庫叢集的 AWS 區域。此外,您無法選擇與主要 Aurora 資料庫叢集區域相同的 AWS 區域。

  1. 完成新 AWS 區域中次要 Aurora 叢集的剩餘欄位。然後,選擇,「 新增區域」。

使用 AWS CLI

在 AWS CLI 上執行下列指令碼。

注意: 如果您使用的是 Windows,請將 \ 行分隔符號取代為 ^ 符號。

aws rds --region us-east-2 \
  create-db-cluster \
    --db-cluster-identifier secondary_cluster_id \
    --global-cluster-identifier global_database_id \
    --engine aurora-mysql \
    --engine-version version

aws rds --region us-east-2 \
  create-db-instance \
    --db-instance-class db.r6g.large \
    --db-cluster-identifier secondary_cluster_id \
    --db-instance-identifier db_instance_id \
    --engine aurora-mysql

相關資訊

將 Aurora 複本新增至資料庫叢集

跨 AWS 區域複寫 Amazon Aurora MySQL 資料庫叢集

AWS 官方
AWS 官方已更新 2 年前