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

Этап 8. Инициализация и запуск PostgreSQL.

Если вы зарегистрированы как привилегированный пользователь root, то вместо выполнения команд su – с, знакомых по предыдущим этапам, вам придется войти в систему под именем postgres, созданным на первом этапе. После входа под именем postgres введите команду, приведенную в листинге 2.15.

Листинг 2.15. Инициализация базы данных.

$ /usr/local/pgsql/bin/initdb – D /usr/1ocal/pgsql/data

Ключ – D определяет каталог, в котором будут храниться данные. То же самое можно сделать при помощи переменной среды PCDATA. Если значение переменной PCDATA задано, ключ – D не обязателен. Если вы предпочитаете хранить файлы данных в другом каталоге, убедитесь в том, что пользователь postgres обладает правом записи в этот каталог. Примерный результат инициализации initdb приведен в листинге 2.16.

Листинг 2.16. Выходные данные initdb.

$ /usr/local/pgsql/bin/intidb – D /usr/local/pgsql/data
This database system will be initialized with username "postgres."
This user will own all the data files and must also own the server process.
Creating directory /usr/pgsql/data
Creating directory /usr/pgsqi/data/case
Creating directory /usr/pgsql/data/global
Creating directory /usr/pgsql/pg_xlog
Creating tempiatel database in /usr/local/pgsql/data/base/l
DEBUG: database system was shut down at 2001-08-24 16:36:35 PDT
DEBUG: Checkpoint record at (0. 8)
DEBUG: Redo record at (0. 8): Undo record at (0. 8): Shutdown TRUE
DEBUG: NextTransactionld: 514; NextOid: 16384
DEBUG: database system is in production state
Creating global relations in /usr/local/pgsql/data/global
DEBUG: database system was shut down at 2001-08-24 16:36:38 PDT
DEBUG: Checkpoint record at (Q. 108)
DEBUG: Redo record at (0. 108): Undo record at (0. 0); Shutdown TRUE
DEBUG: NextTransactionld: 514: NextOid: 17199
DEBUG: database system is in production state
Initializing pg_shadow
Enabling unlimited row width for system tables.
Creating system views.
Loading pg_description.
Setting lastsysoid.
Vacuuming database.
Copying tempiatel to tempiateO.
Success. You can now start the database server using:
/usr/local/pgsql/bin/postmaster – D /usr/local/pgsql/data
or
/usr/local/pgsql/bin/pg_ct1 – D /usr/local/pgsql/data – 1 logfile start

Примечание
Чтобы в PostgreSQL использовался другой каталог данных, укажите путь к этому каталогу с ключом – О. Каталог должен быть предварительно инициализирован командой initdb
.

В конце выходных данных команды initdb приводится информация о двух вариантах запуска сервера PostgreSQL. В первом варианте процесс postmaster запускается в активном режиме. После ввода команды, приведенной в листинге 2.17, приглашение командной строки становится недоступным до тех пор, пока процесс postmaster не будет остановлен клавишами CTRL + C.

Листинг 2.17. Запуск postmaster в активном режиме.

$ /usr/local/pgsql/bin/postmaster – D /usr/local/pgsql/data
DEBUG: database system was shut down at 2001-10-12 23:11:00 PDT
DEBUG: Checkpoint record at (0. 1522064)
DEBUG: Redo record at (0. 1522064): Undo record at (0. 8): Shutdown TRUE
DEBUG: NextTransactionld: 615: NextOid: 18720
DEBUG: database system is in production state

Запускать PostgreSQL в активном режиме обычно не требуется. Авторы рекомендуют использовать вторую команду, которая запускает postmaster в фоновом режиме. Как показано в листинге 2.18, процесс запускается командой pg_ct1.

Листинг 2.18. Запуск postmaster в фоновом режиме.

$ /usr/1ocal/pgsqVbin/pg_ctl – D /usr/local/pgsql/data – 1 /tmp/pgsql.log start
postmaster successfully started

Главное различие между этими двумя командами заключается в том, что во втором варианте postmaster запускается в фоновом режиме, а вся отладочная информация направляется в файл /tmp/pgsql.log. При нормальной работе обычно рекомендуется запускать postmaster в фоновом режиме с включенным ведением журнала.

Примечание
Приложение pg_ctl запускает и останавливает сервер PostgreSQL За дополнительной информацией об этой команде обращайтесь к главе 9
.

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