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

17.1.1. Поддерживаемые дистрибутивы Linux
17.1.2. Быстрая установка и настройка
17.1.3. Расширенная установка
17.1.4. Установка на рабочих станциях разработчиков
17.1.5. Использование нескольких экземпляров Postgres Pro Enterprise
17.1.6. Миграция на Postgres Pro Enterprise

Для систем на базе Linux Postgres Pro Enterprise поставляется в виде двоичных пакетов. Все двоичные дистрибутивы Postgres Pro Enterprise состоят из нескольких пакетов. Структура пакетов отличается от структуры ванильного PostgreSQL и поддерживает следующие режимы установки:

17.1.1. Поддерживаемые дистрибутивы Linux

Двоичные пакеты Postgres Pro Enterprise предоставляются для следующих систем на базе Linux:

  • Системы Red Hat Enterprise Linux (RHEL) и производные от них: CentOS 6/7, Red Hat Enterprise Linux 6/7, Oracle Linux 6/7, Rosa Enterprise Linux Server 6, РОСА «КОБАЛЬТ» на платформе РОСА 6/7, Гослинукс 6, МСВСфера 6.3

  • Системы на базе Debian: Debian 7/8/9, Ubuntu 14.04/16.04/17.10, Astra Linux «Смоленск» 1.4/1.5

  • Альт Линукс 8, Альт Линукс 7.0, Альт Линукс СПТ 6.0/7.0

  • SUSE Linux Enterprise Server 11/12.1

17.1.2. Быстрая установка и настройка

Если вам нужно установить только один экземпляр Postgres Pro Enterprise и вы не собираетесь использовать никакие другие продукты на базе PostgreSQL в вашей системе, вы можете использовать режим быстрой установки. Типичная процедура установки в этом случае выглядит так:

  1. Подключите репозиторий пакетов, предназначенный для вашей операционной системы. Конкретные адреса репозиториев и команды для их подключения в поддерживаемых дистрибутивах Linux вы можете найти на Странице загрузки для соответствующей версии Postgres Pro Enterprise.

  2. Install the postgrespro-ent-10 package. It will bring all the required components via dependencies, together with documentation, create the default database, start the database server, as well as enable server autostart at system boot and make all the provided programs available in PATH. In the quick installation mode, the database cluster is initialized with checksums enabled.

После завершения установки вы можете запустить psql от имени пользователя postgres и подключиться к только что созданной базе данных.

17.1.3. Расширенная установка

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

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

  1. Подключите репозиторий пакетов, предназначенный для вашей операционной системы. Конкретные адреса репозиториев и команды для их подключения в поддерживаемых дистрибутивах Linux вы можете найти на Странице загрузки для соответствующей версии Postgres Pro Enterprise.

  2. Выберите пакеты Postgres Pro Enterprise, требующиеся для ваших целей, и установите их с помощью стандартных для вашего дистрибутива Linux команд. Доступные пакеты перечислены в Таблице 17.1.

    As a result, all files get installed into the /opt/pgpro/ent-10 directory.

  3. Run the pg-wrapper utility provided in the postgrespro-ent-10-client package to make the installed client and server programs available via PATH and add SQL man pages to the man page configuration file:

    pg-wrapper links update

    For details on how to handle possible conflicts, see pg-wrapper.

  4. If you chose to install the postgrespro-ent-10-server package, make sure to complete the following server setup:

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

      /opt/pgpro/ent-10/bin/pg-setup initdb [initdb_options]
      

      Здесь initdb_options — обычные параметры программы initdb.

      Примечание

      pg-setup инициализирует кластер баз данных со включёнными контрольными суммами. Если для вас это нежелательно, не используйте pg-setup для инициализации кластера, а запустите непосредственно initdb.

      The pg-setup script performs database administration operations as user postgres. If you do not specify any initdb options, the default database is created in the /var/lib/pgpro/ent-10/data directory, using localization settings specified in the LANG environment variable for the current session. All the LC_* environment variables are ignored.

    2. Запустите сервер с помощью pg-setup, следующим образом:

      pg-setup service start

      Как и сервер ванильного PostgreSQL, сервер Postgres Pro Enterprise работает под именем пользователя postgres.

      Примечание

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

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

В следующей таблице перечислены все имеющиеся пакеты Postgres Pro Enterprise.

