16.1. Установка Postgres Pro Standard в Linux
Для систем на базе Linux Postgres Pro Standard поставляется в виде двоичных пакетов. Двоичный дистрибутив Postgres Pro состоит из нескольких пакетов, примерно таких же, что и официальный дистрибутив PostgreSQL для этих операционных систем.
Разделение дистрибутива на несколько пакетов позволяет устанавливать разные компоненты для разных целей: Postgres Pro может устанавливаться на серверах баз данных, клиентских рабочих станциях, машинах разработчиков для разработки клиентских приложений и т. д. Все дистрибутивы Postgres Pro включают отдельные пакеты документации на английском и русском языке.
В зависимости от вашей операционной системы набор пакетов и инструкции по установке могут несколько различаться. Дополнительную информацию вы можете получить, выбрав семейство вашей системы:
16.1.1. Установка в системах CentOS и Red Hat Enterprise Linux
16.1.1.1. Выбор устанавливаемых пакетов
Для Red Hat Enterprise Linux и производных систем, таких как CentOS, Oracle Linux и Rosa Enterprise Linux Server дистрибутив Postgres Pro разделён на следующие пакеты:
| Пакет | Описание | 
|---|---|
| postgrespro96 | Стандартные клиентские приложения: psql,pg_dumpи т. д. | 
| postgrespro96-libs | Общие библиотеки, требующиеся для развёртывания клиентских приложений | 
| postgrespro96-server | Сервер Postgres Pro и серверный язык программирования PL/pgSQL | 
| postgrespro96-contrib | Дополнительные расширения и программы, разворачиваемые на серверах баз данных | 
| postgrespro96-pg_probackup | Утилита pg_probackup | 
| pg_repack | Утилита для реорганизации таблиц | 
| postgrespro96-devel | Заголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений | 
| postgrespro96-plperl | Реализация языка Perl для программирования на стороне сервера | 
| postgrespro96-plpython | Реализация языка Python для программирования на стороне сервера | 
| postgrespro96-pltcl | Реализация языка Tcl для программирования на стороне сервера | 
| postgrespro96-docs | Документация на английском языке | 
| postgrespro96-docs-ru | Документация на русском языке | 
| postgrespro96-test | Тестовые скрипты для сервера | 
Для серверных инсталляций установите как минимум следующие пакеты:
- postgrespro96-server
- postgrespro96
- postgrespro96-libs
 Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro96-contrib.
