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一个可设置的配置参数的名称。可用参数记录在 Chapter 19 中。
value 该参数的新值。值可以指定为字符串常量、标识符、数字,或者它们的逗号分隔列表,视具体参数而定。既不是数字也不是有效标识符的值必须加引号。可以书写 DEFAULT 来指定从 postgresql.auto.conf 中移除该参数及其值。
对于某些接受列表的参数,加引号的值会产生用双引号括起来的输出以保留空格和逗号;对于其他参数,则必须在单引号字符串内使用双引号才能获得这种效果。
该命令不能用于设置 data_directory、allow_alter_system,以及 postgresql.conf 中不允许的参数(例如,预设选项)。
设置参数的其他方法请参见 Section 19.1。
ALTER SYSTEM 可以通过将 allow_alter_system 设置为 off 来禁用,但这并不是一种安全机制(在该参数的文档中有详细说明)。
Set the wal_level:
ALTER SYSTEM SET wal_level = replica;
撤销该操作,恢复 postgresql.conf 中生效的设置:
ALTER SYSTEM RESET wal_level;
ALTER SYSTEM 语句是 PostgreSQL 的扩展。