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 SYSTEM 进行修改(PostgreSQL 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" 的评论、建议或更正 此处