По умолчанию файлы устанавливаются в каталог /usr/pgpro-9.6. Убедитесь в том, что каталог /usr/pgpro-9.6/bin добавлен в вашу переменную окружения PATH.
16.1.1.2. Изменение базы данных по умолчанию
При установке пакета postgrespro96-server база данных по умолчанию не создаётся. Создаётся только системный пользователь postgres, который будет владельцем файлов баз данных и серверных процессов.
Чтобы создать базу данных по умолчанию:
- В системах на базе SysVinit, например, Red Hat Enterprise Linux 6 и производных, выполните: - service postgrespro-9.6 initdb 
- В системах на базе systemd, например Red Hat Enterprise Linux 7 или CentOS 7, запустите вспомогательный скрипт - /usr/pgpro-9.6/bin/pg-setup.
База данных по умолчанию создаётся в каталоге /var/lib/pgpro/9.6/data. Сменить этот каталог можно, изменив соответствующий параметр в файле /etc/sysconfig/pgsql/postgrespro-9.6.
16.1.1.3. Установка нескольких экземпляров Postgres Pro
Для запуска нескольких экземпляров сервера Postgres Pro с разными каталогами данных создайте копию или символическую ссылку файла /etc/init.d/postgresql с другим именем и соответствующие файлы в /etc/sysconfig и символические ссылки в каталогах уровней выполнения.
Если требуется, вы можете в одной системе одновременно установить серверы PostgreSQL, Postgres Pro и Postgres Pro Enterprise.
Имя файла sysconfig, считываемого скриптом в init.d, определяется именем этого скрипта.
16.1.2. Установка в системах на базе Debian
16.1.2.1. Выбор устанавливаемых пакетов
Для систем на базе Debian (Debian, Ubuntu, Astra Linux) дистрибутив Postgres Pro разделён на следующие пакеты:
| Пакет | Описание | 
| libecpg6 | Библиотеки времени выполнения для препроцессора ECPG | 
| libecpg-compat3 | Библиотеки совместимости для программ, скомпилированных со старым ECPG | 
| libecpg-dev | Препроцессор ECPG для встраиваемого SQL | 
| libpgtypes3 | Библиотека времени выполнения libpgtypes для программ, собранных с ECPG | 
| libpq5 | Библиотеки времени выполнения для клиентских программ Postgres | 
| libpq-dev | Файлы для разработки клиентских программ | 
| postgrespro-9.6 | Сервер Postgres Pro | 
| postgrespro-9.6-dbg | Отладочная информация для сервера Postgres Pro | 
| postgrespro-client-9.6 | Клиентские программы для взаимодействия с сервером Postgres Pro | 
| postgrespro-contrib-9.6 | Дополнительные модули и расширения | 
| postgrespro-doc-9.6 | Документация на английском языке | 
| postgrespro-doc-ru-9.6 | Документация на русском языке | 
| postgrespro-pg-probackup-9.6 | Утилита pg_probackup | 
| postgrespro-plperl-9.6 | Серверный язык PL/Perl | 
| postgrespro-plpython3-9.6 | Серверный язык PL/Python на базе Python 3 | 
| postgrespro-plpython-9.6 | Серверный язык PL/Python на базе Python 2 | 
| postgrespro-pltcl-9.6 | Серверный язык PL/Tcl | 
| postgrespro-server-dev-9.6 | Файлы для разработки серверных расширений с использованием инфраструктуры PGXS | 
Для серверных инсталляций требуется пакет postgrespro-9.6 (который зависит от postgrespro-contrib-9.6). Другие связанные с сервером пакеты, например, пакеты с серверными языками и утилитами типа pg_probackup можно не устанавливать.
Для клиентских инсталляций требуются только пакеты libpq5 и postgrespro-client-9.6. Если вы используете независимые приложения и вам не нужны стандартные клиентские утилиты, такие как psql, вы можете установить только пакет libpq5.
Для систем Debian файлы для разработчиков разделены на следующие пакеты:
- libpq-dev— пакет для разработчиков, требующийся для компиляции клиентских программ.
- libecpg-dev— пакет для разработки программ, использующих ECPG, препроцессор встраиваемого SQL.
- postgrespro-server-dev-9.6— пакет для разработчиков, требующийся для компиляции серверных расширений.
16.1.2.2. Изменение базы данных по умолчанию
Серверные пакеты для Debian создают базу данных по умолчанию во время установки сервера; также можно создать дополнительные наборы баз, называемые кластерами, используя скрипт pg_createcluster. Все эти кластеры управляются системными средствами (подсистемой SysVinit в старых дистрибутивах либо systemd в новых).
Скрипт pg_createcluster также позволяет импортировать существующие базы данных в систему управления службами Debian. Он пытается автоматически включить SSL для создаваемого кластера, а для этого необходимо, чтобы пользователь postgres был членом группы ssl-cert и в /etc/ssl/certs находился подходящий сертификат.
Дистрибутив Postgres Pro для систем на базе Debian использует нестандартную схему каталогов для кластера баз данных. По умолчанию файлы конфигурации и данные Postgres Pro размещаются в одном каталоге, однако политика Debian требует, чтобы файлы конфигурации находились в /etc. Таким образом в системах на базе Debian параметр PGDATA всегда указывает на подкаталог внутри /etc, где располагаются только postgresql.conf, pg_hba_conf и несколько других файлов конфигурации. Фактическое расположение данных определяется параметром data_directory в postgresql.conf.
16.1.2.3. Установка нескольких экземпляров Postgres Pro
Пакеты postgrespro-common и postgrespro-client-common образуют универсальную инфраструктуру, позволяющую запускать различные версии серверов PostgreSQL, Postgres Pro и Postgres Pro Enterprise одновременно и таким образом позволяют упростить обновление баз данных.
Дополнительную информацию об особенностях установки в инфраструктуре Debian можно найти в следующих страницах man: pg_createcluster(1), pg_ctlcluster(1), pg_conftool(1), postgresql-common(5), postgresqlrc(5) и user_clusters(5).
В Debian реализован скрипт pg_wrapper(1), позволяющий вызывать клиентские программы для нужной версии вашего продукта на базе PostgreSQL. С ним связаны ссылки /usr/bin/psql, /usr/bin/pg_dump и т. д. Если установлено несколько продуктов на базе PostgreSQL, он вызывает программы последних версий, если только явно не требуется другое.
Примечание
Дистрибутив для Debian с программами Postgres Pro содержат две копии утилиты pg_config, одну в пакете libpq-dev и ещё одну — в пакете postgrespro-server-dev-9.6. Это связано с тем, что и клиентские программы, и серверные расширения используют эту утилиту для определения расположения файлов Postgres для разработки. Поэтому если вы планируете разрабатывать клиентские приложения и серверные расширения в одной системе, необходимо установить пакеты libpq-dev и postgrespro-server-dev-X.X от одного продукта Postgres.
16.1.3. Установка в Альт Линукс
16.1.3.1. Выбор устанавливаемых пакетов
Для Альт Линукс дистрибутив Postgres Pro разделён на следующие пакеты:
| Пакет | Описание | 
| libecpg6.8 | Библиотеки времени выполнения для программ, использующих ECPG | 
| libecpg6.8-devel | Препроцессор ECPG, встраиваемого SQL | 
| libecpg6.8-devel-static | Статические библиотеки для ECPG | 
| libpq5.9 | Клиентская библиотека libpq | 
| libpq5.9-devel | Файлы для разработки с использованием libpq | 
| libpq5.9-devel-static | Статические библиотеки для компиляции клиентских программ | 
| postgrespro9.6 | Стандартные клиентские программы, в частности, psql, и страницы man по командам SQL | 
| postgrespro9.6-contrib | Расширения, загружаемые на сервере Postgres Pro | 
| postgrespro9.6-devel | Файлы для компиляции серверных расширений с использованием инфраструктуры PGXS | 
| postgrespro9.6-devel-static | Статические библиотеки, необходимые для компиляции расширений | 
| postgrespro9.6-docs | Документация на английском языке | 
| postgrespro9.6-docs-ru | Документация на русском языке | 
| postgrespro9.6-perl | Язык программирования PL/Perl | 
| postgrespro9.6-pg_probackup | Утилита pg_probackup | 
| postgrespro9.6-python | Язык программирования PL/Python | 
| postgrespro9.6-server | Сервер Postgres Pro Enterprise | 
| postgrespro9.6-tcl | Язык программирования PL/Tcl | 
Для всех пакетов с двоичными файлами имеются соответствующие пакеты -debuginfo.
Для серверных инсталляций требуется пакет postgrespro-9.6-server. Для минимальной клиентской инсталляции требуется только пакет libpq5.9. Обычно клиентам также нужен пакет postgrespro-9.6.
Утилита pg_config поставляется только в составе пакета postgrespro-9.6-devel, поэтому вам нужно установить этот пакет, если вы планируете компилировать клиентские программы, при сборке которых используется pg_config.
16.1.3.2. Установка нескольких экземпляров Postgres Pro
В Альт Линукс в один момент времени не может быть установлено несколько экземпляров PostgreSQL. Если вы устанавливаете новую версию поверх старой, новые исполняемые файлы заменят старые. Чтобы произвести обновление базы данных, используя утилиту pg_upgrade, необходимо иметь и новые, и старые исполняемые файлы postgres. Поэтому предустановочный скрипт копирует существующий исполняемый файл postgres и разделяемую библиотеку libpq в /usr/lib64/pgsql/9.6/backup. Передайте имя этого каталога pg_upgrade в аргументе -b.
16.1.4. Установка в SUSE Linux
16.1.4.1. Выбор устанавливаемых пакетов
Для SUSE дистрибутив Postgres Pro разделён на следующие пакеты:
| Пакет | Описание | 
|---|---|
| libecpg6 | Библиотеки времени выполнения для программ, использующих ECPG | 
| libpq5 | Библиотеки времени выполнения для клиентских программ Postgres | 
| postgrespro-96 | Стандартные клиентские программы, в частности, psql, и страницы man по командам SQL | 
| postgrespro-96-contrib | Загружаемые модули и расширения для сервера | 
| postgrespro-96-devel | Файлы для разработки клиентских программ и серверных расширений | 
| postgrespro-96-docs | Документация на английском языке | 
| postgrespro-96-docs-ru | Документация на русском языке | 
| postgrespro-96-pg_probackup | Утилита pg_probackup | 
| postgrespro-96-plperl | Язык программирования PL/Perl | 
| postgrespro-96-plpython | Язык программирования PL/Python | 
| postgrespro-96-pltcl | Язык программирования PL/Tcl | 
| postgrespro-96-server | Сервер Postgres Pro | 
| postgrespro-96-test | Набор регрессионных тестов для сервера Postgres Pro | 
Для серверных инсталляций требуются пакеты postgrespro96-server, postgrespro96 и postgrespro96-libs. Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro96-contrib.
16.1.4.2. Изменение базы данных по умолчанию
Чтобы запустить сервер Postgres после установки серверного пакета, выполните следующую команду:
service postgresql start
База данных по умолчанию в SUSE создаётся при первом запуске службы. Настроить её расположение, локаль и другие параметры можно в /etc/sysconfig/postgrespro.
16.1.4.3. Установка нескольких экземпляров Postgres Pro
В системах SUSE установить разные версии клиентских программ нельзя.
