Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 21. Базы данных Вперед

Пакет PostgreSQL-9.0.6

Знакомимся с пакетом PostgreSQL

PostgreSQL является современной объектно-реляционной системой управления базами данных (ОРСУБД), полученной на базе системы управления базами данных Berkeley Postgres.

На домашней странице PostgreSQL может быть более свежий выпуск пакета. Вы можете узнать об этом по ссылке http://www.postgresql.org/ и, возможно, воспользоваться имеющимися инструкциями BLFS. Обратите внимание, что версии, кроме той, что указана в ссылке на скачивание, не тестировались в среде BLFS.

Известно, что пакет правильно собирается и работает на платформе LFS-7.0 .

Информация о пакете

Зависимости пакета PostgreSQL

Необязательные

Python-2.7.2, Tcl-8.5.10, OpenSSL-1.0.0e, libxml2-2.7.8,libxslt-1.1.26, OpenLDAP-2.4.23, Linux-PAM-1.1.5, MIT Kerberos V5-1.6 или Heimdal-1.4 и Bonjour

Необязательные (для пересборки документации)

DocBook SGML DTD-4.5, DocBook DSSSL Stylesheets-1.79,OpenJade-1.3.2 и SGMLSpm-1.03ii

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/postgresql

Установка пакета PostgreSQL

Установите пакет PostgreSQL с помощью следующих команд.

Теперь сконфигурируйте и соберите пакет:

./configure --prefix=/usr \
  --docdir=/usr/share/doc/postgresql-9.0.1 \
  --enable-thread-safety &&
make

Чтобы проверить результаты, выполните команду make check.

Теперь в роли пользователя root выполните:

