参数管理

更新时间:2025-04-03 08:23:07

PolarDB PostgreSQL轻量版支持通过执行SQL命令,修改postgresql.conf文件或修改config.yaml文件调整集群参数配置。

基础概念

参数类型决定了设置该参数时使用的语法,支持以下五种参数类型:

  • 布尔:该类型的参数值支持设置为on/offtrue/falseyes/no1/0或其无歧义前缀。

  • 字符串:该类型的参数值必须使用单引号进行引用。若参数值仅为简单的数字或标识符,可省略引号。

  • 整数和浮点数:

    • 对于浮点数类型参数值,仅允许保留一位小数。

    • 不需要使用千位分隔符和引号。

    • 对于隐含单位的数字参数值(如内存或时间值),当省略单位时使用默认单位(参见pg_settings.unit)。为了方便起见,也可以显式地指定一个与默认单位不同的单位,例如,设置时间值为120 ms,即参数的实际单位。

    说明
    • 单位大小写敏感,且数字值和单位之间需保留一个空格。

    • 可用内存单位包括:B(字节)、kB(千字节)、MB(兆字节)和GB(吉字节)。相邻内存单位换算以1024为基数。

    • 可用时间单位包括:ms(毫秒)、s(秒)、min(分钟)、 h(小时)和d(天)。

  • 枚举:该类型的参数值与字符串参数指定的方式相同,但枚举参数值大小写不敏感。具体参数可用值请查询pg_settings.enumvals

通过SQL配置参数

PolarDB PostgreSQL轻量版提供以下SQL语句用于修改集群配置。

全局配置

  • ALTER SYSTEM:实现全局配置更新,在效果上等于编辑postgresql.conf。对于重启参数需要使用pdbcli restart cluster重启集群,重启后新的参数配置将在集群所有节点生效。对于非重启参数可在各节点执行pg_ctl reload或调用SQL函数pg_reload_conf()使节点重新读取加载新的配置文件。

  • ALTER DATABASE:实现数据库级别配置更新。

  • ALTER ROLE:实现用户级别配置更新。

会话级配置

SET configuration_parameter TO value;:修改当前会话目标参数值,对其它会话无影响。

可通过SHOW configuration_parameter;查看目标参数当前值。也可以使用pg_settings系统视图查看和改变会话级别参数值。

说明

使用UPDATE并且指定更新命令setting列,其效果等同于发出SET命令。例如:SET configuration_parameter TO DEFAULT;等效于UPDATE pg_settings SET setting = reset_val WHERE name= 'configuration_parameter'

使用pdbcli修改参数

config.yamlall.db.vars.polardb_custom_params中添加参数实现多个参数修改。配置文件内容请参见配置文件示例

完成在config.yaml文件的修改后,需要使用pdbcli restart cluster重启集群,重启后新的参数配置将在集群所有节点生效。每次通过pdbcli重启集群时,都会使每个节点的postgresql.conf文件中的配置参数符合配置模板中的设置。

说明

参数名称和单位必须准确无误,修改非重启参数时也需要重启集群。

通过postgresql.conf文件修改参数

重要
  • 部分参数修改需要重启数据库后才能生效。

  • 配置文件中的非法参数设置将在SIGHUP处理过程中被忽略,但会记录相关日志信息。

完成集群目录初始化后,postgresql.conf文件将默认安装于数据目录中。通过编辑postgresql.conf文件,可设置参数在集群中的默认值。例如:

log_connections = yes
log_destination = 'syslog'
search_path ='"$user", public'
shared_buffers = 128MB
  • 每一行由一个参数名(key)和其对应值(value)组成。

  • #表示该行内容为注释。

  • 非简单标识符或数字的参数值应使用成对的单引号进行引用,或在引号前添加反斜线进行标识。

  • 同一参数若出现多次且设置的值不一致,则以最后一次设置的值作为有效值。

编辑postgresql.conf文件后,对于重启参数需要使用pdbcli restart cluster重启集群,重启后新的参数配置将在集群所有节点生效。对于非重启参数可在各节点执行pg_ctl reload或调用SQL函数pg_reload_conf()使节点重新读取加载新的配置文件。

说明

postgresql.conf之外,PolarDB PostgreSQL轻量版数据目录还包含postgresql.auto.conf文件用于保存ALTER SYSTEM SET类型的全局配置。该文件与postgresql.conf格式相同,但不支持手动编辑。 如两个文件中存在相同参数的不同配置,postgresql.auto.conf优先级更高。

  • 本页导读 (1)
  • 基础概念
  • 通过SQL配置参数
  • 全局配置
  • 会话级配置
  • 使用pdbcli修改参数
  • 通过postgresql.conf文件修改参数
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等