设置参数

参数名称和值

所有参数名称均不区分大小写。每个参数都采用以下五种类型之一的值:布尔值、字符串、整数、浮点数或枚举 (enum)。类型决定了设置参数的语法:

  • 布尔值:值可以写为onofftruefalseyesno10或其中任何明确的前缀。

  • 字符串:通常,将值括在单引号中,并将值中的任何单引号加倍。但是,如果值是简单数字或标识符,通常可以省略引号。(与 SQL 关键字匹配的值在某​​些情况下需要加引号。)

  • 数字(整数和浮点):数字参数可以采用惯用的整数和浮点格式指定;如果参数为整数类型,则小数值将四舍五入为最接近的整数。整数参数还接受十六进制输入(以 开头0x)和八进制输入(以 开头0),但这些格式不能有小数。请勿使用千位分隔符。除十六进制输入外,不需要引号。

  • 带单位的数字:一些数字参数具有隐式单位,因为它们描述的是内存或时间的数量。单位可能是字节、千字节、块(通常为 8 千字节)、毫秒、秒或分钟。这些设置之一的未修饰数值将使用设置的默认单位,可从中了解pg_settingsunit为方便起见,可以为设置指定明确指定的单位,例如'120 ms'时间值,它们将转换为参数的实际单位。请注意,必须将值写为字符串(带引号)才能使用此功能。单位名称区分大小写,数值和单位之间可以有空格。

    • 有效的内存单位为B(字节)、kB(千字节)、MB(兆字节)、GB(千兆字节) 和TB(太字节)。内存单位的乘数为 1024,而不是 1000。

    • 有效的时间单位为us(微秒)、ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。

    如果小数值指定了单位,则它将被四舍五入为下一个较小单位的倍数(如果有)。例如,30.1 GB将被转换为30822 MBnot 32319628902 B。如果参数是整数类型,则在任何单位转换之后都会最终四舍五入为整数。

  • 枚举:枚举类型参数的书写方式与字符串参数相同,但只能使用一组有限的值。此类参数的允许值可从 中找到pg_settingsenumvals枚举参数值不区分大小写。

通过配置文件进行参数交互

设置这些参数的最基本方法是编辑文件postgresql.conf,通常保存在数据目录中。初始化数据库集群目录时会安装默认副本。该文件的示例可能如下所示:

# This is a comment
log_connections = yes
log_destination = 'syslog'
search_path = '"$user", public'
shared_buffers = 128MB

通过 SQL 进行参数交互

PostgreSQL提供了三个 SQL 命令来建立配置默认值。

PostgreSQL数据目录还包含一个文件postgresql.auto.conf, ALTER SYSTEM命令修改的内容写入此配置文件。postgresql.auto.conf中的设置会覆盖置postgresql.conf中的设置。

还有两个命令也有上诉作用

  • ALTER DATABASE命令允许根据每个数据库覆盖全局设置

  • ALTER ROLE命令允许使用用户特定的值覆盖全局和每个数据库的设置。

 

 

 

 

 

posted @ 2024-06-10 15:27  wongchaofan  阅读(12)  评论(0编辑  收藏  举报