設定高可用性

高可用性設定的目的是在資料庫叢集執行個體無法使用時,縮短停機時間。如果執行個體記憶體不足,就可能發生這種情況。高可用性可確保用戶端應用程式持續存取資料。

在網站中,設定是由主要執行個體和待命副本組成。對主要執行個體執行的所有寫入作業,都會在回報交易已修訂前,複寫至待命副本。如果執行個體發生故障,您可以要求待命備用資源成為新的主要執行個體。應用程式流量隨即會重新導向至新的主要執行個體。這項程序稱為「容錯移轉」

您隨時可以手動觸發容錯移轉。容錯移轉程序依序如下:

  1. GDC 會將主要執行個體設為離線。

  2. GDC 會將待命副本轉換為新的作用中資料庫叢集。

  3. GDC 會刪除先前的有效資料庫叢集。

  4. GDC 會建立新的待命副本。

對於 AlloyDB Omni 和 PostgreSQL 資料庫叢集,您可以啟用或停用同區域高可用性。

更新現有叢集

您可以更新現有資料庫叢集的高可用性設定:

主控台

  1. 在導覽選單中選取「資料庫服務」

  2. 在資料庫叢集清單中,按一下要更新的資料庫叢集。

  3. 在「高可用性」部分中,選取「編輯」

    編輯資料庫叢集的高可用性設定。

  4. 選取「啟用相同可用區的待命執行個體」,即可開啟或關閉與主要資料庫叢集位於相同可用區的待命執行個體。

  5. 按一下 [儲存]

  6. 查看資料庫叢集清單的「高可用性」欄,確認資料庫叢集是否反映高可用性更新。

gdcloud

  1. 更新資料庫叢集的高可用性設定:

    gdcloud database clusters update CLUSTER_NAME \
        --availability-type HA_TYPE
    

    更改下列內容:

    • CLUSTER_NAME:資料庫叢集的名稱。
    • HA_TYPE:資料庫叢集的高可用性等級。您可以設定 zonalzonal_ha。系統預設會設定 zonal 值。
  2. 確認資料庫叢集是否反映高可用性更新:

    gdcloud database clusters list
    

API

  1. 更新資料庫叢集的高可用性設定:

      kubectl patch dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
        -n USER_PROJECT \
        -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \
        --type=merge
    

    請替換下列變數:

    • DBENGINE_NAME:資料庫引擎的名稱。這是 alloydbomnipostgresqloracle
    • DBCLUSTER_NAME:資料庫叢集的名稱。
    • USER_PROJECT:建立資料庫叢集的使用者專案名稱。
    • HA_ENABLED:資料庫叢集的高可用性等級。您可以設定 truefalse。系統預設會設定 false 值。
  2. 確認資料庫叢集是否反映高可用性更新:

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
      -n USER_PROJECT \
      -o yaml
    

觸發容錯移轉

如果您已為資料庫叢集設定高可用性,可以觸發容錯移轉。如要觸發容錯移轉,請完成下列步驟:

主控台

  1. 在導覽選單中選取「資料庫服務」

  2. 在資料庫叢集清單中,按一下要觸發容錯移轉的資料庫叢集。資料庫叢集必須啟用高可用性,才能進行容錯移轉。

  3. 按一下「容錯移轉」

  4. 輸入叢集 ID 做為確認詞組,然後按一下「容錯移轉」,觸發容錯移轉程序。

gdcloud

  • 觸發資料庫叢集的容錯移轉:

    gdcloud database clusters failover CLUSTER_NAME
    

    CLUSTER_NAME 替換為資料庫叢集的名稱。

API

  apiVersion: fleet.dbadmin.gdc.goog/v1
  kind: Failover
  metadata:
    name: FAILOVER_NAME
  spec:
    dbclusterRef: DBCLUSTER_NAME

請替換下列變數:

  • DBCLUSTER_NAME:資料庫叢集名稱。
  • FAILOVER_NAME:容錯移轉的專屬名稱,例如 failover-sample