本文說明如何手動容錯移轉主要或次要執行個體。
主要和次要執行個體的高可用性
AlloyDB for PostgreSQL 支援主要和次要執行個體的高可用性。
主要執行個體的高可用性
為確保高可用性 (HA),每個 AlloyDB 主要執行個體都有一個常態啟用的節點和一個待命節點,且這兩個節點位於不同區域。如果作用中節點無法使用,AlloyDB 會自動容錯移轉主要執行個體至待命節點,使待命節點成為新的作用中節點。
您可以隨時手動將主要執行個體容錯移轉至待命節點,即使作用中節點運作正常也沒問題。啟動手動容錯移轉時,AlloyDB 會執行下列操作:
讓主要節點離線。
將待命節點變成新的有效節點。
重新啟用先前的有效節點,做為新的待命節點。
手動容錯移轉會交換主要執行個體節點的有效和待命角色。您可以隨時觸發手動容錯移轉,讓系統執行這項交換作業。
舉例來說,假設您有一個主要執行個體,其作用中和待命節點分別位於 us-central1-a
和 us-central1-b
區域。us-central1-a
發生中斷時,系統會觸發自動容錯移轉,導致 us-central1-b
區域代管作用中節點。如果希望將作用中節點保留在 us-central1-a
區域,可以手動啟動容錯移轉,讓 AlloyDB 將主要執行個體節點換回停機前的所在位置。
執行維護作業時,高可用性主要執行個體和基本執行個體通常只會短暫停機,時間不到一秒。手動容錯移轉是有意執行的受控程序,因此不適用於模擬非預期的硬體或網路故障。您可以使用錯誤注入功能,測試主要執行個體的高可用性。
次要執行個體的高可用性
AlloyDB 提供次要執行個體的高可用性,支援災難復原,並在次要執行個體無法使用時減少停機時間。
根據預設,HA 會在次要執行個體上設定。
AlloyDB 次要執行個體包含下列節點:
- 可回應要求的有效次要節點
- 待命次要節點
主動和待命節點位於區域中的兩個不同可用區。如果 AlloyDB 偵測到有效節點無法使用,有效節點會容錯移轉至待命節點,由待命節點做為新的有效節點。然後將資料重新導向至新的作用中節點。這項程序稱為「容錯移轉」。
事前準備
- 您使用的 Google Cloud 專案必須已啟用 AlloyDB 存取權。
- 您必須在使用的 Google Cloud 專案中擁有下列其中一個 IAM 角色:
roles/alloydb.admin
(AlloyDB 管理員預先定義的 IAM 角色)roles/owner
(擁有者基本 IAM 角色)roles/editor
(編輯者基本 IAM 角色)
如果您不具備上述任一角色,請與機構管理員聯絡,並要求存取權。
對主要執行個體執行手動容錯移轉
主控台
- 前往「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下叢集名稱。
在「Instances in your cluster」(叢集中的執行個體) 部分,開啟主要執行個體的
「Instance actions menu」(執行個體動作選單)。按一下「容錯移轉」。
在隨即顯示的對話方塊中,輸入執行個體的 ID。
按一下「觸發容錯移轉」。
gcloud
執行 gcloud alloydb instances
failover
指令:
gcloud alloydb instances failover INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID
更改下列內容:
INSTANCE_ID
:執行個體的 ID。REGION_ID
:執行個體所在的區域。CLUSTER_ID
:執行個體所在的叢集 ID。PROJECT_ID
:叢集所在專案的 ID。
如要確認容錯移轉是否正常運作,請按照下列步驟操作:
執行容錯移轉前,請記下主要執行個體節點的可用區。
執行容錯移轉後,請記下兩個節點的新區域。
確認作用中和待命節點的區域已互換。
在次要執行個體上執行手動容錯移轉
手動容錯移轉次要執行個體的步驟,與手動容錯移轉主要執行個體的步驟類似。
如要手動容錯移轉次要叢集,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下次要叢集的名稱。
在「總覽」頁面中,前往「叢集中的執行個體」部分,選擇次要執行個體,然後按一下「容錯移轉」。
在隨即顯示的對話方塊中輸入執行個體 ID,然後按一下「觸發容錯移轉」。
gcloud
如要使用 gcloud CLI,您可以安裝及初始化 Google Cloud CLI,也可以使用 Cloud Shell。
使用 gcloud alloydb instances failover
指令,強制次要執行個體容錯移轉其待命狀態。
gcloud alloydb instances failover SECONDARY_INSTANCE_ID \
--cluster=SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID
更改下列內容:
SECONDARY_INSTANCE_ID
:要容錯移轉的次要執行個體 ID。SECONDARY_CLUSTER_ID
:次要執行個體關聯的次要叢集 ID。REGION_ID
:次要執行個體所在區域的 ID,例如us-central1
。PROJECT_ID
:次要叢集專案的 ID。