跨區域複製資料

本頁面說明如何建立及使用次要叢集,藉此使用 AlloyDB for PostgreSQL 跨區域複製功能。

如需跨區域複製的概念總覽,請參閱「關於跨區域複製」。

事前準備

  • 您使用的 Google Cloud 專案必須已啟用 AlloyDB 存取權
  • 您必須在使用的 Google Cloud 專案中擁有下列其中一個 IAM 角色:
    • roles/alloydb.admin (AlloyDB 管理員預先定義的 IAM 角色)
    • roles/owner (擁有者基本 IAM 角色)
    • roles/editor (編輯者基本 IAM 角色)

    如果您不具備上述任一角色,請與機構管理員聯絡,並要求存取權。

建立次要叢集

建立次要叢集時,AlloyDB 會將主要叢集的部分設定 (包括時間點復原 (PITR) 和備份設定) 複製並套用至次要叢集。建立次要叢集後,AlloyDB 不會將任何讀取集區執行個體新增至次要叢集,無論主要叢集上有多少讀取集區執行個體。

如果您在建立次要叢集後更新主要叢集設定,次要叢集不會套用這些變更。不過,您可以手動更新次要叢集,取得主要叢集的最新設定。

每個主要叢集最多可建立五個次要叢集。所有次要叢集都會從單一主要執行個體複製資料。如果升級次要叢集,該叢集就會成為獨立的主要叢集。

下圖說明如何在 us-east4 中升級名為 cluster-2 的次要叢集:

升級次要叢集的範例。

圖 1. 升級次要叢集的範例。

如要建立 AlloyDB 次要叢集和次要執行個體,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下叢集。

  3. 在「總覽」頁面中,按一下「建立次要叢集」

  4. 設定次要叢集:

    1. 在「叢集 ID」欄位中,輸入次要叢集的資源 ID。
    2. 為次要叢集選取與主要叢集區域不同的區域。
    3. 選取預設的 Google 代管加密或客戶管理的金鑰 (CMEK),做為加密次要叢集的加密方法。

    如要使用 CMEK 金鑰加密這個叢集,請按照下列步驟操作:

    1. 按一下「進階加密選項」
    2. 選取「客戶自行管理的加密金鑰 (CMEK)」
    3. 從顯示的選單中選取客戶管理的金鑰。

      Google Cloud 控制台會將這份清單限制為與新叢集位於相同Google Cloud 專案和區域的金鑰。

      如要使用不在清單中的金鑰,請按照下列步驟操作:

      1. 按一下「找不到您的金鑰嗎?」輸入金鑰資源名稱
      2. 在「金鑰資源名稱」欄位中輸入資源名稱。
      3. 按一下 [儲存]
      4. 按一下「繼續」

    搭配使用 CMEK 金鑰與 AlloyDB 時,需要進行一些額外設定。詳情請參閱「使用 CMEK」。

    如果相關聯的主要執行個體是以 CMEK 金鑰加密,次要叢集也必須以 CMEK 金鑰加密。

  5. 設定次要執行個體:

    1. 在「Instance ID」(執行個體 ID) 欄位中,輸入次要執行個體的資源 ID。資源 ID 在叢集中不得重複。
  6. 按一下 [Create cluster] (建立叢集)

gcloud

如要使用 gcloud CLI,您可以安裝及初始化 Google Cloud CLI,也可以使用 Cloud Shell

使用 gcloud alloydb clusters create-secondary 指令:

 gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID
 gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
 --cluster=SECONDARY_CLUSTER_ID \
 --region=REGION_ID

更改下列內容:

  • SECONDARY_CLUSTER_ID:要建立的次要叢集 ID。
  • SECONDARY_INSTANCE_ID:要建立的次要執行個體 ID。
  • REGION_ID:次要叢集區域的 ID,例如 us-central1
  • PROJECT_ID:次要叢集專案的 ID。
  • LOCATION_ID:主要叢集所在位置,例如 us-central1
  • PRIMARY_CLUSTER_ID:次要叢集關聯的主要叢集 ID。
  • SECONDARY_CLUSTER_ID:次要執行個體關聯的次要叢集 ID。
  • ALLOWED_PSC_PROJECTS (選用):以半形逗號分隔的專案 ID 或專案編號清單,用於允許存取執行個體,例如 my-project-112345my-project-n。如果叢集使用 Private Service Connect 做為連線至執行個體的方法,則必須設定允許的專案或編號清單。
  • --no-enable-automated-backup(選用):停用在次要叢集上建立自動備份。

