ALTER SYSTEM
ALTER SYSTEM — изменить параметр конфигурации сервера
Синтаксис
ALTER SYSTEM SETпараметр_конфигурации{ TO | = } {значение[, ...] | DEFAULT } ALTER SYSTEM RESETпараметр_конфигурации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 могут только суперпользователи. А так как эта команда работает непосредственно с файловой системой и не может быть отменена, её нельзя поместить в блок транзакции или функцию.
Параметры
параметр_конфигурацииИмя устанавливаемого параметра конфигурации. Список доступных параметров приведён в Главе 18.
значениеНовое значение параметра. Значениями могут быть строковые константы, идентификаторы, числа или списки таких элементов через запятую, в зависимости от конкретного параметра. Значения, не являющиеся числами или действительными идентификаторами, должны заключаться в кавычки. Если в качестве значения указать
DEFAULT, параметр и его значение удаляются изpostgresql.auto.conf.Для некоторых параметров, принимающих в качестве значения список, значения в кавычках будут записываться в файл в двойных кавычках для сохранения пробелов и запятых; в других случаях для достижения такого эффекта необходимо использовать двойные кавычки внутри строк, заключённых в одинарные кавычки.
Примечания
С помощью этой команды нельзя задать data_directory, равно как и другие параметры, недопустимые в postgresql.conf (например, предустановленные параметры).
Другие способы настройки параметров описаны в Разделе 18.1.
Примеры
Установка уровня ведения журнала транзакций (wal_level):
ALTER SYSTEM SET wal_level = replica;
Отмена изменения, восстановление значения, заданного в postgresql.conf:
ALTER SYSTEM RESET wal_level;
Совместимость
Оператор ALTER SYSTEM является расширением Postgres Pro.
ALTER SYSTEM
ALTER SYSTEM — change a server configuration parameter
Synopsis
ALTER SYSTEM SETconfiguration_parameter{ TO | = } {value[, ...] | DEFAULT } ALTER SYSTEM RESETconfiguration_parameterALTER SYSTEM RESET ALL
Description
ALTER SYSTEM is used for changing server configuration parameters across the entire database cluster. It can be more convenient than the traditional method of manually editing the postgresql.conf file. ALTER SYSTEM writes the given parameter setting to the postgresql.auto.conf file, which is read in addition to postgresql.conf. Setting a parameter to DEFAULT, or using the RESET variant, removes that configuration entry from the postgresql.auto.conf file. Use RESET ALL to remove all such configuration entries.
Values set with ALTER SYSTEM will be effective after the next server configuration reload, or after the next server restart in the case of parameters that can only be changed at server start. A server configuration reload can be commanded by calling the SQL function pg_reload_conf(), running pg_ctl reload, or sending a SIGHUP signal to the main server process.
Only superusers can use ALTER SYSTEM. Also, since this command acts directly on the file system and cannot be rolled back, it is not allowed inside a transaction block or function.
Parameters
configuration_parameterName of a settable configuration parameter. Available parameters are documented in Chapter 18.
valueNew value of the parameter. Values can be specified as string constants, identifiers, numbers, or comma-separated lists of these, as appropriate for the particular parameter. Values that are neither numbers nor valid identifiers must be quoted.
DEFAULTcan be written to specify removing the parameter and its value frompostgresql.auto.conf.For some list-accepting parameters, quoted values will produce double-quoted output to preserve whitespace and commas; for others, double-quotes must be used inside single-quoted strings to get this effect.
Notes
This command can't be used to set data_directory, nor parameters that are not allowed in postgresql.conf (e.g., preset options).
See Section 18.1 for other ways to set the parameters.
Examples
Set the wal_level:
ALTER SYSTEM SET wal_level = replica;
Undo that, restoring whatever setting was effective in postgresql.conf:
ALTER SYSTEM RESET wal_level;
Compatibility
The ALTER SYSTEM statement is a Postgres Pro extension.