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

Установка

Установка компонента 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-3.1.0-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

    Где IP-Address - адрес сервера Pangolin, port - порт сервера Pangolin.

  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> — версия продукта.