更新資料庫叢集屬性

您可以使用 GDC 控制台或 gdcloud CLI 變更下列資料庫叢集屬性:

  • 管理員使用者的資料庫密碼
  • 外部連線 (啟用/停用)
  • 可用性層級
  • 備份功能已啟用,以及備份保留天數
  • 資料庫旗標
  • 分配給資料庫叢集的 CPU、記憶體或儲存空間

如要瞭解如何修改屬性,請參閱與您要更新的屬性類型對應的工作流程:

控制台

高可用性

啟用或停用相同可用區高可用性。詳情請參閱「設定高可用性」一節。

資料保護

您可以啟用或停用所有資料庫叢集類型的資料保護功能:

  1. 前往「資料保護」,然後按一下「編輯」圖示 ,存取資料保護設定表單。如果啟用自動備份功能,您也可以設定備份的保留時間。
  2. 變更完成後,按一下「Save」(儲存),即可將更新套用至資料庫叢集。

連線能力

無論資料庫叢集類型為何,您都可以選擇是否只允許從 GDC 專案內部存取資料庫叢集,或是否允許從專案外部存取:

  1. 前往「連線」,然後按一下「編輯」。
  2. 更新連線設定。
  3. 按一下 [Save] (儲存) 套用您的變更。

執行個體

您可以編輯所有資料庫叢集類型的主要執行個體屬性:

  1. 前往「主要執行個體」,然後點選「編輯」。
  2. 選擇「高效能」、「標準」、「最低」或「自訂」設定。「自訂」選項可讓您選擇主要執行個體的 CPU 數量、記憶體和儲存空間。

  3. 更新主要執行個體的 CPU、記憶體或儲存空間時,必須重新啟動。選取「儲存並重新啟動」,套用變更。

無論資料庫叢集類型為何,您都可以透過這份表單新增、修改或移除資料庫旗標。可用的旗標組合由 GDC 預先決定。詳情請參閱「設定資料庫旗標」一節。

gdcloud

使用下列指令更新資料庫叢集:

gdcloud database clusters update CLUSTER_NAME [options]

將 CLUSTER_NAME 替換為要更新的資料庫叢集名稱。

如需完整選項清單,請參閱指令參考資料,或執行:

gdcloud database clusters update --help

API

資料保護

無論資料庫叢集類型為何,只要為該資料庫叢集建立 BackupPlan 資源,即可啟用資料保護功能。

apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: BackupPlan
metadata:
  name: DBCLUSTER_NAME-backupplan
  namespace: USER_PROJECT
spec:
  dbclusterRef: DBCLUSTER_NAME
  backupRetainDays: RETENTION_DAYS

請替換下列變數:

  • DBCLUSTER_NAME:要啟用資料保護功能的資料庫叢集名稱。
  • USER_PROJECT:要建立資料庫叢集的使用者專案名稱。
  • RETENTION_DAYS:運算子保留這項備份的天數。必須是介於 1 至 90 之間的整數。

您也可以編輯對應的 BackupPlan 資源,設定保留天數等資料保護設定。

如要停用資料庫叢集的資料保護功能,請刪除先前建立的對應 BackupPlan 資源。

重設管理員使用者密碼

無論資料庫叢集類型為何,您都可以重設管理員使用者的資料庫密碼。

  1. 建立密碼密鑰。

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    
  2. 修補 DBCluster。

    kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -p '{"spec":{"primarySpec": {"adminUser": {"passwordRef": {"name": "db-pw-DBCLUSTER_NAME"}}}}}' --type=merge -n USER_PROJECT
    

請替換下列變數:

  • DBCLUSTER_NAME:資料庫叢集的名稱。
  • USER_PROJECT:要更新資料庫叢集的使用者專案名稱。
  • BASE64_PASSWORD:資料庫管理員密碼的 base64 編碼。

新密碼約一分鐘後生效。

設定資料庫旗標

GDC 隨附的資料庫映像檔會採用預設設定。不過,您可以自訂預設資料庫引擎,滿足應用程式的需求。資料庫叢集提供預先定義的旗標,您可以使用 GDC 控制台或 gdcloud CLI 設定:

控制台

  1. 在導覽選單中,選取「Database Service」。

  2. 在資料庫叢集清單中,按一下要設定資料庫旗標的資料庫叢集。

  3. 在「資料庫叢集中的執行個體」部分,點選「編輯主要節點」。

    編輯主要資料庫叢集,設定旗標。

  4. 在「旗標」部分,點選「新增資料庫旗標」。

  5. 選擇旗標並輸入值。如果輸入的值無效,GDC 控制台會提供操作說明,協助您滿足必要範圍或值類型。

  6. 按一下「完成」。

  7. 如要設定,請按一下「儲存」。部分旗標必須重新啟動資料庫叢集才會生效。在本案例中,請按一下「Save and Restart」(儲存並重新啟動)。

  8. 如要確認新旗標已設定,請返回資料庫叢集的「Instances in your database cluster」(資料庫叢集中的執行個體) 區段,確認新旗標和值是否顯示。

如要編輯資料庫旗標,請返回「Flags」(旗標) 專區,然後修改現有旗標。將滑鼠游標懸停在旗標元件上,然後按一下 「Delete」(刪除) 圖示,即可移除資料庫旗標。

gdcloud

