在執行個體上啟用及停用高可用性

本頁面說明如何設定高可用性的 PostgreSQL 執行個體。

您可以在建立執行個體時設定高可用性,也可以對現有執行個體啟用高可用性。

如需進一步瞭解高可用性設定,請參閱高可用性設定總覽

建立高可用性的新執行個體

當您建立高可用性的 PostgreSQL 執行個體時,Cloud SQL 會將該執行個體設定為地區性執行個體。

建立高可用性的執行個體:

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 Cloud SQL 執行個體頁面

  2. 建立第二代執行個體。
  3. 在「Instance ID」(執行個體 ID) 頁面上,選取 [Show configuration options] (顯示設定選項)
  4. 開啟 [Enable auto backups and high availability] (啟用自動備份和高可用性)
  5. 選取 [High availability (regional)] (高可用性 (地區性)) 核取方塊。

gcloud

  1. 建立地區性執行個體:
    gcloud beta sql instances create [REGIONAL_INSTANCE_NAME] \
                                     --availability-type=REGIONAL \
                                     --database-version=POSTGRES_9_6 \
                                     --cpu=[NUMBER_CPUS] --memory=[MEMORY_SIZE]
    
  2. 設定 root 使用者:
    gcloud sql users set-password postgres no-host \
                          --instance=[REGIONAL_INSTANCE_NAME] --password=[PASSWORD]
    
如需可用參數的完整清單,請參閱 gcloud beta sql 執行個體建立參考頁面。

cURL

  1. 建立地區執行個體:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name":"[INSTANCE_NAME]", "region":"[REGION]",
                  "databaseVersion":"POSTGRES_9_6",
                  "settings": {
                      "tier":"[MACHINE_TYPE]",
                      "availabilityType":"REGIONAL"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    
    如需此要求的完整參數清單,請參閱執行個體:插入頁面。
  2. 執行個體完成初始化時,請更新 postgres 使用者的密碼:
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "postgres", "host": "nohost", "password": "[PASSWORD]"}' \
         'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=postgres'
    

如需進一步瞭解如何建立執行個體,請參閱建立執行個體

設定現有執行個體的高可用性

主控台

設定高可用性的現有執行個體會導致重新設定執行個體時發生幾分鐘的停機時間。

設定現有執行個體的高可用性:

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體頁面

  2. 按一下執行個體名稱,開啟它的「總覽」頁面,並按一下按鈕列中的 [編輯]
  3. 在「啟用自動備份和高可用性」設定選項區段下,選取 [高可用性 (地區性)] 核取方塊。
  4. 按一下 [儲存]

    您會回到更新執行個體時主要執行個體的執行個體頁面。

gcloud

將執行個體更新為地區性:

gcloud beta sql instances patch [INSTANCE_NAME] --availability-type REGIONAL

cURL

設定高可用性的現有執行個體會導致重新設定執行個體時發生幾分鐘的停機時間。

將執行個體更新為地區性執行個體:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings": {"availabilityType":"REGIONAL"}}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]

啟動容錯移轉

測試容錯移轉是選用功能,但我們建議您執行這項功能,這樣才能瞭解應用程式在發生容錯移轉時的回應方式。

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL 執行個體」頁面

  2. 按一下主要執行個體名稱,開啟「執行個體詳細資料」頁面。
  3. 按一下按鈕列中的 [容錯移轉]

gcloud

啟動容錯移轉:

gcloud sql instances failover [MASTER_INSTANCE_NAME]

cURL

  1. 說明主要執行個體以取得「settingsVersion」欄位的值。
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    
  2. 啟動容錯移轉:
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"failoverContext":{"settingsVersion":"[SETTINGS_VERSION]"}}' \
              -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]/failover
              

  執行個體開始容錯移轉,會有幾分鐘的時間無法提供資料。

在執行個體上停用高可用性

執行這項程序之前,請確保執行個體上目前沒有任何執行中的作業。

停用高可用性方式如下:

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 Cloud SQL 執行個體頁面

  2. 選取您要停用高可用性的執行個體。
  3. 在「Instance details」(執行個體詳細資料) 頁面上,按一下 [EDIT] (編輯)
  4. 開啟 [Enable auto backups] (啟用自動備份)。
  5. 按一下「Availability」(可用性) 底下的 [Single zone] (單一區域)
  6. 按一下 [Save] (儲存)。這項編輯需要重新啟動執行個體後才會生效。如果看到訊息方塊,請按一下 [SAVE AND RESTART] (儲存並重新啟動)

gcloud

如需參考資訊,請參閱 gcloud sql instances patch
gcloud beta sql instances patch [INSTANCE_NAME] --availability-type ZONAL

cURL

下列要求使用 instances:patch 方法將執行個體上的可用性類型變更為「ZONAL」(區域)。
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings": {"availabilityType":"ZONAL"}}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
PostgreSQL 適用的 Cloud SQL