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