配置 AlloyDB Omni 数据库参数

如需为 AlloyDB Omni 配置数据库参数,您可以在以下任一位置更新全局统一配置 (GUC) 参数

  • 适用于在虚拟机上运行 AlloyDB Omni 的环境的 postgresql.conf 文件。

  • 适用于在 Kubernetes 集群上运行 AlloyDB Omni 的环境的数据库集群清单。

更新容器化 AlloyDB Omni 中的参数

在虚拟机上运行的 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 字段中的值不同。例如,您应用不存在的参数,或者将字符串值设置为整数参数。