PolarDB PostgreSQL轻量版支持通过执行SQL命令,修改postgresql.conf
文件或修改config.yaml
文件调整集群参数配置。
基础概念
参数类型决定了设置该参数时使用的语法,支持以下五种参数类型:
布尔:该类型的参数值支持设置为
on/off
、true/false
、yes/no
、1/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.yaml
的all.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文件修改参数