Таблица 17.1. Пакеты Postgres Pro Enterprise

Пакет

Описание

postgrespro-ent-10

Пакет верхнего уровня, устанавливающий и настраивающий Postgres Pro Enterprise для серверных и клиентских систем. Не используйте этот пакет при обновлении или миграции.

postgrespro-ent-10-client

Стандартные клиентские приложения, такие как psql и pg_dump.

postgrespro-ent-10-libs

Общие библиотеки, требующиеся для развёртывания клиентских приложений, включая libpq; библиотеки времени выполнения для обработчика ECPG.

postgrespro-ent-10-server

Сервер Postgres Pro Enterprise и серверный язык программирования PL/pgSQL.

postgrespro-ent-10-contrib

Дополнительные расширения и программы, разворачиваемые на серверах баз данных.

postgrespro-ent-10-pgprobackup

Утилита pg_probackup.

postgrespro-ent-10-devel

Заголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений.

On Debian-based systems, this package is called postgrespro-ent-10-dev.

postgrespro-ent-10-plperl

Реализация языка Perl для программирования на стороне сервера.

postgrespro-ent-10-plpython

Реализация языка Python для программирования на стороне сервера.

postgrespro-ent-10-plpython3

Реализация языка Python 3 для программирования на стороне сервера.

Этот пакет представлен только для систем на базе Debian.

postgrespro-ent-10-pltcl

Реализация языка Tcl для программирования на стороне сервера.

postgrespro-ent-10-docs

Документация на английском языке.

postgrespro-ent-10-docs-ru

Документация на русском языке.

postgrespro-ent-10-test

Тестовые скрипты для сервера.

Этот пакет представлен только для систем на базе RHEL и SUSE.


Кроме того, Postgres Pro Enterprise предоставляет отдельные пакеты с отладочной информацией для некоторых операционных систем:

  • On Debian-based systems, see the postgrespro-ent-10-dbg package.

  • On RHEL-based systems, see the postgrespro-ent-10-debuginfo package.

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

Server installations require at least the following packages:

  • postgrespro-ent-10-server

  • postgrespro-ent-10-client

  • postgrespro-ent-10-libs

To use additional Postgres Pro Enterprise extensions, you must also install the postgrespro-ent-10-contrib package. On Debian-based systems, postgrespro-ent-10-server package depends on postgrespro-ent-10-contrib package, so the latter must always be installed together with the server.

For client installations, it is usually enough to install the postgrespro-ent-10-client and postgrespro-ent-10-libs packages. If you use custom applications and do not need standard client utilities such as psql, you can install the postgrespro-ent-10-libs package only.

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

  • postgrespro-ent-10-libs

  • postgrespro-ent-10-devel/ postgrespro-ent-10-dev

Также вы можете установить и настроить сервер с тестовой базой данных. Подробнее о настройке, которая может потребоваться дополнительно, рассказывается в Подразделе 17.1.4.

17.1.3.2. Настройка автоматического запуска сервера

If you are running a custom installation, automatic server startup is disabled by default. Once the default database is created, you can configure the server to start automatically upon system boot using service management solutions available in your operating system or third-party high-availability software. To facilitate this task, postgrespro-ent-10-server package provides the pg-setup script, which is installed in the /opt/pgpro/ent-10/bin directory.

Для настройки автозапуска сервера запустите скрипт pg-setup со следующими параметрами:

pg-setup service enable

Если требуется, вы можете отключить автозапуск сервера, используя тот же скрипт:

pg-setup service disable

Alternatively, you can use system service management solutions directly by running the autostart scripts for SysV-style init.d and systemd provided in the postgrespro-ent-10-server package. Depending on your Linux distribution, Postgres Pro Enterprise supports different service management solutions:

Дистрибутив Linux

Предоставляемые скрипты

RHEL 7, SLES 12.1

файл службы systemd

RHEL 6 и совместимые дистрибутивы, SLES 11, Альт Линукс 6

скрипт init.d (в стиле SysV)

Debian, Ubuntu, Альт Линукс 7/8

И файл службы systemd, и скрипт init.d в стиле SysV

Для включения автоматического запуска сервера средствами systemd выполните следующую команду:

systemctl enable postgrespro-ent-10.service

