pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
ALTER SYSTEM — 更改服务器配置参数
ALTER SYSTEM SETconfiguration_parameter{ TO | = } {value[, ...] | DEFAULT } ALTER SYSTEM RESETconfiguration_parameterALTER 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_directory、allow_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扩展。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题请通过上游文档表单反馈给 PostgreSQL 文档维护者。