Перейти к основному содержимому

Установка

Установка компонента Pangolin Pooler на этапе развертывания продукта СУБД Pangolin может происходить:

При эксплуатации СУБД Pangolin, установка происходит с помощью поставляемого rpm/deb-пакета компонента.

Особенности поставки и установки​

  • Компонент поставляется rpm/deb-пакетом в формате pangolin-pooler-{version_component}-{OS}.x86_64.rpm;
  • Исполняемый файл компонента находится по пути: /opt/pangolin-pooler/bin/pangolin-pooler;
  • Может быть установлена только одна версия Pangolin Pooler;
  • Нумерация версии компонента начата с 1.1.0 после переименования с PgBouncer на Pangolin Pooler.

Ручная установка​

Последовательность выполнения​

Шаги процесса ручной установки компонента:

  1. Установка rpm/deb-пакета компонента Pangolin Pooler.
  2. Создание системных директорий, необходимых для работы компонента.
  3. Конфигурирование Pangolin Pooler.
  4. Настройка ротации журналов.
  5. Запуск компонента.

Шаг 1. Установка rpm/deb-пакета​

Выполните установку компонента Pangolin Pooler под пользователем root:

sudo dnf install /{path}/pangolin-pooler-{version_component}-{OS}.x86_64.rpm

Пример заполненной команды:

sudo dnf install -y ~/distributive/pangolin-pooler-1.6.1-sberlinux9.x86_64.rpm

Шаг 2. Создание системных директорий​

Создайте директории /pangolinlogs/pangolin-pooler:

sudo mkdir -p /pangolinlogs/pangolin-pooler
sudo chown -R postgres:postgres /pangolinlogs
sudo chmod -R 700 /pangolinlogs

Шаг 3. Конфигурирование Pangolin Pooler​

  1. С помощью текстового редактора под пользователем postgres отредактируйте файл /etc/pangolin-pooler/pangolin-pooler.ini, заполнив поля значениями, соответствующими данным вашего стенда:

    Пример файла pangolin-pooler.ini с минимальными настройками

    [databases]
    * = host=<ip-address> port=<port>

    [pgbouncer]
    listen_port = 6544
    listen_addr = *
    auth_type = scram-sha-256
    auth_file = /etc/pangolin-pooler/userlist.txt
    logfile = /pangolinlogs/pangolin-pooler/pangolin-pooler.log
    pidfile = /var/run/pangolin-pooler/pangolin-pooler.pid
    admin_users = pgbouncer
  2. С помощью текстового редактора под пользователем postgres измените файл /etc/pangolin-pooler/userlist.txt, заполнив поля значениями, соответствующими данным вашего стенда:

    "<user>" "<password>"

    Пример файла userlist.txt:

    "user" "qwerty"

    Или в засекреченном виде:

    "user" "md5175c641eaed0b6c05ae8444b73d789f0"

Шаг 4. Настройка ротации журналов​

  1. С помощью текстового редактора под пользователем root измените файл /opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler, заполнив поля значениями, соответствующими данным вашего стенда:

    Пример файла pangolin-pooler:

    /pangolinlogs/pangolin-pooler/pangolin-pooler.log {
    rotate 10
    su postgres postgres
    missingok
    sharedscripts
    notifempty
    compress
    daily
    create 0600 postgres postgres
    postrotate
    /bin/kill -HUP `cat /var/run/pangolin-pooler/pangolin-pooler.pid 2> /dev/null` 2>/dev/null ||true
    endscript
    }
  2. Перенесите готовый файл в системный каталог ротации логов и назначьте права:

    sudo cp /opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler /etc/logrotate.d/pangolin-pooler
    sudo chown postgres:postgres /etc/logrotate.d/pangolin-pooler
    sudo chmod 0644 /etc/logrotate.d/pangolin-pooler

Шаг 5. Запуск Pangolin Pooler​

  1. Произведите запуск службы Pangolin Pooler:

    sudo systemctl restart pangolin-pooler
  2. Проверьте корректность запуска и состояние сервиса. Пример статуса:

    sudo systemctl status pangolin-pooler
    Пример успешного старта сервиса pangolin-pooler

    ● pangolin-pooler.service - Pangolin Pooler connection pooling for PostgreSQL
    Loaded: loaded (/usr/lib/systemd/system/pangolin-pooler.service; disabled; preset: disabled)
    Active: active (running) since Mon 2026-02-02 18:58:35 MSK; 4s ago
    Process: 2292612 ExecStartPre=/bin/mkdir -p /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
    Process: 2292613 ExecStartPre=/bin/chown -R postgres:postgres /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
    Process: 2292614 ExecStart=/opt/pangolin-pooler/bin/pangolin-pooler -d ${POOLERCONF} (code=exited, status=0/SUCCESS)
    Process: 2292617 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)
    Main PID: 2292616 (pangolin-pooler)
    Tasks: 2 (limit: 50508)
    Memory: 3.8M
    CPU: 18ms
    CGroup: /system.slice/pangolin-pooler.service
    └─2292616 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.ini

    Feb 02 18:58:34 srv-123 systemd[1]: Starting Pangolin Pooler connection pooling for PostgreSQL...
    Feb 02 18:58:35 srv-123 systemd[1]: Started Pangolin Pooler connection pooling for PostgreSQL...

Проверка результата​

После завершения процесса установки рекомендуется выполнить проверку корректности установка компонента Pangolin Pooler.

Проверка состояния сервиса​

  1. Выполните проверку статуса службы Pangolin Pooler (на мастере и реплике):

    • Если служба Pangolin Pooler была запущена под пользователем postgres, то необходимо переключиться на данного пользователя и выполнить команду:

      systemctl status --user pangolin-pooler
    • Если служба Pangolin Pooler была запущена под пользователем root, то необходимо переключиться на данного пользователя и выполнить команду:

      systemctl status pangolin-pooler

    Ожидаемый результат:

    ● pangolin-pooler.service - Pangolin Pooler connection pooling for PostgreSQL
    Loaded: loaded (/home/postgres/.config/systemd/user/pangolin-pooler.service; enabled; vendor preset: enabled)
    Active: active (running) since Tue 2025-02-25 14:56:58 MSK; 6min ago
    Process: 1662006 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)
    Process: 1662003 ExecStart=/opt/pangolin-pooler/bin/pangolin-pooler -d ${POOLERCONF} (code=exited, status=0/SUCCESS)
    Process: 1662001 ExecStartPre=/bin/chown -R postgres:postgres /var/run/user/993/pangolin-pooler (code=exited, status=0/SUCCESS)
    Process: 1661999 ExecStartPre=/bin/mkdir -p /var/run/user/993/pangolin-pooler (code=exited, status=0/SUCCESS)
    Main PID: 1662005 (pangolin-pooler)
    CGroup: /user.slice/user-993.slice/user@993.service/pangolin-pooler.service
    └─1662005 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.ini

    Обратите внимание на параметр Active. Данный параметр должен быть равен active (running).

Проверка подключения к БД через Pangolin Pooler​

  1. Выполните команду:

    psql -h <pgbouncer_host> -p <pgbouncer_port> -U <username> -d <database> -c 'SELECT product_version();'

    Где:

    • pgbouncer_host - fqdn/IP-адрес сервера с установленным Pangolin Pooler;
    • pgbouncer_port - порт для работы с Pangolin Pooler. По умолчанию порт равен 6544;
    • username - имя пользователя БД;
    • database - имя БД.

    Ожидаемый результат:

    product_version
    ---------------------------
    Platform V Pangolin <version>
    (1 row)

    Где <version> — версия продукта.