postgresql.conf

PostgreSQL 的主配置文件

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

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

参数

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

包含空格的参数必须用单引号括起来。在极少数情况下,参数值中包含单引号时,必须通过使用两个单引号或反斜杠(\')进行转义。

# 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 文件;通常,使用配置管理系统是管理此文件及相关文件的明智方式。

还可以使用 SQL 命令 ALTER SYSTEMPostgreSQL 9.4 及更高版本)来修改 PostgreSQL 配置。这不会直接修改 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.conf, ALTER SYSTEM, GUC, include, include_if_exists, include_dir, 需要服务器重启的配置项列表

反馈

提交对 "postgresql.conf" 的任何评论、建议或更正 在此处