ALTER SYSTEM — 更改一个服务器配置参数
ALTER SYSTEM SETconfiguration_parameter
{ TO | = } {value
[, ...] | DEFAULT } ALTER SYSTEM RESETconfiguration_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
一个可设置配置参数的名称。可用的参数可见第 20 章。
value
参数的新值。 值可以指定为字符串常量、标识符、数字或逗号分隔的这些列表,
适用于特定参数。 既不是数字也不是有效标识符的值必须用引号括起来。
可以写入DEFAULT
来指定从postgresql.auto.conf
中删除参数及其值。
对于一些接受列表的参数,引用值将产生双引号输出,以保留空格和逗号;对于其他参数, 在单引号字符串内部必须使用双引号才能获得这种效果。
设置wal_level
:
ALTER SYSTEM SET wal_level = replica;
撤销以上的设置,恢复postgresql.conf
中有效的设置:
ALTER SYSTEM RESET wal_level;
ALTER SYSTEM
语句是一种
PostgreSQL扩展。