Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 48. Системные каталоги | След. |
48.67. pg_settings
Представление pg_settings открывает доступ к параметрам времени выполнения сервера. По сути оно представляет собой альтернативный интерфейс для команд SHOW и SET. Оно также позволяет получить некоторые свойства каждого параметра, которые нельзя получить непосредственно, используя команду SHOW, например, минимальные и максимальные значения.
Таблица 48-68. Колонки pg_settings
Имя | Тип | Описание |
---|---|---|
name | text | Имя параметра конфигурации времени выполнения |
setting | text | Текущее значение параметра |
unit | text | Неявно подразумеваемая единица измерения параметра |
category | text | Логическая группа параметра |
short_desc | text | Краткое описание параметра |
extra_desc | text | Дополнительное, более подробное, описание параметра |
context | text | Контекст, в котором может задаваться значение параметра (см. ниже) |
vartype | text | Тип параметра (bool, enum, integer, real или string) |
source | text | Источник текущего значения параметра |
min_val | text | Минимальное допустимое значение параметра (NULL для нечисловых значений) |
max_val | text | Максимально допустимое значение параметра (NULL для нечисловых значений) |
enumvals | text[] | Допустимые значения параметра-перечисления (NULL для значений не перечислений) |
boot_val | text | Значение параметра, устанавливаемое при запуске сервера, если параметр не устанавливается другим образом |
reset_val | text | Значение, к которому будет сбрасывать параметр команда RESET в текущем сеансе |
sourcefile | text | Файл конфигурации, в котором было задано текущее значение (NULL для значений, полученных не из файлов конфигурации, или при чтении этого поля не суперпользователем); полезно при использовании указаний include в файлах конфигурации |
sourceline | integer | Номер строки в файле конфигурации, в которой было задано текущее значение (NULL для значений, полученных не из файлов конфигурации, или при чтении этого поля не суперпользователем) |
Поле context может содержать одно из следующих значений (они перечислены в порядке уменьшения сложности изменения параметров):
- internal
Эти параметры нельзя изменить непосредственно; они отражают значения, определяемые внутри системы. Некоторые из них можно изменить, пересобрав сервер с другими параметрами конфигурации, либо передав другие аргументы команде initdb.
- postmaster
Эти параметры могут быть применены только при запуске сервера, так что любое изменение требует перезапуска сервера. Значения этих параметров обычно задаются в postgresql.conf, либо передаются в командной строке при запуске сервера. Разумеется, параметры более низкого уровня context также можно задать в момент запуска сервера.
- sighup
Внесённые в postgresql.conf изменения этих параметров можно применить, не перезапуская сервер. Если передать управляющему процессу сигнал SIGHUP, он перечитает postgresql.conf и применит изменения. Управляющий процесс также перешлёт сигнал SIGHUP всем своим дочерним процессам, чтобы они тоже приняли новое значение.
- backend
Внесённые в postgresql.conf изменения этих параметров можно применить без перезапуска сервера; их также можно задать для определённого сеанса в пакете запроса соединения (например, через переменную окружения PGOPTIONS, учитываемую библиотекой libpq). Однако эти параметры никогда не меняются в сеансе, когда он уже начат. Если вы измените их в postgresql.conf, отправьте сигнал SIGHUP управляющему процессу, чтобы он перечитал postgresql.conf. Новые значения подействуют только на сеансы, запускаемые после этого.
- superuser
Эти параметры можно изменить в postgresql.conf, либо в рамках сеанса, командой SET; но только суперпользователи могут менять их, используя SET. Изменения в postgresql.conf будут отражены в существующих сеансах, только если в них командой SET не были заданы локальные значения.
- user
Эти параметры можно изменить в postgresql.conf, либо в рамках сеанса, командой SET. В рамках сеанса изменять их разрешено всем пользователям. Изменения в postgresql.conf будут отражены в существующих сеансах, только если в них командой SET не были заданы локальные значения.
Чтобы узнать больше о различных способах изменения этих параметров, обратитесь к Разделу 18.1.
Представление pg_settings не допускает добавление и удаление строк, но допускает изменение. Команда UPDATE, применённая к строке pg_settings, равнозначна выполнению команды SET для этого параметра. Изменение повлияет только на значение в текущем сеансе. Если UPDATE выполняется в транзакции, которая затем прерывается, эффект UPDATE пропадает, когда транзакция откатывается. После фиксирования окружающей транзакции этот эффект сохраняется до завершения сеанса, если он не будет переопределён другой командой UPDATE или SET.
Пред. | Начало | След. |
pg_seclabels | Уровень выше | pg_shadow |