本頁面說明如何建立及使用次要叢集,藉此使用 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 次要叢集和次要執行個體,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下叢集。
在「總覽」頁面中,按一下「建立次要叢集」。
設定次要叢集:
- 在「叢集 ID」欄位中,輸入次要叢集的資源 ID。
- 為次要叢集選取與主要叢集區域不同的區域。
- 選取預設的 Google 代管加密或客戶管理的金鑰 (CMEK),做為加密次要叢集的加密方法。
如要使用 CMEK 金鑰加密這個叢集,請按照下列步驟操作:
- 按一下「進階加密選項」。
- 選取「客戶自行管理的加密金鑰 (CMEK)」。
從顯示的選單中選取客戶管理的金鑰。
Google Cloud 控制台會將這份清單限制為與新叢集位於相同Google Cloud 專案和區域的金鑰。
如要使用不在清單中的金鑰,請按照下列步驟操作:
- 按一下「找不到您的金鑰嗎?」輸入金鑰資源名稱。
- 在「金鑰資源名稱」欄位中輸入資源名稱。
- 按一下 [儲存]。
- 按一下「繼續」。
搭配使用 CMEK 金鑰與 AlloyDB 時,需要進行一些額外設定。詳情請參閱「使用 CMEK」。
如果相關聯的主要執行個體是以 CMEK 金鑰加密,次要叢集也必須以 CMEK 金鑰加密。
設定次要執行個體:
- 在「Instance ID」(執行個體 ID) 欄位中,輸入次要執行個體的資源 ID。資源 ID 在叢集中不得重複。
按一下 [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-1
、12345
、my-project-n
。如果叢集使用 Private Service Connect 做為連線至執行個體的方法,則必須設定允許的專案或編號清單。--no-enable-automated-backup
(選用):停用在次要叢集上建立自動備份。
如要建立啟用 Private Service Connect 的次要執行個體,請新增 allowed-psc-projects
標記,設定以半形逗號分隔的專案 ID 或專案編號清單,允許存取執行個體,例如 my-project-1
、12345
和 my-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-1
、12345
和my-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 次要叢集的詳細資訊,請按照下列步驟操作:
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下次要叢集。
在「總覽」頁面中,查看次要叢集的所有詳細資料。
更新次要執行個體
您可以更新次要執行個體,新增、修改或刪除資料庫標記。您也可以調整次要執行個體的機器類型。
在次要執行個體上設定資料庫旗標
如要新增、修改或刪除資料庫標記,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下要修改的次要叢集。
在「總覽」頁面中,前往「叢集中的執行個體」,選取次要執行個體,然後按一下「編輯次要執行個體」。
從執行個體新增、修改或刪除資料庫旗標:
新增旗標
- 如要為執行個體新增資料庫旗標,請按一下「新增旗標」。
- 從「New database flag」(新的資料庫標記) 清單中選取標記。
- 提供旗標值。
- 按一下 [完成]。
修改旗標
- 如要修改執行個體中的資料庫旗標,請展開資料庫旗標,並在「編輯資料庫旗標」專區中修改現有旗標的值。
- 按一下 [完成]。
刪除標記
- 如要從執行個體刪除資料庫標記,請選取標記並按一下刪除圖示。
- 按一下 [完成]。
按一下「更新次要電子郵件地址」。
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。
調整次要執行個體的機型
如要調整次要執行個體的機型,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下要修改的次要叢集。
在「總覽」頁面中,前往「叢集中的執行個體」部分,然後按一下「編輯次要」。
請注意,如果頁面回報叢集「狀態」為「維護」,則無法執行這項動作。「狀態」變更為「就緒」後,即可再次使用這項動作。
選取機型。
按一下「更新次要電子郵件地址」。
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
狀態後,請再次執行指令。
如要查看叢集狀態,請參閱「查看叢集詳細資料」。
將讀取集區執行個體新增至次要叢集
如要在次要叢集中新增讀取集區執行個體,請按照下列步驟操作:
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下要新增讀取集區執行個體的次要叢集。
在「總覽」頁面中,前往「叢集中的執行個體」部分,然後按一下「新增讀取集區」。
設定讀取集區執行個體:
- 在「Read pool instance ID」(讀取集區執行個體 ID) 欄位中,輸入讀取集區執行個體的 ID。
- 在「節點計數」欄位中,輸入節點計數。 讀取集區執行個體中的節點數決定了執行個體的整體運算能力。叢集內所有讀取集區執行個體最多可有 20 個節點。
- 選取機型。
選用:為執行個體設定自訂旗標。針對每個標記執行下列操作:
- 按一下「新增旗標」。
- 從「New database flag」(新的資料庫標記) 清單中選取標記。
- 提供旗標值。
- 按一下 [完成]。
按一下「新增讀取集區」。
升級次要叢集
推送次要叢集前,請先執行下列步驟,確認次要叢集已套用主要叢集提供的所有交易:
- 停止對主要叢集的所有寫入作業。
完成下列步驟,檢查次要叢集的複製狀態:
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在叢集清單中,按一下要升級的次要叢集名稱。
在叢集詳細資料頁面中,按一下「監控」。
在「Monitoring」清單中,選取次要執行個體。清單中會顯示「次要:INSTANCE_NAME」。
在指標清單中,找出「從主要執行個體複製時的延遲時間」圖表。
確認圖表顯示的延遲時間極短。
延遲值為
0
是理想狀態。如果延遲時間超過0
,您仍可升級次要叢集,但可能會遺失主要叢集已提交的近期交易。在指標清單中,找出「複寫狀態」圖表。
確認圖表中代表的所有節點都有
streaming
值。
如要將次要叢集升級為主要叢集,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下要升級為主要叢集的次要叢集。
在「總覽」頁面上,按一下「升級叢集」。
在隨即顯示的對話方塊中,輸入次要叢集 ID,確認要升級叢集。
點選「升級」。
升級叢集後,「總覽」頁面的「類型:次要叢集 (可用性高)」欄位會更新為「類型:高可用性叢集 (具備讀取集區)」。
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:以下範例說明如何切換至兩個次要叢集之一。
如要執行切換作業,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下要切換為主要叢集的次要叢集。
在「總覽」頁面上,按一下「切換」。
在隨即顯示的對話方塊中,輸入次要叢集 ID,確認要切換叢集。
按一下「切換」。
叢集切換完成後,「總覽」頁面的「類型:次要叢集」欄位會更新為「叢集類型:主要叢集」和「叢集類型:次要叢集」。
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。