17.1. Установка Postgres Pro Enterprise в Linux

Для систем на базе Linux Postgres Pro Enterprise поставляется в виде двоичных пакетов. Двоичный дистрибутив Postgres Pro состоит из нескольких пакетов, примерно таких же, что и официальный дистрибутив PostgreSQL для этих операционных систем.

Разделение дистрибутива на несколько пакетов позволяет устанавливать разные компоненты для разных целей: Postgres Pro может устанавливаться на серверах баз данных, клиентских рабочих станциях, машинах разработчиков для разработки клиентских приложений и т. д. Все дистрибутивы Postgres Pro включают отдельные пакеты документации на английском и русском языке.

В зависимости от вашей операционной системы набор пакетов и инструкции по установке могут несколько различаться. Дополнительную информацию вы можете получить, выбрав семейство вашей системы:

Вне зависимости от целевой ОС при инициализации кластера важно указать все параметры, соответствующие требованиям вашего окружения. Все доступные параметры инициализации описаны в документации initdb. В частности, обратите внимание на следующие значения параметров по умолчанию, которые имеет смысл переопределить в кластере:

  • По умолчанию при инициализации кластера программой initdb для всех подключений выбирается метод аутентификации trust, что не рекомендуется для производственных систем. Подробнее различные методы аутентификации описаны в Разделе 20.3.

  • Какая локаль будет использоваться, определяется вашим системным окружением, а она, в свою очередь, влияет на выбор кодировки, правил сортировки и конфигурацию текстового поиска для нового кластера.

17.1.1. Установка в системах CentOS и Red Hat Enterprise Linux

17.1.1.1. Выбор устанавливаемых пакетов

Для Red Hat Enterprise Linux и производных систем, таких как CentOS, Oracle Linux и Rosa Enterprise Linux Server дистрибутив Postgres Pro разделён на следующие пакеты:

ПакетОписание
postgrespro-enterprise96Стандартные клиентские приложения: psql, pg_dump и т. д.
postgrespro-enterprise96-libsОбщие библиотеки, требующиеся для развёртывания клиентских приложений
postgrespro-enterprise96-serverСервер Postgres Pro и серверный язык программирования PL/pgSQL
postgrespro-enterprise96-contribДополнительные расширения и программы, разворачиваемые на серверах баз данных
pg-probackup-ent-9.6Утилита pg_probackup
postgrespro-enterprise96-pg_probackupПакет pg_probackup для автоматического обновления с Postgres Pro Enterprise версии 9.6.11.1 или ниже
pg_repackУтилита для реорганизации таблиц
postgrespro-enterprise96-develЗаголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений
postgrespro-enterprise96-plperlРеализация языка Perl для программирования на стороне сервера
postgrespro-enterprise96-plpythonРеализация языка Python для программирования на стороне сервера
postgrespro-enterprise96-pltclРеализация языка Tcl для программирования на стороне сервера
postgrespro-enterprise96-docsДокументация на английском языке
postgrespro-enterprise96-docs-ruДокументация на русском языке
postgrespro-enterprise96-testТестовые скрипты для сервера
pg-hint-plan-ent-9.6Модуль pg_hint_plan

pgpro-controldata

Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера.

Для серверных инсталляций установите как минимум следующие пакеты:

  • postgrespro-enterprise96-server

  • postgrespro-enterprise96

  • postgrespro-enterprise96-libs

Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro-enterprise96-contrib.

По умолчанию файлы устанавливаются в каталог /usr/pgproee-9.6. Убедитесь в том, что каталог /usr/pgproee-9.6/bin добавлен в вашу переменную окружения PATH.

17.1.1.2. Изменение базы данных по умолчанию

При установке пакета postgrespro-enterprise96-server база данных по умолчанию не создаётся. Создаётся только системный пользователь postgres, который будет владельцем файлов баз данных и серверных процессов.

Чтобы создать базу данных по умолчанию, выполните вспомогательный скрипт pg-setup от имени root:

/usr/pgproee-9.6/bin/pg-setup initdb

В этом случае для локальных подключений будет использоваться метод аутентификации peer, а для всех сетевых — ident. Подробнее доступные методы аутентификации описаны в Разделе 20.3.

17.1.1.3. Установка нескольких экземпляров Postgres Pro

