2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本: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_systempostgresql.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

提交更正

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