Redrock Postgres 搜索 英文
版本: 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

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 节,了解设定参数的其他方式。

可以通过将 allow_alter_system 设置为 off 来禁用 ALTER SYSTEM,但这并不是一种安全机制(如该参数的说明中详细解释的那样)。

示例

设置 wal_level

ALTER SYSTEM SET wal_level = replica;

撤消,恢复在 postgresql.conf 中生效的设置

ALTER SYSTEM RESET wal_level;

兼容性

ALTER SYSTEM 语句是 PostgreSQL 的扩展。

另请参阅

SETSHOW