19.2. Расположения файлов
В дополнение к вышеупомянутому postgresql.conf
, PostgreSQL обрабатывает два редактируемых вручную файла конфигурации, в которых настраивается аутентификация клиентов (их использование рассматривается в Главе 20). По умолчанию все три файла конфигурации размещаются в каталоге данных кластера БД. Параметры, описанные в этом разделе, позволяют разместить их и в любом другом месте. (Это позволяет упростить администрирование, в частности, выполнять резервное копирование этих файлов обычно проще, когда они хранятся отдельно.)
data_directory
(string
)Задаёт каталог, в котором хранятся данные. Этот параметр можно задать только при запуске сервера.
config_file
(string
)Задаёт основной файл конфигурации сервера (его стандартное имя —
postgresql.conf
). Этот параметр можно задать только в командной строкеpostgres
.hba_file
(string
)Задаёт файл конфигурации для аутентификации по сетевым узлам (его стандартное имя —
pg_hba.conf
). Этот параметр можно задать только при старте сервера.ident_file
(string
)Задаёт файл конфигурации для сопоставлений имён пользователей (его стандартное имя —
pg_ident.conf
). Этот параметр можно задать только при запуске сервера. См. также Раздел 20.2.external_pid_file
(string
)Задаёт имя дополнительного файла с идентификатором процесса (PID), который будет создавать сервер для использования программами администрирования. Этот параметр можно задать только при запуске сервера.
При стандартной установке ни один из этих параметров не задаётся явно. Вместо них задаётся только каталог данных, аргументом командной строки -D
или переменной окружения PGDATA
, и все необходимые файлы конфигурации загружаются из этого каталога.
Если вы хотите разместить файлы конфигурации не в каталоге данных, то аргумент командной строки postgres
-D
или переменная окружения PGDATA
должны указывать на каталог, содержащий файлы конфигурации, а в postgresql.conf
(или в командной строке) должен задаваться параметр data_directory
, указывающий, где фактически находятся данные. Учтите, что data_directory
переопределяет путь, задаваемый в -D
или PGDATA
как путь каталога данных, но не расположение файлов конфигурации.
При желании вы можете задать имена и пути файлов конфигурации по отдельности, воспользовавшись параметрами config_file
, hba_file
и/или ident_file
. Параметр config_file
можно задать только в командной строке postgres
, тогда как остальные можно задать и в основном файле конфигурации. Если явно заданы все три эти параметра плюс data_directory
, то задавать -D
или PGDATA
не нужно.
Во всех этих параметрах относительный путь должен задаваться от каталога, в котором запускается postgres
.