postgresql.conf

PostgreSQL的主要配置文件

postgresql.conf 是PostgreSQL的主要配置文件,也是配置参数设置的主要来源。

postgresql.conf 是一个由 initdb 生成的纯文本文件,通常存储在数据目录中。但是,某些发行版的软件包可能会将postgresql.conf放在另一个位置,例如 /etc/postgresql

参数

每行可以指定一个参数,作为名称/值设置;空行将被忽略。井号(#)后面的任何部分都将被视为注释。行内的空格不重要,名称和值之间的等号(=)是可选的,前提是它们之间至少有一个空格字符。

包含空格的参数必须用单引号括起来。在单引号出现在参数值中的罕见情况下,必须使用两个引号或反斜杠(\')对其进行转义。

# Comment
port = 5432
ssl on
shared_buffers = 512MB  # very important to get this right!
default_transaction_isolation = 'read committed'
log_line_prefix = '[\'foo''] ' # this log line prefix will be printed as: "['foo'] "

initdb 生成的 postgresql.conf 文件中,大多数有效参数都被注释掉了,但显示了 initdb 设置的默认值。

包含其他文件

以下指令启用包含更多文件

  • include - 包含指定的文件,可以是绝对路径,也可以是相对于当前文件目录的相对路径
  • include_if_exists - 类似于 include,但如果文件不存在,则不会引发错误
  • include_dir - 包含指定目录中以 .conf 结尾的所有文件,该目录指定为绝对路径或相对于当前文件目录的相对路径

修改postgresql.conf

postgresql.conf 可以使用任何文本编辑器进行修改;使用配置管理系统通常是管理此文件和相关文件的明智方法。

PostgreSQL配置也可以使用SQL命令 ALTER SYSTEMPostgreSQL 9.4 及更高版本)进行修改。这不会直接更改 postgresql.conf;相反,更改会被写入特殊文件 postgresql.auto.conf,该文件会覆盖 postgresql.conf 中的设置。

激活更改

postgresql.conf 在服务器启动时读取。在服务器运行期间所做的任何更改都不会自动生效;必须发送 SIGHUP 信号,这可以通过 pg_ctl reload 或执行 SELECT pg_reload_conf() 来完成。某些配置参数需要重新启动服务器;有关详细信息,请参阅 此页面

在数据目录之外使用postgresql.conf

请参阅 服务器管理技巧

示例文件

一个示例 postgresql.conf 文件,其中包含大多数参数的默认值,可在 src/backend/utils/misc/postgresql.conf.sample 获取。

分类

配置管理/运维

另请参阅

postgresql.auto.confALTER SYSTEMGUCincludeinclude_if_existsinclude_dir需要服务器重启的配置项列表

反馈

提交您对“postgresql.conf”的任何评论、建议或更正 此处