51.24. pg_settings#
51.24. pg_settings #
Представление pg_settings предоставляет доступ к параметрам сервера во время выполнения. Оно является альтернативным интерфейсом для команд SHOW и SET. Оно также предоставляет доступ к некоторым фактам о каждом параметре, которые недоступны непосредственно из команды SHOW, таким как минимальное и максимальное значения.
Таблица 51.24. pg_settings Колонки
Тип столбца Описание |
|---|
Имя параметра конфигурации времени выполнения |
Текущее значение параметра |
Неявная единица параметра |
Логическая группа параметра |
Краткое описание параметра |
Дополнительное, более подробное, описание параметра |
Требуется контекст для установки значения параметра (см. ниже) |
Тип параметра ( |
Источник текущего значения параметра |
Минимально допустимое значение параметра (null для нечисловых значений) |
Максимально допустимое значение параметра (null для нечисловых значений) |
Допустимые значения параметра перечисления (null для не перечислимых значений) |
Значение параметра, предполагаемое при запуске сервера, если параметр не установлен иначе |
Значение, которое |
Файл конфигурации, в котором было установлено текущее значение (null для значений, установленных из источников, отличных от файлов конфигурации, или когда они проверяются пользователем, который не является суперпользователем и не имеет привилегий |
Номер строки внутри файла конфигурации, в которой было установлено текущее значение (null для значений, установленных из источников, отличных от файлов конфигурации, или когда они были рассмотрены пользователем, который не является суперпользователем и не имеет привилегий |
|
Возможны несколько значений context.
В порядке убывания сложности изменения настроек они следующие:
internalЭти настройки не могут быть изменены напрямую; они отражают внутренне определенные значения. Некоторые из них могут быть настраиваемыми путем пересборки сервера с различными параметрами конфигурации или изменения параметров, передаваемых в initdb.
postmasterЭти настройки могут быть применены только при запуске сервера, поэтому любое изменение требует перезапуска сервера. Значения для этих настроек обычно хранятся в файле
postgresql.confили передаются через командную строку при запуске сервера. Конечно, настройки с любым из более низких типовcontextтакже могут быть установлены при запуске сервера.sighupИзменения этих настроек можно внести в файл
postgresql.confбез перезапуска сервера. Отправьте сигнал SIGHUP постмастеру, чтобы заставить его перечитать файлpostgresql.confи применить изменения. Постмастер также пересылает сигнал SIGHUP своим дочерним процессам, чтобы они все получили новое значение.superuser-backendИзменения этих настроек можно внести в файл
postgresql.confбез перезапуска сервера. Они также могут быть установлены для конкретной сессии в пакете запроса на подключение (например, через переменную окружения libpq'sPGOPTIONS), но только если подключающийся пользователь является суперпользователем или ему были предоставлены соответствующие привилегииSET. Однако, эти настройки никогда не изменяются в сессии после ее запуска. Если вы измените их в файлеpostgresql.conf, отправьте сигнал SIGHUP постмастеру, чтобы заставить его перечитать файлpostgresql.conf. Новые значения будут влиять только на последующие запущенные сессии.backendИзменения этих настроек можно внести в файл
postgresql.confбез перезапуска сервера. Они также могут быть установлены для конкретной сессии в пакете запроса на подключение (например, через переменную окружения libpq'sPGOPTIONS); любой пользователь может сделать такое изменение для своей сессии. Однако эти настройки никогда не изменяются в сессии после ее запуска. Если вы измените их в файлеpostgresql.conf, отправьте сигнал SIGHUP постмастеру, чтобы заставить его перечитать файлpostgresql.conf. Новые значения будут влиять только на последующие запущенные сессии.superuserВсе эти настройки могут быть установлены из файла
postgresql.confили в рамках сессии с помощью командыSET; но только суперпользователи и пользователи с соответствующим привилегиейSETмогут изменять их с помощью командыSET. Изменения в файлеpostgresql.confповлияют на существующие сессии только в том случае, если не было установлено локальное значение сессии с помощью командыSET.userЭти настройки можно установить из файла
postgresql.conf, или в рамках сессии с помощью командыSET. Любой пользователь может изменить свое локальное значение сессии. Изменения в файлеpostgresql.confбудут влиять на существующие сессии только если локальное значение сессии не было установлено с помощью командыSET.
См. Раздел 18.1 для получения дополнительной информации о различных способах изменения этих параметров.
Это представление нельзя вставить или удалить, но его можно обновить. Применение UPDATE к строке pg_settings эквивалентно выполнению команды SET для этого именованного параметра. Изменение влияет только на значение, используемое текущей сессией. Если UPDATE выполняется внутри транзакции, которая позже отменяется, эффекты команды UPDATE исчезают при откате транзакции. После коммита окружающей транзакции эффекты сохраняются до конца сессии, если только их не переопределит другая команда UPDATE или SET.
Это представление не отображает настроенные параметры,
если модуль расширения, определяющий их, не был загружен процессом сервера,
выполняющим запрос (например, через упоминание в
shared_preload_libraries,
вызов C-функции в расширении или команду
LOAD).
Например, поскольку модули архивации
обычно загружаются только процессом архиватора, а не обычными сессиями,
это представление не будет отображать настроенные параметры, определенные такими модулями,
если не будет предпринято специальное действие по их загрузке в процесс сервера,
выполняющий запрос.