設定 AlloyDB Omni 資料庫參數

如要設定 AlloyDB Omni 的資料庫參數,您可以在下列任一位置更新大一統設定 (GUC) 參數

  • 適用於在 VM 上執行 AlloyDB Omni 的環境的 postgresql.conf 檔案。

  • Kubernetes 叢集上執行 AlloyDB Omni 的環境適用的資料庫叢集資訊清單。

更新容器化 AlloyDB Omni 中的參數

在 VM 上執行的 AlloyDB Omni 中,您可以編輯 postgresql.conf 檔案來更新參數,如下所示:

  1. 找出 AlloyDB Omni 安裝的 postgresql.conf 設定檔。

  2. 使用文字編輯器在 postgresql.conf 中新增或更新資料庫旗標。

    舉例來說,如要強制執行密碼到期,請在 postgresql.conf 檔案中設定下列旗標:

    password.enforce_expiration = ON
    
  3. 新增或編輯資料庫標記後,請重新載入 postgresql.conf 檔案,變更才會生效。舉例來說,如果您使用 Docker 安裝 AlloyDB Omni,請執行下列指令重新啟動 Docker 執行個體,並重新載入 postgresql.conf

    docker restart CONTAINER-NAME

詳情請參閱 PostgreSQL 說明文件中的「設定參數」。

在 Kubernetes 叢集上更新 AlloyDB Omni 中的參數

您可以使用資料庫叢集資訊清單 primarySpec 區段中的 parameters 欄位,設定資料庫參數:

spec:
  primarySpec:
    parameters:
      "PARAMETER_NAME": "PARAMETER_VALUE"
      ...

更改下列內容:

  • PARAMETER_NAME:參數名稱,例如 autovacuum
  • PARAMETER_VALUE:參數的值,例如 off

部分參數需要重新啟動叢集,變更才會生效。您可以從 pg_catalog.pg_settings 取得需要重新啟動的參數清單。任何含有 pg_catalog.pg_settings.context = 'postmaster' 的參數都需要重新啟動。

如要更新資料庫參數,請執行下列指令:

kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample -p '{"spec":{"primarySpec":{"parameters": {"PARAMETER_NAME": "PARAMETER_VALUE"}}}}' --type=merge

參數設定位於 currentParameters 欄位的 status 部分。

如要查看資料庫參數,請執行下列指令:

kubectl get dbclusters.alloydbomni.dbadmin.goog dbcluster-sample -o jsonpath={.status.primary.currentParameters}

輸出看起來類似以下內容:

{"autovacuum":"off","max_connections":"3000"}

如果 AlloyDB Omni 無法套用您在資料庫叢集資訊清單中要求使用的參數,則 currentParameters 欄位的值可能會與資訊清單中 parameters 欄位的值不同。舉例來說,您套用了不存在的參數,或是將字串值設為整數參數。