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

Запуск и завершение PostgreSQL

Запуск PostgreSQL в приложении pg_ctl

Чтобы запустить серверный процесс PostgreSQL postmaster, передайте pg_ctl ключ start. Помните, что приложение pg_ctl должно запускаться пользователем postgres (или другим пользователем, которому принадлежит каталог данных PostgreSQL).

В листинге 9.1 приведен пример запуска postmaster с каталогом данных /usr/ local/pgsql/data. СУБД успешно запускается, выдает время последнего завершения работы базы данных и отладочную информацию, после чего пользователь postgres возвращается к приглашению командного интерпретатора.

Листинг 9.1. Запуск PostgreSQL в приложении pg_ctl.

[postgres@booktown – ]$ pg_ctl – D /usr/1oca!/pgsql/data start
postmaster successfully started
DEBUG: database system was shut down at 2001-09-17 08:06:34 POT
DEBUG: Checkpoint record at (0. 1000524052)
DEBUG: Redo record at (0. 1000524052): Undo record at (0. 0): Shutdown TRUE
DEBUG: NextTransactionld: 815832: NextOid: 3628113
DEBUG: database system is in production state
[postgres@booktown – ]$

Завершение PostgreSQL в приложении pg_ctl

Серверный процесс PostgreSQL postmaster можно остановить той же программой pg_ctl, которой он был запущен. Приложение pg_ctl проверяет Наличие работающего процесса postmaster, и если команда stop была выдана владельцем работающего процесса (например, пользователем postgres), сервер PostgreSQL прекращает работу.

Существуют три режима завершения серверного процесса PostgreSQL: интеллектуальный (smart), ускоренный (fast) и немедленный (immediate). Режим завершения задается ключом – т при вызове pg_ctl.

В интеллектуальном режиме (используемом по умолчанию) PostgreSQL перед завершением ждет, пока все клиенты отключатся от сервера. В ускоренном режиме PostgreSQL просто начинает стандартную процедуру завершения, не проверяя состояние клиентских подключений. В немедленном режиме стандартная процедура завершения пропускается, и при последующем перезапуске система должна пройти через режим восстановления.

Внимание
Никогда не завершайте процесс postmaster командой kill – 9 (kill – KILL), что приводит к потере или порче данных
.

В листинге 9.2 сценарий pg_ctl завершает процесс postmaster в ускоренном режиме. Процесс postmaster прекращает работу, не дожидаясь отключения клиентов.

Листинг 9.2. Завершение PostgreSQL в приложении pg_ctl.

[postgres@booktown – ]$ pg_ctl – D /usr/local/pgsql/data stop – m fast
Fast Shutdown request at Mon Sep 17 09:23:39 2001 DEBUG: shutting down
waiting for postmaster to shut down…..
DEBUG: database system is shut down
done
postmaster successfully shut down
[postgres@booktown – ]$

Примечание
Завершение в режиме smart эквивалентно команде kil I – TERM для процесса postmaster. Режим fast эквивалентен команде kill – INT, а аналогом режима immediate является команда kill – QUIT
.

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