![]() |
![]() |
![]() |
Сценарий SysV Сценарий SysV работает аналогично pg_ctl. В сущности, он играет роль управляющей программы для выполнения команд pg_ctl. Главное отличие заключается в том, что сценарий SysV запускается пользователем root, а не пользователем, запускающим PostgreSQL (например, postgres). Сценарий самостоятельно переключает идентификаторы пользователей в нужный момент. По сравнению с ручным вызовом команд pg_ctl сценарии SysV упрощает процедуры запуска и завершения PostgreSQL. Файл сценария postgresql в каталоге /etc/re.d/init.d хранится в вид обычного текста и может редактироваться в любом стандартном текстовом редакторе. В нем можно легко найти процедуры запуска и завершения, а также добавить или убрать часто используемые аргументы вызова pg_ctl. Вызов postgresql с общим параметром start или stop значительно проще вызова команд pg_ctl с несколькими аргументами. Инструкции по установке сценария postgresql приведены в главе 2. В зависимости от конфигурации компьютера может существовать несколько способов выполнения установленного сценария. Помните, что настоящее имя файла сценария SysV в каталоге /etc/rc.d/init.d/ выбирается произвольно. Обычно сценарию присваиваются имена postgresql и postgres. Запуск сценария может осуществляться командой service, если она поддерживается в вашей системе. Команда имеет следующий синтаксис: service postgresql { start | stop | restart status } Команда servi се принимает только аргументы, перечисленные в фигурных скобках. Любые другие значения отвергаются. Конфигурацию всех перечисленных режимов можно изменить, отредактировав сценарий (например, /etc/rc.d/init.d/ postgresql). В листинге 9.5 приведен пример запуска PostgreSQL командой service. Листинг 9.5. Запуск PostgreSQL командой service [root@booktown -]# service postgresql start Starting PostgreSQL: ok [root@booktown -]# Если команда service не поддерживается в вашей системе, сценарий postgresql можно вызвать вручную с указанием полного пути: /etc/re.d/init.d/postgresql { start | stop | restart | status } В листинге 9.6 состояние серверного процесса PostgreSQL проверяется прямым вызовом сценария postgresql с указанием полного пути. Предполагается, что в вашей системе стартовые сценарии SysV хранятся в каталоге /etc/rc.d/init.d/. Листинг 9.6. Проверка состояния PostgreSQL с использованием сценария postgresql [root@booktown -]# /etc/re.d/init.d/postgresql status pg_ctl: postmaster is running (pid: 13238) Command line was: /usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data' [root@booktown -]# Как видно из результатов, сценарий SysV всего лишь является удобной «оболочкой» для вызова команд приложения pg_ctl, описанного в предыдущем подразделе. Прямое обращение к 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.
ПРИМЕЧАНИЕ Значение ключа -В должно быть по крайней мере вдвое больше значения, передаваемого с ключом -N.
ПРИМЕЧАНИЕ Если стандартные потоки вывода и ошибок не были перенаправлены от postmaster в файл (на уровне командного интерпретатора или в pg_ctl при помощи ключа -1), вся отладочная информация выводится на управляющем терминале процесса postmaster.
ПРИМЕЧАНИЕ Чтобы использовать ключ -1, необходимо откомпилировать PostgreSQL с поддержкой SSL.
ВНИМАНИЕ Ключ -S затрудняет диагностику ошибок, поскольку весь трассировочный и отладочный вывод, обычно порождаемый процессом postmaster и его производными процессами, теряется. Для любознательных программистов стоит добавить, что у программы postmaster также имеются два отладочных ключа:
|
![]() |
![]() |
![]() |