Для использования скрипта init.d в стиле SysV:

  • On RHEL 6, SLES 11, and ALT Linux systems, use chkconfig command to add the postgrespro-ent-10 script to the appropriate runlevel. See chkconfig man page for the exact syntax.

  • В системах Debian воспользуйтесь скриптом update-rc.d. За подробностями обратитесь к соответствующей странице man.

17.1.4. Установка на рабочих станциях разработчиков

While installing postgrespro-ent-10-libs and postgrespro-ent-10-devel/ postgrespro-ent-10-dev packages may be enough, it is usually convenient to have the server set up on the development system. For quick setup, you can install postgrespro-ent-10 package, which automatically configures the provided client and server programs and creates the default database. However, if you are going to use several PostgreSQL-based products simultaneously, follow the custom installation instructions in Подраздел 17.1.3.

To compile programs with Postgres Pro Enterprise libraries using the pg_config utility shipped with Postgres Pro Enterprise, you have to make sure that its path is specified in the PATH environment variable before the path to any other pg_config version. If you do not have any other pg_config versions on your system, you can use pg-wrapper provided in the postgrespro-ent-10-client package to create a symbolic link to pg_config in the standard binary directory.

To compile programs using pkg-config command, add the /opt/pgpro/ent-10/lib/pkgconfig/ path to the PKG_CONFIG_PATH environment variable.

17.1.4.1. Использование сторонних программ с Postgres Pro Enterprise

Чтобы использовать сервер Postgres Pro Enterprise с клиентской программой из стороннего продукта, вы можете установить версию библиотек PostgreSQL, с которыми компилировалась эта программа. Например, если программа поставляется в составе ванильного PostgreSQL, вам может потребоваться установить пакеты libpq или postgresql-libs, предоставляемые для вашего дистрибутива Linux. В этом случае программа, возможно, не будет использовать некоторые новые возможности сервера Postgres Pro Enterprise, но скорее всего она и не поддерживает их.

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

Важно

Если программа скомпилирована с одной версией libpq, а используется с другой, её стабильная работа не гарантируется.

Если вы создаёте пакеты .rpm или .deb для вашей программы, рекомендуется сделать следующее:

  1. Add /opt/pgpro/ent-10/bin to PATH inside your build scripts (.spec files or debian/rules).

  2. Specify postgrespro-ent-10-dev in the BuildDepends or BuildRequires tags for your program.

Тем самым вы обеспечите вызов в процессе создания пакетов нужной версии pg_config при каждой пересборке пакета исходного кода.

17.1.5. Использование нескольких экземпляров Postgres Pro Enterprise

Для запуска нескольких экземпляров сервера Postgres Pro Enterprise с разными каталогами данных нужно проделать следующее:

  1. Установите и настройте Postgres Pro Enterprise, следуя указаниям в Подразделе 17.1.2 или Подразделе 17.1.3.

  2. После создания начальной базы данных запустите initdb и укажите путь к другому каталогу данных и любые другие параметры, требующиеся для инициализации другого экземпляра сервера.

  3. Задайте другие порты для экземпляров серверов в соответствующих файлах postgresql.conf, чтобы не допустить конфликтов.

  4. Если требуется, настройте автоматический запуск сервера следующим образом:

    1. Create a copy of /etc/init.d/postgrespro-ent-10 or /lib/systemd/system/postgrespro-ent-10.service with a different name, specifying the path to the data directory.

    2. Включите автоматический запуск сервера, используя скрипты автозапуска, предоставленные для вашего системного механизма управления службами, вместо pg-setup, как описано в Подразделе 17.1.3.2. Убедитесь в том, что вы используете переименованные копии скриптов, созданные на шаге 1.

17.1.6. Миграция на Postgres Pro Enterprise

Разные основные версии Postgres Pro Enterprise, а также разные продукты на базе PostgreSQL, даже имеющие одинаковую основную версию, могут иметь несовместимые на двоичном уровне базы данных, так что просто заменить программу сервера и продолжить его использование в общем случае невозможно. Чтобы преобразовать базы данных с более старой основной версии, вам потребуется выполнить выгрузку/загрузку данных с помощью pg_dumpall или использовать pg_upgrade. Первый вариант безопаснее, а второй быстрее и может значительно ускорить процесс обновления для больших баз данных.

Инструкции по обновлению для определённой версии вы найдёте в Замечаниях к выпуску для этой версии Postgres Pro Enterprise.