make install &&
make install-docs &&
chown -v root:root /usr/share/doc/postgresql-9.0.1/html/*

Замечание

Если вы обновляете существующую систему и собираетесь установить новые файлы поверх старых, вам следует сделать резервную копию ваших данных, остановить старый сервер и следовать инструкциям, приведенным в официальной документации PostgreSQL.

Инициализируйте кластер базы данных с помощью следующих команд, выполняемых в роли пользователя root:

install -v -m700 -d /srv/pgsql/data &&
groupadd -g 41 postgres &&
useradd -c "PostgreSQL Server" -g postgres -d /srv/pgsql/data \
        -u 41 postgres &&
chown -v postgres /srv/pgsql/data &&
su - postgres -c '/usr/bin/initdb -D /srv/pgsql/data'

В роли пользователя root запустите сервер базы данных с помощью следующей команды:

su - postgres -c '/usr/bin/postmaster -D /srv/pgsql/data > \
    /srv/pgsql/data/logfile 2>&1 &'

Оставаясь в роли пользователя root, создайте базу данных и проверьте правильность выполненной установки:

su - postgres -c '/usr/bin/createdb test' &&
echo "create table t1 ( name varchar(20), state_province varchar(20) );" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "insert into t1 values ('Billy', 'NewYork');" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "insert into t1 values ('Evanidus', 'Quebec');" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "insert into t1 values ('Jesse', 'Ontario');" \
    | (su - postgres -c '/usr/bin/psql test ') &&
echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test')

Пояснение команд

--docdir=/usr/share/doc/postgresql-9.0.1: Этот параметр указывает, что документы HTML (и PDF, если они созданы), помещаются в директорий, в имени которого указывается номер версии.

--enable-thread-safety: Этот переключатель указывает создавать отдельный безопасный поток для клиентских библиотек. В результате в отдельных потоках, создаваемых в программах libpq и ECPG, можно будет безопасно управлять их собственными обработчиками подключений.

--with-perl: Указывает собирать язык PL/Perl, который будет использоваться на серверной стороне.

--with-python: Указывает собирать язык PL/Python, который будет использоваться на серверной стороне.

--with-openssl: Указывает делать сборку с поддержкой использования шифрованных соединений OpenSSL.

chown -R root:root /usr/share/doc/postgresql/html/*: Эта команда исправляет неправильного владельца файлов документации.

groupadd ...; useradd ...: Эти команды добавляют непривилегированного пользователя и группу для запуска сервера базы данных.

createdb test; create table t1; insert into t1 values...; select * from t1: Создает базу данных, добавляет к ней таблицу, вставляет в таблицу несколько строк и выбирает их оттуда для того, чтобы проверить, что установка выполнена правильно.

Конфигурирование пакета PostgreSQL

Конфигурационные файлы

$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf и $PGDATA/postgresql.conf

Переменная среды окружения PGDATA используется для того, чтобы можно было отличать друг от друга кластеры различных баз данных, устанавливая в этой переменной указатель на директорий, в котором находится желаемый кластер. В каждом директории PGDATA/ есть три конфигурационных файла. Подробнее о формате файлов и параметрах, которые можно устанавливать в каждом из этих файлов, можно найти по ссылке file:///usr/share/doc/postgresql/html/index.html.

Загрузочный скрипт

Установите загрузочный скрипт /etc/rc.d/init.d/postgresql, который имеется в пакете blfs-bootscripts-20111226.

make install-postgresql

Описание пакета

Установленные программы: clusterdb, createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, ipcclean, pg_config, pg_controldata, pg_ctl, pg_dump, pg_dumpall, pg_resetxlog, pg_restore, pltcl_delmod, pltcl_listmod, pltcl_loadmod, postgres, postmaster, psql, reindexdb и vacuumdb

Установленные библиотеки: libecpg.{so,a}, libecpg_compat.{so,a}, libpgport.a, libpgtypes.{so,a}, libpq.{so,a} и модули с различными наборами символов.

Установленные директории: /srv/pgsql, /usr/include/libpq, /usr/include/postgresql, /usr/lib/postgresql, /usr/share/doc/postgresql и /usr/share/postgresql

Краткое описание

clusterdb

утилита для рекластеризации таблиц в базе данных PostgreSQL

createdb

создает новую базу данных PostgreSQL

createlang

определяет новый процедурный язык PostgreSQL

createuser

создает новую пользовательскую учетную запись PostgreSQL

dropdb

удаляет базу данных PostgreSQL

droplang

удаляет процедурный язык PostgreSQL

dropuser

удаляет пользовательскую учетную запись PostgreSQL

ecpg

встроенный препроцессор SQL

initdb

создает новый кластер баз данных

ipcclean

удаляет совместно используемую память и семафоры, оставшиеся после прерывания работы сервера баз данных

pg_config

выдает информацию о версии PostgreSQL

pg_controldata

возвращает информацию, использованную при инициализации с помощью команды initdb, например, версию каталога и локали сервера

pg_ctl

управляет остановкой и запуском сервера баз данных

pg_dump

выдает дамп базы данных и метаданные в виде скриптов, которые используются для восстановления базы данных

pg_dumpall

рекурсивно вызывает pg_dump для каждой базы данных в кластере

pg_resetxlog

очищает журнал упреждающей регистрации и, возможно, сбрасывает некоторые поля в управляющем файле pg_control

pg_restore

создает базы данных из файлов дампов, созданных с помощью pg_dump

pltcl_delmod

скрипт поддержки, используемый для удаления модуля из таблицы PL/Tcl. Для выполнения этой команды требуется, чтобы также был установлен пакет Pgtcl

pltcl_listmod

скрипт поддержки, используемый для выдачи списка модулей, имеющихся в таблице PL/Tcl. Для выполнения этой команды требуется, чтобы также был установлен пакет Pgtcl

pltcl_loadmod

скрипт поддержки, используемый для загрузки модуля в таблицу PL/Tcl. Для выполнения этой команды требуется, чтобы также был установлен пакет Pgtcl

postgres

однопользовательский сервер базы данных, обычно используется для отладки

postmaster

(символическая ссылка на postgres) демон многопользовательской базы данных

psql

консоль, в которой используется командная оболочка базы данных

reindexdb

утилита для пересоздания индексов базы данных

vacuumdb

сжимает базы данных и выдает статистические данные для анализатора запросов

libecpg.{so,a}

содержит функции, помогающие встраивать запросы SQL в программы на языке C

libecpg_compat.{so,a}

библиотека, обеспечивающая совместимость с ecpg

libgport.a

специальная подсистема портов движка Postgres

libpgtypes.{so,a}

содержит функции, имеющие дело с типами данных Postgres

libpq.{so,a}

интерфейс API доступа к Postgres, предназначенные для программистов, работающих на C

Перевод сделан с варианта оригинала, датированного 2011-12-19 00:18:17 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет MySQL-5.5.17   Пакет SQLite-3.7.8