16.1. Установка Postgres Pro Standard в Linux
Для систем на базе Linux Postgres Pro Standard поставляется в виде двоичных пакетов. Все двоичные дистрибутивы Postgres Pro состоят из нескольких пакетов. Структура пакетов отличается от структуры ванильного PostgreSQL и поддерживает следующие режимы установки:
Быстрая установка и настройка. Пакет
postgrespro-std-10устанавливает и настраивает все компоненты, необходимые для получения готовой к использованию конфигурации, как клиентских, так и серверных компонентов. Выберите этот вариант, если вы планируете установить только один экземпляр Postgres Pro и вас не беспокоят возможные конфликты с другими продуктами на базе PostgreSQL.Важно
При установке пакета
postgrespro-std-10могут быть удалены существующие инсталляции продуктов на базе Postgres Pro и PostgreSQL. И напротив, установленный пакет Postgres Pro может быть автоматически удалён, если вы впоследствии развернёте другой продукт на базе PostgreSQL. Данный пакет не нужно устанавливать в процессе обновления или миграции, а также если вы планируете разворачивать в одной системе несколько инсталляций.Расширенная установка. Вы можете выбрать любые пакеты, требующиеся для ваших целей, включая пакеты для разработчиков. Этот вариант требует ручной настройки, поэтому для него необходимо хорошо разбираться в Linux и понимать архитектуру PostgreSQL. Это единственно возможный вариант, если вы планируете реализовать один из следующих сценариев использования Postgres Pro:
Установка одновременно нескольких версий Postgres Pro либо установка вместе с другими продуктами на базе PostgreSQL.
Обновление с другой версии или миграция с другого продукта на базе PostgreSQL.
Управление сервером Postgres Pro с использованием программных средств обеспечения высокой степени доступности, таких как pacemaker, вместо стандартных системных механизмов управления службами.
Минимальные системные требования для установки Postgres Pro, создания кластера баз данных и запуска сервера:
Процессор с частотой 1 ГГц
1 ГБ ОЗУ
1 ГБ свободного дискового пространства
Для вспомогательных компонентов или данных потребуется дополнительное дисковое пространство.
16.1.1. Поддерживаемые дистрибутивы Linux
Двоичные пакеты Postgres Pro предоставляются для следующих систем на базе Linux:
Системы Red Hat Enterprise Linux (RHEL) и производные от них: CentOS 7/8, Red Hat Enterprise Linux 7/8, Oracle Linux 7/8, Rosa Enterprise Linux Server 7, РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА 7, РЕД ОС МУРОМ 7.2, AlterOS 7.5
Системы на базе Debian: Debian 9/10, Ubuntu 18.04/20.04, Astra Linux «Смоленск» 1.6/1.7, Astra Linux «Орёл» 2.12
Альт 8/9/10, Альт Линукс СПТ 7.0, Альт 8 СП, Альт 8.2 СП
SUSE Linux Enterprise Server (SLES) 12/15
Примечание
Двоичные пакеты Postgres Pro используют библиотеку tzdata, предоставляемую операционной системой, поэтому важно, чтобы в системе была установлена последняя её версия. В случае использования устаревшей библиотеки tzdata значения времени в вашей базе данных могут быть некорректными.
16.1.2. Быстрая установка и настройка
Если вам нужно установить только один экземпляр Postgres Pro и вы не собираетесь использовать никакие другие продукты на базе PostgreSQL в вашей системе, вы можете использовать режим быстрой установки. Типичная процедура установки в этом случае выглядит так:
Подключите репозиторий пакетов, предназначенный для вашей операционной системы. Конкретные адреса репозиториев и команды для их подключения в поддерживаемых дистрибутивах Linux вы можете найти на Странице загрузки для соответствующей версии Postgres Pro.
Установите пакет
postgrespro-std-10. При этом по зависимостям установятся все требуемые компоненты, будет создана база данных по умолчанию, запущен сервер баз данных и настроен автозапуск сервера при загрузке системы, а все предоставляемые программы станут доступными в путиPATH.
Примечание
По умолчанию конфигурация базы данных настраивается под устанавливаемый продукт Postgres Pro. Если вам нужна другая настройка сервера базы данных, выберите расширенную установку и воспользуйтесь аргументом tune команды pg-setup initdb.
После завершения установки вы можете запустить psql от имени пользователя postgres и подключиться к только что созданной базе данных, находящейся в каталоге данных /var/lib/pgpro/std-10/data.
Так как база данных по умолчанию создаётся скриптом pg-setup, путь к каталогу данных сохраняется в файле /etc/default/postgrespro-std-10. Все последующие команды pg-setup, а также любые команды, управляющие службой Postgres Pro, будут нацелены именно на эту базу данных. Кроме того, в указанном файле можно изменить значение PG_OOM_ADJUST_VALUE для дочерних процессов postmaster (за подробностями обратитесь к Подразделу 17.4.4).
16.1.3. Расширенная установка
Разделение дистрибутива на несколько пакетов позволяет произвести инсталляцию по-разному для различных применений: для серверов баз данных, клиентских систем или рабочих станций разработчиков. Такие инсталляции необходимо настраивать вручную, но это даёт дополнительную гибкость при использовании продукта. Вы можете установить несколько версий Postgres Pro параллельно, а также вместе с другими продуктами PostgreSQL. В частности, это может потребоваться при осуществлении обновления или при миграции с другого продукта на базе PostgreSQL.
Для осуществления расширенной установки выполните следующие действия:
Подключите репозиторий пакетов, предназначенный для вашей операционной системы. Конкретные адреса репозиториев и команды для их подключения в поддерживаемых дистрибутивах Linux вы можете найти на Странице загрузки для соответствующей версии Postgres Pro.
Выберите пакеты Postgres Pro, требующиеся для ваших целей, и установите их с помощью стандартных для вашего дистрибутива Linux команд. Доступные пакеты перечислены в Таблице 16.1.
В результате все файлы будут установлены в каталог
/opt/pgpro/std-10.Запустите от имени root утилиту pg-wrapper, чтобы добавить и клиентские, и серверные установленные программы в путь поиска
PATH, а также включить страницы man по SQL в файл конфигурации страниц man. Эта утилита входит в состав пакетаpostgrespro-std-10-client./opt/pgpro/std-10/bin/pg-wrapper links update
Подробнее о разрешении возможных конфликтов рассказывается в pg-wrapper.
Если вы устанавливаете пакет
postgrespro-std-10-server, выполните следующую процедуру настройки сервера:Создайте начальную базу данных, запустив вспомогательный скрипт pg-setup от имени root с ключом
initdb:/opt/pgpro/std-10/bin/pg-setup initdb [--tune=
конфигурация] [параметры_initdb]Здесь:
Аргумент
tuneвыбирает вариант конфигурации базы данных.параметры_initdb— обычные параметры initdb.
Примечание
По умолчанию pg-setup инициализирует кластер баз данных со включёнными контрольными суммами. Если для вас это нежелательно, укажите
--no-data-checksums.Скрипт
pg-setupвыполняет административные операции с базами данных от имени пользователяpostgres. Если вы не укажете никакие параметры initdb, база по умолчанию создаётся в каталоге/var/lib/pgpro/std-10/dataс параметрами локализации, определяемыми переменной окруженияLANGтекущего сеанса. Переменные окруженияLC_*при этом игнорируются.Так как база данных по умолчанию создаётся скриптом pg-setup, путь к каталогу данных сохраняется в файле
/etc/default/postgrespro-std-10. Все последующие команды pg-setup, а также любые команды, управляющие службой Postgres Pro, будут нацелены именно на эту базу данных. Кроме того, в указанном файле можно изменить значениеPG_OOM_ADJUST_VALUEдля дочерних процессов postmaster (за подробностями обратитесь к Подразделу 17.4.4).Запустите сервер с помощью
pg-setupот имени root следующим образом:/opt/pgpro/std-10/bin/pg-setup service start
Как и сервер ванильного PostgreSQL, сервер Postgres Pro работает под именем пользователя
postgres.Примечание
По умолчанию автоматический запуск сервера отключён, чтобы вы могли вручную управлять восстановлением базы данных после перезагрузки системы. Однако вы можете настроить и автоматический запуск сервера Postgres Pro. За подробностями обратитесь к Подразделу 16.1.3.2.
16.1.3.1. Выбор устанавливаемых пакетов
В следующей таблице перечислены все имеющиеся пакеты Postgres Pro.
Таблица 16.1. Пакеты Postgres Pro
Пакет | Описание |
|---|---|
| Пакет верхнего уровня, устанавливающий и настраивающий Postgres Pro для серверных и клиентских систем. Не используйте этот пакет при обновлении или миграции. ВажноПри установке пакета |
| Стандартные клиентские приложения, такие как psql и pg_dump. |
| Общие библиотеки, требующиеся для развёртывания клиентских приложений, включая libpq; библиотеки времени выполнения для обработчика ECPG. |
| Сервер Postgres Pro и серверный язык программирования PL/pgSQL. |
| Дополнительные расширения и программы, разворачиваемые на серверах баз данных. |
| Утилита pg_probackup. |
| Пакет pg_probackup для автоматического обновления с Postgres Pro Standard версии ниже 10.7.1. |
| Заголовочные файлы и библиотеки для разработки клиентских приложений и серверных расширений. В системах на базе Debian этот пакет называется |
| Реализация языка Perl для программирования на стороне сервера. |
| Реализация языка Python для программирования на стороне сервера. |
| Реализация языка Python 3 для программирования на стороне сервера. |
| Реализация языка Tcl для программирования на стороне сервера. |
| Документация на английском языке. |
| Документация на русском языке. |
| Тестовые скрипты для сервера. Этот пакет представлен только для систем на базе RHEL и SUSE. |
| Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера. |
Кроме этого, имеются отдельные пакеты с несколькими дополнительными модулями, собранные специально для совместимости с Postgres Pro:
Пакет | Описание |
|---|---|
| Библиотека для быстрого сжатия данных без потерь. |
| Агент мониторинга для сбора метрик Postgres Pro и операционной системы. |
| Расширение oracle_fdw, предоставляющее обёртку сторонних данных для доступа к базам данных Oracle. Этот пакет предоставляется для систем RHEL, Ubuntu и SLES, Debian 10 и Astra Linux «Орёл» 2.12. |
| Расширение Postgres Pro и утилита для реорганизации таблиц. |
| Анализатор журналов Postgres Pro, генерирующий подробные отчёты и графики. |
| Пул соединений для Postgres Pro. |
| Утилиты командной строки для библиотеки |
Кроме того, Postgres Pro предоставляет отдельные пакеты с отладочной информацией для некоторых операционных систем:
В системах на базе Debian это пакет
postgrespro-std-10-dbg.В системах на базе RHEL это пакет
postgrespro-std-10-debuginfo.В ОС Альт Линукс для всех пакетов с двоичными файлами имеются соответствующие пакеты
-debuginfo.
Для серверных инсталляций требуются как минимум следующие пакеты:
postgrespro-std-10-serverpostgrespro-std-10-clientpostgrespro-std-10-libs
Для использования дополнительных расширений Postgres Pro вы должны также установить пакет postgrespro-std-10-contrib. В системах на базе Debian пакет postgrespro-std-10-server зависит от пакета postgrespro-std-10-contrib, поэтому последний должен всегда устанавливаться вместе с сервером.
Для клиентских инсталляций обычно достаточно установить пакеты postgrespro-std-10-client и postgrespro-std-10-libs. Если вы используете независимые приложения и вам не нужны стандартные клиентские утилиты, такие как psql, вы можете установить только пакет postgrespro-std-10-libs.
Для рабочих станций разработчиков необходимый минимум составляют следующие пакеты:
postgrespro-std-10-libspostgrespro-std-10-devel/postgrespro-std-10-dev
Также вы можете установить и настроить сервер с тестовой базой данных. Подробнее о настройке, которая может потребоваться дополнительно, рассказывается в Подразделе 16.1.4.
16.1.3.2. Настройка автоматического запуска сервера
Если вы производите расширенную установку, автоматический запуск сервера по умолчанию отключается. После создания базы данных по умолчанию вы можете настроить автоматический запуск сервера при загрузке системы, используя имеющиеся в вашей операционной системе механизмы управления службами или сторонние средства обеспечения высокой степени доступности. Для облегчения этой задачи в пакете postgrespro-std-10-server поставляется скрипт pg-setup, помещаемый в каталог /opt/pgpro/std-10/bin.
Для настройки автозапуска сервера запустите скрипт pg-setup со следующими параметрами:
pg-setup service enable
Если требуется, вы можете отключить автозапуск сервера, используя тот же скрипт:
pg-setup service disable
Вы также можете использовать системные средства управления службами, непосредственно задействуя скрипты для систем инициализации SysV init.d и systemd, предоставляемые в пакете postgrespro-std-10-server. В зависимости от дистрибутива Linux Postgres Pro поддерживает следующие механизмы управления службами:
Дистрибутив Linux | Предоставляемые скрипты |
|---|---|
RHEL 7/8 и совместимые дистрибутивы, SLES 12/15 | Файл службы systemd |
Debian, Ubuntu, Альт 8/9/10 | И файл службы systemd, и скрипт init.d в стиле SysV |
Для включения автоматического запуска сервера средствами systemd выполните следующую команду:
systemctl enable postgrespro-std-10
Для использования скрипта init.d в стиле SysV:
В системах Альт Линукс выполните следующую команду:
systemctl enable postgrespro-std-10
В системах Debian воспользуйтесь скриптом
update-rc.d. За подробностями обратитесь к соответствующей странице man.
16.1.4. Установка на рабочих станциях разработчиков
Хотя может быть достаточно установить пакеты postgrespro-std-10-libs и postgrespro-std-10-devel/postgrespro-std-10-dev, обычно на машинах разработчиков удобно иметь и установленный сервер. Для быстрой установки вы можете воспользоваться пакетом postgrespro-std-10, который автоматически настроит предоставляемые клиентские и серверные программы, а также создаст начальную базу данных. Однако если вы планируете использовать одновременно несколько продуктов на базе PostgreSQL, следуйте инструкциям по расширенной установке, приведённым в Подразделе 16.1.3.
Чтобы скомпилировать программы с библиотеками Postgres Pro, используя утилиту pg_config, поставляемую с Postgres Pro, необходимо, чтобы её путь был указан в переменной PATH до путей каких-либо других версий pg_config. Заметьте, что в системах на базе RHEL pg_config не добавляется в PATH автоматически. Если в вашей системе нет других версий pg_config, вы можете воспользоваться утилитой pg-wrapper, поставляемой в пакете postgrespro-std-10-client, для создания символической ссылки на pg_config в стандартном каталоге исполняемых файлов.
Для компиляции программ с использованием pkg-config добавьте путь /opt/pgpro/std-10/lib/pkgconfig/ в переменную среды PKG_CONFIG_PATH.
16.1.4.1. Использование сторонних программ с Postgres Pro
Чтобы использовать сервер Postgres Pro с клиентской программой из стороннего продукта, вы можете установить версию библиотек PostgreSQL, с которыми компилировалась эта программа. Например, если программа поставляется в составе ванильного PostgreSQL, вам может потребоваться установить пакеты libpq или postgresql-libs, предоставляемые для вашего дистрибутива Linux. В этом случае программа, возможно, не будет использовать некоторые новые возможности сервера Postgres Pro, но скорее всего она и не поддерживает их.
Если вы предпочитаете использовать библиотеки Postgres Pro со сторонней программой или хотели бы задействовать новую возможность, которая не требует изменения самого клиентского приложения, например, проверку подлинности SCRAM, вы можете перекомпилировать вашу программу с библиотеками Postgres Pro.
Важно
Если программа скомпилирована с одной версией libpq, а используется с другой, её стабильная работа не гарантируется.
Если вы создаёте пакеты .rpm или .deb для вашей программы, рекомендуется сделать следующее:
Добавьте путь
/opt/pgpro/std-10/binв переменнуюPATHв сборочных скриптах (в файле.specилиdebian/rules).Добавьте
postgrespro-std-10-devв тегиBuildDependsилиBuildRequiresописания пакета вашей программы.
Тем самым вы обеспечите вызов в процессе создания пакетов нужной версии pg_config при каждой пересборке пакета исходного кода.
16.1.5. Настройка нескольких экземпляров Postgres Pro
Чтобы настроить в Linux несколько экземпляров сервера Postgres Pro с разными каталогами данных, нужно проделать следующее:
Установите и настройте Postgres Pro, следуя указаниям в Подразделе 16.1.2 или Подразделе 16.1.3.
После создания начальной базы данных запустите initdb и укажите путь к другому каталогу данных и любые другие параметры, требующиеся для инициализации другого экземпляра сервера.
Задайте другие порты для экземпляров серверов в соответствующих файлах
postgresql.conf, чтобы не допустить конфликтов.Если требуется, настройте автоматический запуск сервера следующим образом:
Создайте копию файла
/etc/init.d/postgrespro-std-10или/lib/systemd/system/postgrespro-std-10.serviceс другим именем и поменяйте в ней путь к каталогу данных.Включите автоматический запуск сервера, используя скрипты автозапуска, предоставленные для вашего системного механизма управления службами, вместо
pg-setup, как описано в Подразделе 16.1.3.2. Убедитесь в том, что вы используете переименованные копии скриптов, созданные на шаге 1.
16.1.6. Замечания о совместимости с антивирусами
Настоятельно не рекомендуется использовать антивирусное ПО в системах, где работает Postgres Pro, так как антивирус создаёт дополнительную нагрузку и может оказывать непредсказуемое влияние на работу базы данных, что чревато проблемами с производительностью и надёжностью. Если вам необходимо использовать антивирусное ПО, обязательно добавьте в исключения антивируса следующие каталоги, так как они не содержат исполняемых файлов:
Каталог
PGDATAс основными данными кластера (обычно/var/lib/pgpro/std-10/dataили другой каталог, заданный в параметрах initdb)Каталоги созданных табличных пространств
16.1. Installing Postgres Pro Standard on Linux
For Linux-based operating systems, Postgres Pro Standard is shipped as binary packages. Each Postgres Pro binary distribution consists of several packages. The package structure differs from vanilla PostgreSQL and offers the following installation modes:
Quick installation and setup. The
postgrespro-std-10package installs and configures all the components required for a viable ready-to-use configuration of both server and client components. Choose this option if you are going to install a single Postgres Pro instance only, and you are not worried about possible conflicts with other PostgreSQL-based products.Important
Installing the
postgrespro-std-10package can delete existing installations of Postgres Pro and PostgreSQL-based products. Similarly, this Postgres Pro installation may be automatically removed if you later install another PostgreSQL-based product. Do not use this package for upgrades or migrations, or if you are going to maintain several installations on the same system.Custom installation. You can select any packages required for your purposes, including development packages. This option needs manual configuration, so a good grasp of Linux and understanding of PostgreSQL architecture are required. This is the only option to choose if you are going to use Postgres Pro in one of the following scenarios:
Install several Postgres Pro versions side by side, or together with other PostgreSQL-based products.
Perform an upgrade from a previous version, or migrate from a different PostgreSQL-based product.
Control Postgres Pro server execution using high availability software, such as pacemaker, instead of the standard system service management facility.
The minimum hardware required to install Postgres Pro, create a database cluster and start the database server are as follows:
1-GHzprocessor1 GBof RAM1 GBof disk space
Additional disk space is required for data or supporting components.
16.1.1. Supported Linux Distributions
Postgres Pro binary packages are available for the following Linux-based systems:
Red Hat Enterprise Linux (RHEL) systems and its derivatives: CentOS 7/8, Red Hat Enterprise Linux 7/8, Oracle Linux 7/8, Rosa Enterprise Linux Server 7, ROSA COBALT (server edition) based on Rosa platform 7, Red OS Murom 7.2, AlterOS 7.5
Debian-based systems: Debian 9/10, Ubuntu 18.04/20.04, Astra Linux Smolensk 1.6/1.7, Astra Linux Orel 2.12
ALT 8/9/10, ALT Linux SPT 7.0, ALT 8 SP, ALT 8.2 SP
SUSE Linux Enterprise Server (SLES) 12/15
Note
Postgres Pro binary packages rely on the tzdata library provided by the operating system, so you must ensure that the latest available version is installed. If tzdata is outdated, the time in your database may be incorrect.
16.1.2. Quick Installation and Setup
If you only need to install a single Postgres Pro instance and are not going to use any other PostgreSQL-based products on your system, you can use the quick installation mode. The typical process is as follows:
Add the package repository required for your operating system. You can find the exact repositories and commands for each supported Linux distribution on the Download page for the selected Postgres Pro version.
Install the
postgrespro-std-10package. It will bring all the required components via dependencies, create the default database, start the database server, as well as enable server autostart at system boot and make all the provided programs available inPATH.
Note
By default, the database configuration is set for the Postgres Pro product being installed. If you need your database configured for a different product, choose custom installation and use the tune argument of the pg-setup initdb command.
Once the installation completes, you can launch psql on behalf of the postgres user and connect to the newly created database, which is located in the /var/lib/pgpro/std-10/data directory.
Since the default database is created using the pg-setup script, the path to its data directory is stored in the /etc/default/postgrespro-std-10 file. All the subsequent pg-setup commands, as well as any commands that manage Postgres Pro service, affect this database only. In this file, you can also change the value of PG_OOM_ADJUST_VALUE for postmaster child processes (see Section 17.4.4 for details).
16.1.3. Custom Installation
Splitting the distribution into multiple packages enables customizing the installation for different purposes: database servers, client systems, or development workstations. Custom installations need to be configured manually, but give you more flexibility in using the product. You can install several Postgres Pro versions side by side, as well as together with other PostgreSQL-based products. In particular, this may be required when performing upgrades, or migrating from a different PostgreSQL-based product.
To perform a custom installation, complete the following steps:
Add the package repository required for your operating system. You can find the exact repositories and commands for each supported Linux distribution on the Download page for the selected Postgres Pro version.
Choose Postgres Pro packages required for your purposes and install them using the standard installation commands for your Linux distribution. The available packages are listed in Table 16.1.
As a result, all files get installed into the
/opt/pgpro/std-10directory.Run pg-wrapper as root to make the installed client and server programs available via
PATHand add SQL man pages to the man page configuration file. This utility is provided in thepostgrespro-std-10-clientpackage./opt/pgpro/std-10/bin/pg-wrapper links update
For details on how to handle possible conflicts, see pg-wrapper description.
If you chose to install the
postgrespro-std-10-serverpackage, make sure to complete the following server setup:Create the default database by running the helper script pg-setup as root with the
initdboption:/opt/pgpro/std-10/bin/pg-setup initdb [--tune=
conf] [initdb_options]where:
the
tunecommand-line argument sets the database configuration.initdb_optionsare regular initdb options.
Note
By default, pg-setup initializes the database cluster with checksums enabled. If this is not what you expect, specify the
--no-data-checksums.The
pg-setupscript performs database administration operations as userpostgres. If you do not specify any initdb options, the default database is created in the/var/lib/pgpro/std-10/datadirectory, using localization settings specified in theLANGenvironment variable for the current session. All theLC_*environment variables are ignored.Since the default database is created using the pg-setup script, the path to its data directory is stored in the
/etc/default/postgrespro-std-10file. All the subsequent pg-setup commands, as well as any commands that manage Postgres Pro service, affect this database only. In this file, you can also change the value ofPG_OOM_ADJUST_VALUEfor postmaster child processes (see Section 17.4.4 for details).Start the server by running
pg-setupas root, as follows:/opt/pgpro/std-10/bin/pg-setup service start
Like vanilla PostgreSQL, Postgres Pro server runs on behalf of the
postgresuser.Note
By default, automatic server startup is disabled, so you can manually control the database recovery after a system reboot. Optionally, you can configure the Postgres Pro server to start automatically. For details, see Section 16.1.3.2.
16.1.3.1. Choosing the Packages to Install
The table below lists all the available Postgres Pro packages.
Table 16.1. Postgres Pro Packages
Package | Description |
|---|---|
| Top-level package that installs and configures Postgres Pro for server and client systems. Do not use this package for upgrades or migrations. Important Installing the |
| Standard client applications, such as psql or pg_dump. |
| Shared libraries required to deploy client applications, including libpq; runtime libraries for ECPG processor. |
| Postgres Pro server and PL/pgSQL server-side programming language. |
| Additional extensions and programs deployable on database servers. |
| pg_probackup utility. |
| pg_probackup package for automatic upgrades from Postgres Pro Standard versions prior to 10.7.1. |
| Header files and libraries for developing client applications and server extensions. On Debian-based systems, this package is called |
| Server-side programming language based on Perl. |
| Server-side programming language based on Python. |
| Server-side programming language based on Python 3. |
| Server-side programming language based on Tcl. |
| Documentation (English). |
| Documentation (Russian). |
| Test scripts for the server. This package is only available on RHEL-based and SUSE systems. |
| pgpro_controldata application to display control information of a PostgreSQL/Postgres Pro database cluster and compatibility information for a cluster and/or server. |
Besides, there are separate packages providing several external modules that have been pre-built for compatibility with Postgres Pro:
Package | Description |
|---|---|
| A library for fast lossless data compression. |
| A monitoring agent for collecting Postgres Pro and system metrics. |
| oracle_fdw extension that provides a foreign data wrapper for Oracle. This package is only available for the supported RHEL, Ubuntu and SLES systems, Debian 10, and Astra Linux Orel 2.12. |
| Postgres Pro extension and utility for reorganizing tables. |
| Postgres Pro log analyzer that provides detailed reports and graphs. |
| Connection pooler for Postgres Pro. |
| Command-line utility for the |
Additionally, Postgres Pro provides separate packages with debug information for some operating systems:
On Debian-based systems, see the
postgrespro-std-10-dbgpackage.On RHEL-based systems, see the
postgrespro-std-10-debuginfopackage.On ALT Linux systems, all packages containing binary files have the corresponding
-debuginfopackages.
Server installations require at least the following packages:
postgrespro-std-10-serverpostgrespro-std-10-clientpostgrespro-std-10-libs
To use additional Postgres Pro extensions, you must also install the postgrespro-std-10-contrib package. On Debian-based systems, postgrespro-std-10-server package depends on postgrespro-std-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-std-10-client and postgrespro-std-10-libs packages. If you use custom applications and do not need standard client utilities such as psql, you can install the postgrespro-std-10-libs package only.
Development workstations require at least the following packages:
postgrespro-std-10-libspostgrespro-std-10-devel/postgrespro-std-10-dev
You may also want to install and configure the server with a test database on development systems. For details on additional configuration that may be required, Section 16.1.4.
16.1.3.2. Enabling Automatic Server Startup
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-std-10-server package provides the pg-setup script, which is installed in the /opt/pgpro/std-10/bin directory.
To enable server autostart, run the pg-setup script with the following options:
pg-setup service enable
If required, you can disable server autostart using the same script:
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-std-10-server package. Depending on your Linux distribution, Postgres Pro supports different service management solutions:
Linux Distribution | Provided Scripts |
|---|---|
RHEL 7/8 and compatible distributions, SLES 12/15 | systemd unit file |
Debian, Ubuntu, ALT 8/9/10 | Both systemd unit file and SysV-style init.d script |
To use systemd for automatic server startup, run the following command:
systemctl enable postgrespro-std-10
To use SysV-style init.d script:
On ALT Linux systems, run the following command:
systemctl enable postgrespro-std-10
On Debian systems, use
update-rc.d. See the corresponding man page for details.
16.1.4. Setting up Development Workstations
While installing postgrespro-std-10-libs and postgrespro-std-10-devel/ postgrespro-std-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-std-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 Section 16.1.3.
To compile programs with Postgres Pro libraries using the pg_config utility shipped with Postgres Pro, make sure it appears before the path to other pg_config versions, if any. Note that on RHEL-based systems pg_config is not added to PATH automatically. If you do not have any other pg_config versions on your system, you can use pg-wrapper provided in the postgrespro-std-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/std-10/lib/pkgconfig/ path to the PKG_CONFIG_PATH environment variable.
16.1.4.1. Using Third-Party Programs with Postgres Pro
To use Postgres Pro server with a client program provided with a third-party product, you can install the version of PostgreSQL libraries that was used to compile this program. For example, if this program is provided with vanilla PostgreSQL, you may need to install the libpq or postgresql-libs packages available for your Linux distribution. In this case, the program may not be able to use some new features of Postgres Pro server, but it is probably not designed to use them anyway.
If you prefer to use Postgres Pro libraries with a third-party program, or would like to enable support for a new feature that does not require client application change, such as SCRAM authentication, you can recompile your program with Postgres Pro libraries.
Important
If the program is compiled with one version of libpq but used with another, its stable work cannot be guaranteed.
If you are creating .rpm or .deb packages for your program, it is recommended to do the following:
Add
/opt/pgpro/std-10/bintoPATHinside your build scripts (.specfiles ordebian/rules).Specify
postgrespro-std-10-devin theBuildDependsorBuildRequirestags for your program.
Thus, you can ensure that your package build process calls the right version of pg_config whenever the source package is rebuilt.
16.1.5. Configuring Multiple Postgres Pro Instances
To set up several Postgres Pro server instances with different data directories on Linux, do the following:
Install and configure Postgres Pro as explained in Section 16.1.2 or Section 16.1.3.
Once the first default database is created, run initdb specifying the path to a different data directory and any other parameters required to initialize another server instance.
Specify different ports for your server instances in the corresponding
postgresql.conffiles to avoid conflicts.If required, configure automatic server startup, as follows:
Create a copy of
/etc/init.d/postgrespro-std-10or/lib/systemd/system/postgrespro-std-10.servicewith a different name, specifying the path to the data directory.Enable automatic server startup using the provided autostart scripts for your system service management facility instead of
pg-setup, as described in Section 16.1.3.2. Make sure to use the renamed copies of the scripts you created in step 1.
16.1.6. Antivirus Considerations
It is strongly recommended to avoid using antivirus software on systems where Postgres Pro is running because it may cause additional load on your environment and result in unexpected database behavior that would lead to performance and reliability issues. If you need to use antivirus software, make sure to exclude the following directories from virus scanning as they do not contain any executable files:
PGDATAdirectory that stores main cluster data, usually located in/var/lib/pgpro/std-10/dataunless you specified another directory in initdb optionsPaths to created tablespaces