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)DB_NFS). Определено количество серверов ПринтМенеджер для расчёта max_connections.

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

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

    Используйте следующую формулу:

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

    где:

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

      Пример: Для 3 серверов ПринтМенеджер с 6 ядрами каждый: max_connections = (3 х 6 + 70) х 3 = 264.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_USER, POSTGRES_PASSWORD и POSTGRES_DB при настройке системына управленияэтапе печатью: DB_HOST — адрес сервера базы данных. POSTGRES_LOGIN — логин учетной записи с правами доступа. POSTGRES_PASSWORD — пароль учетной записи. Next steps Установка NFS-хранилища Установка балансировщика HAProxy.

      Следующие шаги

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

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

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

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

          Ошибка

          При Причинаподключении Решениек базе данных возникает ошибка:

          django.db.utils.OperationalError: FATAL: sorry, too many clients already
          

          Превышено максимальное количество подключений к PostgreSQLPostgreSQL.

          Увеличить

          Увеличьте значение параметра max_connections в конфигурационном файле PostgreSQL по формуле:

          max_connections = (3×N + 70) × T,T
          

          где N — количество ядер CPU на одном сервере ПринтМенеджер, T — число серверов ПринтМенеджерПринтМенеджера.


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

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