2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4

ALTER SYSTEM

ALTER SYSTEM — 更改服务器配置参数

概要

ALTER SYSTEM SET configuration_parameter { TO | = } { value [, ...] | DEFAULT }

ALTER SYSTEM RESET configuration_parameter
ALTER SYSTEM RESET ALL

描述

ALTER SYSTEM 用于更改整个数据库集群的服务器配置参数。它比手动编辑 postgresql.conf 文件的传统方法更方便。 ALTER SYSTEM 将给定的参数设置写入 postgresql.auto.conf 文件,该文件除了 postgresql.conf 外还会被读取。将参数设置为 DEFAULT,或使用 RESET 变体,会从 postgresql.auto.conf 文件中删除该配置项。使用 RESET ALL 删除所有此类配置项。

使用 ALTER SYSTEM 设置的值将在下次服务器配置重载后生效,或者在需要服务器启动时更改的参数的情况下,在下次服务器重启后生效。可以通过调用 SQL 函数 pg_reload_conf(),运行 pg_ctl reload,或向主服务器进程发送 SIGHUP 信号来命令服务器配置重载。

只有超级用户以及被授予参数 ALTER SYSTEM 权限的用户才能使用 ALTER SYSTEM 更改它。此外,由于此命令直接操作文件系统且无法回滚,因此不允许在事务块或函数内部使用。

参数

configuration_parameter

可设置的配置参数的名称。可用参数在 第 19 章 中有说明。

value

参数的新值。值可以根据特定参数的要求,指定为字符串常量、标识符、数字或这些的逗号分隔列表。不是数字也不是有效标识符的值必须加引号。 DEFAULT 可用于指定从 postgresql.auto.conf 中删除参数及其值。

对于某些接受列表的参数,加引号的值将产生双引号输出,以保留空格和逗号;对于其他参数,必须在单引号字符串中使用双引号才能实现此效果。

注释

此命令不能用于设置 data_directoryallow_alter_system,或不允许在 postgresql.conf 中设置的参数(例如,预设选项)。

有关设置参数的其他方法,请参阅 第 19.1 节

ALTER SYSTEM 可以通过将 allow_alter_system 设置为 off 来禁用,但这并非安全机制(如该参数的文档中所述)。

示例

设置 wal_level

ALTER SYSTEM SET wal_level = replica;

撤销该操作,恢复 postgresql.conf 中的任何有效设置

ALTER SYSTEM RESET wal_level;

兼容性

ALTER SYSTEM 语句是 PostgreSQL 的扩展。

另请参阅

SET, SHOW

提交更正

如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表格 报告文档问题。