Библиотека сайта rus-linux.net
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 .
Информация о пакете
- Загрузка (HTTP): http://gd.tuwien.ac.at/db/postgresql/source/v9.0.6/postgresql-9.0.6.tar.bz2
- Загрузка (FTP): ftp://ftp5.us.postgresql.org/pub/PostgreSQL/source/v9.0.6/postgresql-9.0.6.tar.bz22
- Контрольная сумма MD5: 4ad7e4fc31ef8b8a75a3e4243933963f
- Размер загружаемого пакета: 15 MB
- Оценочный размер требуемого дискового пространства: 163 MB (дополнительные 138 MB для запуска тестового набора)
- Оценочное время сборки: 1,6 SBU
Зависимости пакета 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_restore | создает базы данных из файлов дампов, созданных с помощью pg_dump |
pltcl_delmod | скрипт поддержки, используемый для удаления модуля из таблицы PL/Tcl. Для выполнения этой команды требуется, чтобы также был установлен пакет Pgtcl |
pltcl_listmod | скрипт поддержки, используемый для выдачи списка модулей, имеющихся в таблице PL/Tcl. Для выполнения этой команды требуется, чтобы также был установлен пакет Pgtcl |
pltcl_loadmod | скрипт поддержки, используемый для загрузки модуля в таблицу PL/Tcl. Для выполнения этой команды требуется, чтобы также был установлен пакет Pgtcl |
postgres | однопользовательский сервер базы данных, обычно используется для отладки |
postmaster | (символическая ссылка на postgres) демон многопользовательской базы данных |
psql | консоль, в которой используется командная оболочка базы данных |
reindexdb | утилита для пересоздания индексов базы данных |
vacuumdb | сжимает базы данных и выдает статистические данные для анализатора запросов |
| содержит функции, помогающие встраивать запросы SQL в программы на языке C |
| библиотека, обеспечивающая совместимость с ecpg |
| специальная подсистема портов движка Postgres |
| содержит функции, имеющие дело с типами данных Postgres |
| интерфейс API доступа к Postgres, предназначенные для программистов, работающих на C |
Перевод сделан с варианта оригинала, датированного 2011-12-19 00:18:17 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет MySQL-5.5.17 | Пакет SQLite-3.7.8 |