Самоучитель по SQL-сервер в Linux



Этап 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.


Книжный магазин