Иллюстрированный самоучитель по PostgreSQL

Запуск и завершение 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
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.