16.1. Установка Postgres Pro Standard в Linux
Для систем на базе Linux Postgres Pro Standard поставляется в виде двоичных пакетов. Двоичный дистрибутив Postgres Pro состоит из нескольких пакетов, примерно таких же, что и официальный дистрибутив PostgreSQL для этих операционных систем.
Разделение дистрибутива на несколько пакетов позволяет устанавливать разные компоненты для разных целей: Postgres Pro может устанавливаться на серверах баз данных, клиентских рабочих станциях, машинах разработчиков для разработки клиентских приложений и т. д. Все дистрибутивы Postgres Pro включают отдельные пакеты документации на английском и русском языке.
В зависимости от вашей операционной системы набор пакетов и инструкции по установке могут несколько различаться. Дополнительную информацию вы можете получить, выбрав семейство вашей системы:
Вне зависимости от целевой ОС при инициализации кластера важно указать все параметры, соответствующие требованиям вашего окружения. Все доступные параметры инициализации описаны в документации initdb. В частности, обратите внимание на следующие значения параметров по умолчанию, которые имеет смысл переопределить в кластере:
По умолчанию при инициализации кластера программой initdb для всех подключений выбирается метод аутентификации
trust
, что не рекомендуется для производственных систем. Подробнее различные методы аутентификации описаны в Разделе 19.3.Какая локаль будет использоваться, определяется вашим системным окружением, а она, в свою очередь, влияет на выбор кодировки, правил сортировки и конфигурацию текстового поиска для нового кластера.
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 | Дополнительные расширения и программы, разворачиваемые на серверах баз данных |
pg-probackup-std-9.6 | Утилита pg_probackup |
postgrespro96-pg_probackup | Пакет pg_probackup для автоматического обновления с Postgres Pro Standard версии 9.6.11.1 или ниже |
pg_repack | Утилита для реорганизации таблиц |
postgrespro96-devel | Заголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений |
postgrespro96-plperl | Реализация языка Perl для программирования на стороне сервера |
postgrespro96-plpython | Реализация языка Python для программирования на стороне сервера |
postgrespro96-pltcl | Реализация языка Tcl для программирования на стороне сервера |
postgrespro96-docs | Документация на английском языке |
postgrespro96-docs-ru | Документация на русском языке |
postgrespro96-test | Тестовые скрипты для сервера |
| Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера. |
Для серверных инсталляций установите как минимум следующие пакеты:
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
, который будет владельцем файлов баз данных и серверных процессов.
Чтобы создать базу данных по умолчанию, выполните вспомогательный скрипт pg-setup
от имени root:
/usr/pgpro-9.6/bin/pg-setup initdb
В этом случае для локальных подключений будет использоваться метод аутентификации peer
, а для всех сетевых — ident
. Подробнее доступные методы аутентификации описаны в Разделе 19.3.
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 разделён на следующие пакеты:
Пакет | Описание |
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-std-9.6 | Утилита pg_probackup |
postgrespro-pg-probackup-9.6 | Пакет pg_probackup для автоматического обновления с Postgres Pro Standard версии 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 |
| Утилита 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
— пакет для разработчиков, требующийся для компиляции серверных расширений.
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(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.
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 |
pg-probackup-std-9.6 | Утилита pg_probackup |
postgrespro9.6-pg_probackup | Пакет pg_probackup для автоматического обновления с Postgres Pro Standard версии 9.6.11.1 или ниже |
postgrespro9.6-python | Язык программирования PL/Python |
postgrespro9.6-server | Сервер Postgres Pro Enterprise |
postgrespro9.6-tcl | Язык программирования PL/Tcl |
| Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера. |
Для всех пакетов с двоичными файлами имеются соответствующие пакеты -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 |
postgrespro96 | Стандартные клиентские программы, в частности, psql, и страницы man по командам SQL |
postgrespro96-contrib | Загружаемые модули и расширения для сервера |
postgrespro96-devel | Файлы для разработки клиентских программ и серверных расширений |
postgrespro96-docs | Документация на английском языке |
postgrespro96-docs-ru | Документация на русском языке |
pg-probackup-std-9.6 | Утилита pg_probackup |
postgrespro96-pg_probackup | Пакет pg_probackup для автоматического обновления с Postgres Pro Standard версии 9.6.11.1 или ниже |
postgrespro96-plperl | Язык программирования PL/Perl |
postgrespro96-plpython | Язык программирования PL/Python |
postgrespro96-pltcl | Язык программирования PL/Tcl |
postgrespro96-server | Сервер Postgres Pro |
postgrespro96-test | Набор регрессионных тестов для сервера Postgres Pro |
| Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера. |
Для серверных инсталляций требуются пакеты postgrespro96-server
, postgrespro96
и postgrespro96-libs
. Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro96-contrib
.
16.1.4.2. Изменение базы данных по умолчанию
Чтобы запустить сервер Postgres Pro после установки серверного пакета, выполните от имени root следующую команду:
service postgresql start
База данных по умолчанию в SUSE создаётся при первом запуске службы. Настроить её расположение, локаль и другие параметры можно в /etc/sysconfig/postgrespro
.
16.1.4.3. Установка нескольких экземпляров Postgres Pro
В системах SUSE установить разные версии клиентских программ нельзя.
16.1.5. Замечания о совместимости с антивирусами
Настоятельно не рекомендуется использовать антивирусное ПО в системах, где работает Postgres Pro, так как антивирус создаёт дополнительную нагрузку и может оказывать непредсказуемое влияние на работу базы данных, что чревато проблемами с производительностью и надёжностью. Если вам необходимо использовать антивирусное ПО, обязательно добавьте в исключения антивируса следующие каталоги, так как они не содержат исполняемых файлов:
Каталог
PGDATA
с основными данными кластераКаталоги созданных табличных пространств