Прямое обращение к postmaster
Прямое обращение к postmaster
Программа postmaster представляет собой многопользовательский серверный модуль базы данных PostgreSQL. Именно к этому процессу в конечном счете подключаются клиенты PostgreSQL.
Обычно исполняемый файл postmaster не вызывается напрямую, а обращения к нему производятся косвенным образом через сценарии pg_ctl и SysV, о которых говорилось выше. Тем не менее в определенные моменты эти сценарии все же обращаются к postmaster напрямую, поэтому информация о том, что такое модуль postmaster и как он работает, поможет вам в настройке системы PostgreSQL.
В любой момент времени postmaster работает с одним кластером баз данных, хотя вы можете открыть на разных портах несколько экземпляров postmaster, каждый из которых будет работать со своим кластером.
Синтаксис командной строки postmaster:
postmaster [ -А { 0 | 1 } ] [ -В буферы ] [ -с имя=значение ]
[ -d уровень_отладки ] [ -D каталог_цанных ] [ -F ] [ -h хост ]
[ -i ] [ -k каталог ] [ -1 ] [ -N макс_подключений ]
[ -о параметры ] [ -р порт ] [ -S ] [ -n | -s ]
Ниже описаны ключи программы postmaster для PostgreSQL версии 7.1.x.
- -А { 0 | 1 }. Флаг проверки отладочных директив на стадии выполнения. Позволяет выполнять отладку, если соответствующий ключ был указан во время компиляции. Флаг -А используется только опытными программистами, работающими над самим пакетом PostgreSQL.
- -В буферы. Количество дисковых буферов в общей памяти, выделяемых для использования postmaster. По умолчанию — 64.
Примечание 1
Примечание 1
Значение ключа -В должно быть по крайней мере вдвое больше значения, передаваемого с ключом -N.
- -с имя=значение. Произвольные параметры времени выполнения. Ключ позволяет переопределить любой параметр конфигурации, находящийся в файле postgresql.conf (в каталоге данных кластера).
- -d уровенъ_отладки. Объем отладочного вывода, регистрируемого серверным процессом. По умолчанию равен 0. Чем больше число, тем подробнее вывод. Обычно значения 4 или ниже оказывается вполне достаточно, хотя при уровне 4 сохраняемые отладочные данные могут быстро заполнить все свободное место на диске.
Примечание 2
Примечание 2
Если стандартные потоки вывода и ошибок не были перенаправлены от postmaster в файл (на уровне командного интерпретатора или в pg_ctl при помощи ключа -1), вся отладочная информация выводится на управляющем терминале процесса postmaster.
- -D каталог. Каталог данных кластера. Если каталог не задан, postmaster использует либо значение переменной среды PGDATA, либо подкаталог /data каталога, указанного в переменной POSTGRESHOME. Если вторая переменная также не существует, используется стандартный каталог, заданный на стадии компиляции (например, /usr/local/pgsql/data).
- -F. Запрет isync. Ключ повышает быстродействие, но повышает риск порчи данных при внезапных сбоях оборудования или операционной системы. Хорошенько подумайте, прежде чем устанавливать этот флаг!
- -h хост. Адрес, по которому осуществляется прослушивание. По умолчанию PostgreSQL ведет прослушивание по всем настроенным адресам, включая local host.
- -i. Активизация клиентских подключений через TCP/IP. Если ключ не задан, postmaster принимает подключения только от сокетов локального домена.
- -k каталог. Каталог доменного сокета Unix, в котором postmaster прослушивает локальные подключения. По умолчанию равен /tmp/.
- -1. Активизация подключений SSL. Используется в сочетании с ключом -1.
Примечание 3
Примечание 3
Чтобы использовать ключ -1, необходимо откомпилировать PostgreSQL с поддержкой SSL.
- -N макс_соединеиий. Максимальное количество серверных процессов, одновременно обслуживаемых процессом postmaster. По умолчанию — 32. Максимально возможное значение параметра равно 1024. Проследите за тем, чтобы количество выделенных буферов соответствовало максимальному количеству одновременных подключений (параметр -В должен быть по крайней мере вдвое больше параметра -N).
- -о параметры. Параметры, передаваемые процессом postmaster серверным процессам postgres при запуске. Список параметров приведен в приложении Б. При передаче нескольких параметров строка должна заключаться в кавычки.
- -р порт. Номер порта TCP/IP (или расширение файла сокета), по которому данный экземпляр postmaster должен принимать подключения. Если ключ не задан, значение берется из переменной среды PGPORT или значения по умолчанию, заданного на стадии компиляции (обычно 5432).
- -S. Флаг подавления вывода. PostgreSQL отключается от терминального сеанса пользователя, создает собственную группу процессов и перенаправляет свои стандартные потоки вывода и ошибок в /dev/null.
ВНИМАНИЕ
Ключ -S затрудняет диагностику ошибок, поскольку весь трассировочный и отладочный вывод, обычно порождаемый процессом postmaster и его производными процессами, теряется.
Для любознательных программистов стоит добавить, что у программы postmaster также имеются два отладочных ключа:
- -n. Ключ -п запрещает повторную инициализацию общих структур данных. Далее средствами отладки программист получает информацию о состоянии памяти на момент сбоя.
- -s. Процесс postmaster останавливает серверные процессы без их завершения сигналом SIGSTOP. Серверные процессы остаются в памяти, что позволяет программисту вручную получить дамп каждого процесса и проанализировать их по отдельности.