Skip to main content

Установка PostgreSQL для кластера


Page Type: Installation Component: ПринтМенеджер Domain: Infrastructure Product Versions: 4.x OS: Linux Status: Draft Related Components: PostgreSQL, Docker

Установка PostgreSQL для кластера

Цель

Развертывание базы данных PostgreSQL для кластерной конфигурации ПринтМенеджера.


Предусловия

Предусловия

    Подготовлен сервер для базы данных (DB_NFS) Определено количество серверов ПринтМенеджер для расчёта max_connections

    Расчёт максимального количества подключений к БД

    Для обеспечения достаточного количества соединений с базой данных настройте параметр max_connections в конфигурационном файле PostgreSQL. Используйте следующую формулу:

    max_connections = (3*N+70)*T 
    Где:

    Где:

      N: количество процессорных ядер на одном сервере ПринтМенеджера (ПМ)ПринтМенеджер). T: количество серверов ПринтМенеджер в системе.

      Пример: Для 3 серверов ПринтМенеджер с 6 ядрами каждый: max_connections = (3 х 6 + 70) х 3 = 264.


      Шаги установки

      Шаг 1. Установите Docker и Docker Compose

      Для Ubuntu, Astra Linux и ALT Linux:

      sudo apt install docker.io -y sudo apt install docker-compose -y sudo systemctl enable docker --now sudo systemctl status docker 

      Для РЕД ОС и Red Hat Enterprise Linux:

      sudo dnf install -y docker-ce docker-ce-cli sudo dnf install -y docker-compose sudo systemctl start docker sudo systemctl enable docker sudo systemctl status docker 

      Шаг 2. Создайте файл docker-compose.yml

      Выполните команду для создания файла:

      touch docker-compose.yml 

      Затем отредактируйте файл:

      nano docker-compose.yml 

      Вставьте следующую конфигурацию:

      version: "3.7" services: postgres: image: postgres:15.15-alpine volumes: - postgres15:/var/lib/postgresql/data command: postgres -N 300 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: printmanager PGDATA: /var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 ports: - "5432:5432" restart: always volumes: postgres15: 
      Важно:

      Важно:

        Параметры POSTGRES_USER и POSTGRES_PASSWORD измените на свои значения. Эти данные потребуются для настройки системы. В строке command: postgres -N 300 вместо 300 укажите значение максимального количества подключений к БД, исходя из количества используемых ПМ.ПринтМенеджер.

        Шаг 3. Создайте директорию для PostgreSQL

        Переместите файл docker-compose.yml в новую директорию:

        sudo mkdir /opt/postgres15 sudo mv docker-compose.yml /opt/postgres15 cd /opt/postgres15 

        Шаг 4. Запустите PostgreSQL через Docker Compose

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

        sudo docker-compose up -d 

        Это запустит контейнер с PostgreSQL и выполнит его настройку.


        Возможные ошибки

        В Astra Linux может появиться ошибка:

        docker.errors.DockerException: Error while fetching server API version: Not supported URL scheme http+docker 

        Причина: установлен устаревший пакет docker-compose.

        Решение:

        sudo apt purge docker-compose sudo apt install docker-compose-v2 

        Как проверить установку

        Убедитесь, что контейнер запущен и база данных доступна:

        sudo docker ps 

        Проверьте работоспособность базы, используя ID её контейнера из предыдущей команды:

        sudo docker logs <container_id> 

        Параметры для дальнейшей настройки

        Используйте указанные параметры POSTGRES_USER, POSTGRES_PASSWORD и POSTGRES_DB при настройке системы управления печатью:

          DB_HOST — адрес сервера базы данных. POSTGRES_LOGIN — логин учетной записи с правами доступа. POSTGRES_PASSWORD — пароль учетной записи.

          Next steps

            Установка NFS-хранилища Установка балансировщика HAProxy

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

              Контейнер PostgreSQL запущен ( sudo docker ps показывает статус Up). База данных доступна; подготовлены параметры DB_HOST, POSTGRES_LOGIN, POSTGRES_PASSWORD для указания при установке ПринтМенеджеров.

              Типовые ошибки

              Ошибка ОшибкаПричина Решение django.db.utils.OperationalError: FATAL: sorry, too many clients already Превышено максимальное количество подключений к PostgreSQL Увеличить значение параметра max_connections в конфигурационном файле PostgreSQL по формуле: max_connections = (3×N + 70) × T, где N — количество ядер CPU на одном сервере ПМ,ПринтМенеджер, T — число серверов ПМПринтМенеджер

              Связанные страницы

                Подготовка к установке кластера Active-Active Установка NFS-хранилища Установка балансировщика HAProxy