Запуск и завершение PostgreSQL
Перезапуск PostgreSQL в приложении pg_ctl
Последовательные вызовы pg_ctl с операциями stop и start можно заметить одним вызовом с операцией restart. В команде также может присутствовать флаг – т, определяющий режим завершения.
Параметры, использованные при последнем запуске PostgreSQL, хранятся во временном файле postmaster.opts в каталоге данных PostgreSQL (переменная PGDATA). Файл используется при вызове pg_ctl с аргументом restart и обеспечивает сохранение предыдущих настроек при перезапуске. Не размещайте собственные параметры конфигурации в файле postmaster.opts, поскольку они будут стерты при запуске pg_ctl с аргументом start.
В листинге 9.3 приведен пример перезапуска сервера базы данных booktown пользователем postgres.
Листинг 9.3. Перезапуск PostgreSQL в приложении pg_ctl.
[postgres@booktown ~]$ pg_ctl – D /usr/1oca!/pgsql/data restart Smart Shutdown request at Mon Sep 17 08:33:51 2001 DEBUG: shutting down waiting for postmaster to shut down…..DEBUG: database system is shut down done postmaster successfully shut down postmaster successfully started [postgres@booktown – ]$ DEBUG: database system was shut down at 2001-09-17 08:33:53 PDT DEBUG: Checkpoint record at (0. 1000524116) DEBUG: Redo record at (0. 1000524116): Undo record at (0. 0): Shutdown TRUE DEBUG: NextTransactionld: 815832: NextOid: 3628113 DEBUG: database system is in production state [postgres@booktown ~J$
Проверка состояния PostgreSQL в приложении pg_ctl
При вызове с аргументом status приложение pg_ctl возвращает информацию о состоянии процесса postmaster. Хотя выполнение команды никак не отражается на состоянии данных, приложению pg_ctl должен быть известен каталог данных PostgreSQL. Если переменная среды PGDATA не существует, при вызове необходимо передать ключ – D.
Пример получения информации о состоянии сервера PostgreSQL приведен в листинге 9.4.
Листинг 9.4. Проверка состояния PostgreSQL в приложении pg_ctl.
[postgres@booktown – ]$ pg_ctl – D /usr/local/pgsql/data status pg_ctl: postmaster is running (pid: 11575) Command line was: /usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data' [postgres@booktown – ]$
Примечание
Использование переменной PGDATA заметно сокращает объем команды. Если вы всегда работаете с одним каталогом данных, присвойте значение переменной PGDATA (например, в файле /etc/profile, как рекомендовалось в главе 2), и вам не придется использовать ключ – D.