如要建立啟用 Private Service Connect 的次要執行個體,請新增 allowed-psc-projects 標記,設定以半形逗號分隔的專案 ID 或專案編號清單,允許存取執行個體,例如 my-project-112345my-project-n

 gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID \
 gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
 --cluster=SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --allowed-psc-projects=ALLOWED_PSC_PROJECTS

更改下列內容:

  • ALLOWED_PSC_PROJECTS (選用):以半形逗號分隔的專案 ID 或專案編號清單,您要允許這些專案存取執行個體,例如 my-project-112345my-project-n。如果叢集使用 Private Service Connect 做為連線至執行個體的方法,您必須設定允許的專案或編號清單。

如要為啟用公開 IP 的叢集建立次要執行個體,請新增 --assign-inbound-public-ip=ASSIGN_IPV4 參數。

 gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
 --cluster=SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
  --assign-inbound-public-ip=ASSIGN_IPV4

您可以選擇將以半形逗號分隔的 CIDR 區塊清單 (例如 64.233.160.0/16) 傳遞至 --authorized-external-networks 參數,在執行個體上設定授權的外部網路。

查看次要叢集

如要查看 AlloyDB 次要叢集的詳細資訊,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下次要叢集。

  3. 在「總覽」頁面中,查看次要叢集的所有詳細資料。

更新次要執行個體

您可以更新次要執行個體,新增、修改或刪除資料庫標記。您也可以調整次要執行個體的機器類型。

在次要執行個體上設定資料庫旗標

如要新增、修改或刪除資料庫標記,請完成下列步驟:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下要修改的次要叢集。

  3. 在「總覽」頁面中,前往「叢集中的執行個體」,選取次要執行個體,然後按一下「編輯次要執行個體」

  4. 從執行個體新增、修改或刪除資料庫旗標:

    新增旗標

    1. 如要為執行個體新增資料庫旗標,請按一下「新增旗標」
    2. 從「New database flag」(新的資料庫標記) 清單中選取標記。
    3. 提供旗標值。
    4. 按一下 [完成]

    修改旗標

    1. 如要修改執行個體中的資料庫旗標,請展開資料庫旗標,並在「編輯資料庫旗標」專區中修改現有旗標的值。
    2. 按一下 [完成]

    刪除標記

    1. 如要從執行個體刪除資料庫標記,請選取標記並按一下刪除圖示。
    2. 按一下 [完成]
  5. 按一下「更新次要電子郵件地址」

gcloud

使用 gcloud alloydb instances update 指令變更次要執行個體的資料庫旗標。

 gcloud alloydb instances update SECONDARY_INSTANCE_ID \
  --database-flags FLAGS_LIST \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

更改下列內容:

  • SECONDARY_INSTANCE_ID:次要執行個體的 ID。
  • FLAGS_LIST:以半形逗號分隔的一或多個資料庫標記規格清單。每個規格都包含標記名稱、等號 (=) 和要指派給標記的值。如果資料庫旗標不接受值,請提供旗標名稱,並在後方加上等號 (=)。
  • REGION_ID:次要執行個體的放置區域,例如 us-central1
  • CLUSTER_ID:次要執行個體所在的叢集 ID。
  • PROJECT_ID:次要叢集所在的專案 ID。

調整次要執行個體的機型

如要調整次要執行個體的機型,請完成下列步驟:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在「資源名稱」欄中,按一下要修改的次要叢集。

  3. 在「總覽」頁面中,前往「叢集中的執行個體」部分,然後按一下「編輯次要」

    請注意,如果頁面回報叢集「狀態」為「維護」,則無法執行這項動作。「狀態」變更為「就緒」後,即可再次使用這項動作。

  4. 選取機型。

  5. 按一下「更新次要電子郵件地址」

gcloud

使用 gcloud alloydb instances update 指令變更次要執行個體的機型。

 gcloud alloydb instances update SECONDARY_INSTANCE_ID \
  --cpu-count=CPU_COUNT \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

更改下列內容:

  • SECONDARY_INSTANCE_ID:您要更新的次要執行個體 ID。
  • CPU_COUNT:執行個體所需的 vCPU 數量。 有效值包括:

    • 2 (2 個 vCPU,16 GB RAM)
    • 4 (4 個 vCPU,32 GB RAM)
    • 8 (8 個 vCPU,64 GB RAM)
    • 16 (16 個 vCPU,128 GB RAM)
    • 32 (32 個 vCPU,256 GB RAM)
    • 64 (64 個 vCPU,512 GB RAM)
  • REGION_ID:執行個體所在的區域。

  • CLUSTER_ID:執行個體所在叢集的 ID。

  • PROJECT_ID:叢集所在專案的 ID。

