选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / SQL 命令 / 会话与参数

SQL COMMAND · 会话与参数

ALTER SYSTEM

更改服务器配置参数

ALTER会话与参数引入 10(基线)现存至 20 devel1 次语法变更

动词
ALTER
对象
SYSTEM
引入版本
10(基线)
状态
现存
语法变更次数
1
手册小节数
6

本站手册 · 18官方文档 ↗

版本轨迹

相对 PostgreSQL 17 无变化。

语法铁道图 PostgreSQL 18

沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。

ALTER SYSTEM SET configuration_parameter TO = value , DEFAULT
ALTER SYSTEM · 语法 2
ALTER SYSTEM RESET configuration_parameter
ALTER SYSTEM · 语法 3
ALTER SYSTEM RESET ALL

语法概要

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

ALTER SYSTEM RESET configuration_parameter
ALTER SYSTEM RESET ALL

PostgreSQL 18 手册 · 查看完整参考页

描述

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

一个可设置的配置参数名称。可用参数见 Chapter 19

value

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

对于某些接受列表的参数,带引号的值会生成带双引号的输出,以保留空 格和逗号;对于另一些参数,则必须在单引号字符串内部使用双引号才能 达到这种效果。

注解

不能用这个命令来设置data_directoryallow_alter_system,以及不允许出现在 postgresql.conf中的参数(例如 预置选项)。

关于设置这些参数的其他方法,见Section 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扩展。

另见

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 19← 18正文更新

    正文更新
  2. PostgreSQL 17← 16正文更新

    正文更新
  3. PostgreSQL 16← 15正文更新

    正文更新
  4. PostgreSQL 14← 13正文更新

    正文更新
  5. PostgreSQL 11← 10语法变化

    + ALTER SYSTEM SET configuration_parameter { TO | = } { value [, ...] | DEFAULT }− ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }正文更新

同组命令

命令动词对象版本变动最近变更
SESSIONS & SETTINGS会话与参数8 条
DISCARDDISCARD
丢弃会话状态现存
LISTENLISTEN
监听通知现存
NOTIFYNOTIFY
发出一个通知现存
RESETRESET
将一个运行时参数的值恢复为默认值现存
SETSET 191 次
更改运行时参数现存
SHOWSHOW
显示一个运行时参数的值现存
UNLISTENUNLISTEN
停止监听通知现存
ALTER SYSTEMALTERSYSTEM 111 次
更改服务器配置参数现存