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 扩展。
如果您在文档中发现任何不正确、与特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。