Для запуска нескольких экземпляров сервера Postgres Pro с разными каталогами данных создайте копию или символическую ссылку файла /etc/init.d/postgresql с другим именем и соответствующие файлы в /etc/sysconfig и символические ссылки в каталогах уровней выполнения.

Если требуется, вы можете в одной системе одновременно установить серверы PostgreSQL, Postgres Pro и Postgres Pro Enterprise.

Имя файла sysconfig, считываемого скриптом в init.d, определяется именем этого скрипта.

17.1.2. Установка в системах на базе Debian

17.1.2.1. Выбор устанавливаемых пакетов

Для систем на базе Debian (Debian, Ubuntu, Astra Linux) дистрибутив Postgres Pro разделён на следующие пакеты:

ПакетОписание
postgrespro-libecpg6Библиотеки времени выполнения для препроцессора ECPG
postgrespro-libecpg-compat3Библиотеки совместимости для программ, скомпилированных со старым ECPG
postgrespro-libecpg-devПрепроцессор ECPG для встраиваемого SQL
postgrespro-libpgtypes3Библиотека времени выполнения libpgtypes для программ, собранных с ECPG
postgrespro-libpq5Библиотеки времени выполнения для клиентских программ Postgres
postgrespro-libpq-devФайлы для разработки клиентских программ
postgrespro-9.6Сервер Postgres Pro
postgrespro-9.6-dbgОтладочная информация для сервера Postgres Pro
postgrespro-client-9.6Клиентские программы для взаимодействия с сервером Postgres Pro
postgrespro-common-9.6Средства управления несколькими экземплярами серверов
postgrespro-client-common-9.6Средства выбора одной определённой версии клиентских программ из установленных в системе
postgrespro-contrib-9.6Дополнительные модули и расширения
postgrespro-doc-9.6Документация на английском языке
postgrespro-doc-ru-9.6Документация на русском языке
pg-probackup-ent-9.6Утилита pg_probackup
postgrespro-pg-probackup-9.6Пакет pg_probackup для автоматического обновления с Postgres Pro Enterprise версии 9.6.11.1 или ниже
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
pg-hint-plan-ent-9.6Модуль pg_hint_plan

pgpro-controldata

Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера.

Для серверных инсталляций требуется пакет postgrespro-9.6 (который зависит от postgrespro-contrib-9.6). Другие связанные с сервером пакеты, например пакеты с серверными языками или pg_probackup можно не устанавливать.

Для клиентских инсталляций требуются только пакеты postgrespro-libpq5 и postgrespro-client-9.6. Если вы используете независимые приложения и вам не нужны стандартные клиентские утилиты, такие как psql, вы можете установить только пакет postgrespro-libpq5.

Для систем Debian файлы для разработчиков разделены на следующие пакеты:

  • postgrespro-libpq-dev — пакет для разработчиков, требующийся для компиляции клиентских программ.

  • postgrespro-libecpg-dev — пакет для разработки программ, использующих ECPG, препроцессор встраиваемого SQL.

  • postgrespro-server-dev-9.6 — пакет для разработчиков, требующийся для компиляции серверных расширений.

17.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.

17.1.2.3. Установка нескольких экземпляров Postgres Pro

Пакеты postgrespro-common и postgrespro-client-common образуют универсальную инфраструктуру, позволяющую запускать различные версии серверов PostgreSQL, Postgres Pro и Postgres Pro Enterprise одновременно и таким образом позволяют упростить обновление баз данных.

Дополнительную информацию об особенностях установки в инфраструктуре Debian можно найти в следующих страницах man: pg_createcluster(8), pg_ctlcluster(8), 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.

17.1.3. Установка в Альт Линукс

17.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Статические библиотеки для компиляции клиентских программ
postgrespro-enterprise9.6Стандартные клиентские программы, в частности, psql, и страницы man по командам SQL
postgrespro-enterprise9.6-contribРасширения, загружаемые на сервере Postgres Pro
postgrespro-enterprise9.6-develФайлы для компиляции серверных расширений с использованием инфраструктуры PGXS
postgrespro-enterprise9.6-devel-staticСтатические библиотеки, необходимые для компиляции расширений
postgrespro-enterprise9.6-docsДокументация на английском языке
postgrespro-enterprise9.6-docs-ruДокументация на русском языке
postgrespro-enterprise9.6-perlЯзык программирования PL/Perl
pg-probackup-ent-9.6Утилита pg_probackup
postgrespro-enterprise9.6-pg_probackupПакет pg_probackup для автоматического обновления с Postgres Pro Enterprise версии 9.6.11.1 или ниже
postgrespro-enterprise9.6-pythonЯзык программирования PL/Python
postgrespro-enterprise9.6-serverСервер Postgres Pro Enterprise
postgrespro-enterprise9.6-tclЯзык программирования PL/Tcl
pg-hint-plan-ent-9.6Модуль pg_hint_plan