如果指令傳回的錯誤訊息包含「invalid cluster state MAINTENANCE」字串,表示叢集正在進行例行維護。這會暫時禁止重新設定執行個體。叢集返回 READY 狀態後,請再次執行指令。

如要查看叢集狀態,請參閱「查看叢集詳細資料」。

將讀取集區執行個體新增至次要叢集

如要在次要叢集中新增讀取集區執行個體,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下要新增讀取集區執行個體的次要叢集。

  3. 在「總覽」頁面中,前往「叢集中的執行個體」部分,然後按一下「新增讀取集區」

  4. 設定讀取集區執行個體:

    1. 在「Read pool instance ID」(讀取集區執行個體 ID) 欄位中,輸入讀取集區執行個體的 ID。
    2. 在「節點計數」欄位中,輸入節點計數。 讀取集區執行個體中的節點數決定了執行個體的整體運算能力。叢集內所有讀取集區執行個體最多可有 20 個節點。
    3. 選取機型。
    4. 選用:為執行個體設定自訂旗標。針對每個標記執行下列操作:

      1. 按一下「新增旗標」
      2. 從「New database flag」(新的資料庫標記) 清單中選取標記。
      3. 提供旗標值。
      4. 按一下 [完成]
  5. 按一下「新增讀取集區」

升級次要叢集

推送次要叢集前,請先執行下列步驟,確認次要叢集已套用主要叢集提供的所有交易:

  1. 停止對主要叢集的所有寫入作業。
  2. 完成下列步驟,檢查次要叢集的複製狀態:

    1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

      前往「Clusters」(叢集)

    2. 在叢集清單中,按一下要升級的次要叢集名稱。

    3. 在叢集詳細資料頁面中,按一下「監控」

    4. 在「Monitoring」清單中,選取次要執行個體。清單中會顯示「次要:INSTANCE_NAME

    5. 在指標清單中,找出「從主要執行個體複製時的延遲時間」圖表。

    6. 確認圖表顯示的延遲時間極短。

      延遲值為 0 是理想狀態。如果延遲時間超過 0,您仍可升級次要叢集,但可能會遺失主要叢集已提交的近期交易。

    7. 在指標清單中,找出「複寫狀態」圖表。

    8. 確認圖表中代表的所有節點都有 streaming 值。

如要將次要叢集升級為主要叢集,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下要升級為主要叢集的次要叢集。

  3. 在「總覽」頁面上,按一下「升級叢集」

  4. 在隨即顯示的對話方塊中,輸入次要叢集 ID,確認要升級叢集。

  5. 點選「升級」。

    升級叢集後,「總覽」頁面的「類型:次要叢集 (可用性高)」欄位會更新為「類型:高可用性叢集 (具備讀取集區)」

gcloud

使用 gcloud alloydb clusters promote 指令:

 gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --project=PROJECT_ID \

更改下列內容:

  • SECONDARY_CLUSTER_ID:要升級的次要叢集 ID。
  • REGION_ID:次要叢集區域的 ID,例如 us-central1
  • PROJECT_ID:次要叢集專案的 ID。

執行切換作業

執行切換作業前,請先確認主要和次要執行個體所屬的所有區域都處於連線狀態,且執行個體運作正常。詳情請參閱「使用 AlloyDB 系統洞察資訊主頁監控執行個體」。

如果您有多個次要叢集,執行切換作業時會發生下列變更:

  • 接收切換指令的次要叢集會成為主要叢集。
  • 先前的主要叢集會變成次要叢集,並從新的主要叢集複製資料。
  • 所有其他次要叢集都會改為從新的主要叢集複製資料。

下圖說明從 cluster-1 (位於 us-central1) 切換至 cluster-2 (位於 us-east4) 的過程:

以下範例說明如何切換至兩個次要叢集之一。

圖 2:以下範例說明如何切換至兩個次要叢集之一。

如要執行切換作業,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下要切換為主要叢集的次要叢集。

  3. 在「總覽」頁面上,按一下「切換」

  4. 在隨即顯示的對話方塊中,輸入次要叢集 ID,確認要切換叢集。

  5. 按一下「切換」

叢集切換完成後,「總覽」頁面的「類型:次要叢集」欄位會更新為「叢集類型:主要叢集」和「叢集類型:次要叢集」

gcloud

使用 gcloud alloydb clusters switchover 指令:

 gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
   --region=REGION_ID \
   --project=PROJECT_ID \

更改下列內容:

  • SECONDARY_CLUSTER_ID:要升級的次要叢集 ID。
  • REGION_ID:次要叢集區域的 ID,例如 us-central1
  • PROJECT_ID:次要叢集專案的 ID。

後續步驟