您可以為叢集設定新的資料庫旗標,或將所有現有旗標重設為預設值:

  • 如要為資料庫叢集設定資料庫旗標,請執行下列指令:

    gdcloud database clusters update CLUSTER_NAME \
        --database-flags DB_FLAGS
    

    更改下列內容:

    • CLUSTER_NAME:資料庫叢集的名稱。
    • DB_FLAGS:以半形逗號分隔的資料庫旗標清單,用於在資料庫叢集中執行的資料庫上設定。每個資料庫旗標和值都會設為鍵/值組合。如要定義沒有值的旗標,請在 = 字元後方不加上字串。

    舉例來說,下列指令會為 test-db-cluster 設定多個資料庫旗標:

    gdcloud database clusters update test-db-cluster \
        --database-flags max_allowed_packet=55555,skip_grant_tables=,log_output=1
    

    如需可用的資料庫旗標清單,請參閱「可用的資料庫旗標」。

  • 如要將所有資料庫旗標重設為預設設定,請執行下列指令:

    gdcloud database clusters update CLUSTER_NAME --clear-database-flags
    

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

API

  • 如要設定資料庫叢集的資料庫旗標,請執行下列指令:

      kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -p '{"spec":{"primarySpec": {"parameters": DB_FLAGS}}}' --type=merge -n USER_PROJECT
    

    請替換下列變數:

    • DBCLUSTER_NAME:資料庫叢集的名稱。
    • USER_PROJECT:建立資料庫叢集的使用者專案名稱。
    • DB_FLAGS:要新增或更新的資料庫設定參數。這應為 JSON 格式的鍵/值組合,其中鍵是資料庫參數名稱,值則是對應的設定。例如,下列指令會設定多個資料庫旗標:
    "autovacuum": "on", "autovacuum_analyze_threshold": "2147483647", "dbs.enable_anon": "on"
    

    如需可用的資料庫旗標清單,請參閱「可用的資料庫旗標」。

  • 如要將所有資料庫旗標重設為預設設定,請執行下列指令:

    kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME --type=json -p='[{"op": "remove", "path": "/spec/primarySpec/parameters"}]' -n USER_PROJECT
    

    請替換下列變數:

    • DBCLUSTER_NAME:資料庫叢集的名稱。
    • USER_PROJECT:建立資料庫叢集的使用者專案名稱。

可用的資料庫旗標

標記 範圍 類型 需要重新啟動
google_columnar_engine.enabled 開啟、關閉 布林值 TRUE
google_columnar_engine.memory_size_in_mb [128, 2147483647] 整數 TRUE
anon.algorithm 字串 FALSE
anon.maskschema 字串 FALSE
anon.restrict_to_trusted_schemas 開啟、關閉 布林值 FALSE
anon.salt 字串 FALSE
anon.sourceschema 字串 FALSE
dbs.enable_anon on、off 布林值 TRUE
dbs.enable_pg_bigm on、off 布林值 TRUE
dbs.enable_pg_cron on、off 布林值 TRUE
dbs.enable_pg_hint_plan on、off 布林值 TRUE
dbs.enable_pg_squeeze on、off 布林值 TRUE
dbs.enable_pg_wait_sampling on、off 布林值 TRUE
pg_bigm.enable_recheck 開啟、關閉 布林值 FALSE
pg_bigm.gin_key_limit [0, 2147483647] 整數 FALSE
pg_bigm.similarity_limit [0, 1] 浮點值 FALSE
pg_hint_plan.debug_print off、on、detailed、verbose、0、1、2、3、no、yes、false、true 列舉 TRUE
pg_hint_plan.enable_hint 開啟、關閉 布林值 FALSE
pg_hint_plan.enable_hint_table 開啟、關閉 布林值 FALSE
pg_hint_plan.message_level debug5、debug4、debug3、debug2、debug1、debug、info、notice、warning、error、log 列舉 FALSE
pg_hint_plan.parse_messages debug5、debug4、debug3、debug2、debug1、debug、info、notice、warning、error、log 列舉 FALSE
pg_stat_statements.max [100, 2147483647] 整數 TRUE
pg_stat_statements.save 開啟、關閉 布林值 FALSE
pg_stat_statements.track none、top、all 列舉 FALSE
pg_stat_statements.track_utility 開啟、關閉 布林值 FALSE
pg_wait_sampling.history_period [1, 2147483647] 整數 FALSE
pg_wait_sampling.history_size [1, 2147483647] 整數 FALSE
pg_wait_sampling.profile_period [1, 2147483647] 整數 FALSE
pg_wait_sampling.profile_pid 開啟、關閉 布林值 FALSE
pg_wait_sampling.profile_queries 開啟、關閉 布林值 FALSE
pgaudit.log read、write、function、role、ddl、misc、misc_set、
all、none、-read、-write、-function、-role、-ddl、
-misc、-misc_set、-all、-none
重複的字串 FALSE
pgaudit.log_client 開啟、關閉 布林值 FALSE
pgaudit.log_parameter 開啟、關閉 布林值 FALSE
pgaudit.log_level debug5、debug4、debug3、debug2、debug1、info、
notice、warning、error、log
列舉 FALSE
pgaudit.log_relation 開啟、關閉 布林值 FALSE
pgaudit.log_catalog 開啟、關閉 布林值 FALSE
pgaudit.role 字串 FALSE
pgaudit.log_statement_once 開啟、關閉 布林值 FALSE
pglogical.batch_inserts 開啟、關閉 布林值 TRUE
pglogical.conflict_log_level debug5、debug4、debug3、debug2、debug1、info、notice、warning、error、log、fatal、panic 列舉 FALSE
pglogical.conflict_resolution error、apply_remote、keep_local、last_update_wins、first_update_wins 列舉 FALSE
pglogical.extra_connection_options 字串 FALSE
pglogical.synchronous_commit 開啟、關閉 布林值 TRUE
pglogical.use_spi 開啟、關閉 布林值 TRUE
pgtt.enabled 開啟、關閉 布林值 FALSE
plv8.execution_timeout [1, 65536] 整數 FALSE
plv8.memory_limit [256, 3096] 整數 FALSE
plv8.start_proc 字串 FALSE