pgpro-controldata

Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера.

Для всех пакетов с двоичными файлами имеются соответствующие пакеты -debuginfo.

Для серверных инсталляций требуется пакет postgrespro-enterprise9.6-server. Для минимальной клиентской инсталляции требуется только пакет libpq5.9. Обычно клиентам также нужен пакет postgrespro-enterprise9.6.

Утилита pg_config поставляется только в составе пакета postgrespro-enterprise9.6-devel, поэтому вам нужно установить этот пакет, если вы планируете компилировать клиентские программы, при сборке которых используется pg_config.

17.1.3.2. Установка нескольких экземпляров Postgres Pro

В Альт Линукс в один момент времени не может быть установлено несколько экземпляров PostgreSQL. Если вы устанавливаете новую версию поверх старой, новые исполняемые файлы заменят старые. Чтобы произвести обновление базы данных, используя утилиту pg_upgrade, необходимо иметь и новые, и старые исполняемые файлы postgres. Поэтому предустановочный скрипт копирует существующий исполняемый файл postgres и разделяемую библиотеку libpq в /usr/lib64/pgsql/9.6/backup. Передайте имя этого каталога pg_upgrade в аргументе -b.

17.1.4. Установка в SUSE Linux

17.1.4.1. Выбор устанавливаемых пакетов

Для SUSE дистрибутив Postgres Pro разделён на следующие пакеты:

ПакетОписание
libecpg6Библиотеки времени выполнения для программ, использующих ECPG
libpq5Библиотеки времени выполнения для клиентских программ Postgres
postgrespro-enterprise96Стандартные клиентские программы, в частности, psql, и страницы man по командам SQL
postgrespro-enterprise96-contribЗагружаемые модули и расширения для сервера
postgrespro-enterprise96-develФайлы для разработки клиентских программ и серверных расширений
postgrespro-enterprise96-docsДокументация на английском языке
postgrespro-enterprise96-docs-ruДокументация на русском языке
pg-probackup-ent-9.6Утилита pg_probackup
postgrespro-enterprise96-pg_probackupПакет pg_probackup для автоматического обновления с Postgres Pro Enterprise версии 9.6.11.1 или ниже
postgrespro-enterprise96-plperlЯзык программирования PL/Perl
postgrespro-enterprise96-plpythonЯзык программирования PL/Python
postgrespro-enterprise96-pltclЯзык программирования PL/Tcl
postgrespro-enterprise96-serverСервер Postgres Pro
postgrespro-enterprise96-testНабор регрессионных тестов для сервера Postgres Pro
pg-hint-plan-ent-9.6Модуль pg_hint_plan

pgpro-controldata

Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера.

Для серверных инсталляций требуются пакеты postgrespro-enterprise96-server, postgrespro-enterprise96 и postgrespro-enterprise96-libs. Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro-enterprise96-contrib.

17.1.4.2. Изменение базы данных по умолчанию

Чтобы запустить сервер Postgres Pro после установки серверного пакета, выполните от имени root следующую команду:

service postgresql start

База данных по умолчанию в SUSE создаётся при первом запуске службы. Настроить её расположение, локаль и другие параметры можно в /etc/sysconfig/postgrespro.

17.1.4.3. Установка нескольких экземпляров Postgres Pro

В системах SUSE установить разные версии клиентских программ нельзя.

17.1.5. Замечания о совместимости с антивирусами

Настоятельно не рекомендуется использовать антивирусное ПО в системах, где работает Postgres Pro, так как антивирус создаёт дополнительную нагрузку и может оказывать непредсказуемое влияние на работу базы данных, что чревато проблемами с производительностью и надёжностью. Если вам необходимо использовать антивирусное ПО, обязательно добавьте в исключения антивируса следующие каталоги, так как они не содержат исполняемых файлов: