ELMA365 On-Premises > Подготовка инфраструктуры > Базы данных > Подготовка внешних баз данных / PostgreSQL

PostgreSQL

В статье описана установка PostgreSQL для ОС Ubuntu Linux 20.04. Вы также можете ознакомиться с кратким руководством в официальной документации PostgreSQL.

Для корректной работы системы ELMA365 требуется PostgreSQL версии 11-15.  

начало внимание 

Для примера используется имя базы elma365, пользователь elma365 и пароль SecretPassword.

При настройке задайте эти данные согласно политике безопасности, принятой в вашей организации.

конец внимание

Установка состоит из шести этапов:

  1. Установка PostgreSQL.
  2. Настройка PostgreSQL.
  3. Настройка подключения к PostgreSQL.
  4. Настройка ограничений и лимитов к PostgreSQL.
  5. Подготовка PGBouncer (опционально).
  6. Подключение к PostgreSQL.

Шаг 1: Установка PostgreSQL

Для установки PostgreSQL добавьте официальный репозиторий:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Далее установите PostgreSQL:

sudo apt install postgresql-13

Шаг 2: Настройка PostgreSQL

Начало внимание

Для пароля разрешается применять следующие символы:

  • заглавные латинские буквы: от A до Z;
  • строчные латинские буквы: от a до z;
  • цифры от 0 до 9;
  • символы: -_.

Зарезервированные (недопустимые) символы:

! * ' ( ) ; : @ & = + $ , / ? % # [ ]

Конец внимание

Для настройки PostgreSQL используйте следующие команды:

  1. Создайте отдельного пользователя elma365 с паролем SecretPassword для работы с БД. Имя пользователя и пароль приведены для примера:

sudo -u postgres psql -c "CREATE ROLE elma365 WITH login password 'SecretPassword';"

  1. Создайте отдельную базу данных elma365 и назначьте выделенного пользователя elma365 её владельцем. Нельзя использовать существующую базу, так как система создаёт таблицы и схемы:

sudo -u postgres psql -c "CREATE DATABASE elma365 WITH OWNER elma365;"

  1. Добавьте необходимые расширения для базы данных elma365:

sudo -u postgres psql -d elma365 -c "CREATE EXTENSION \"uuid-ossp\"; CREATE EXTENSION pg_trgm;"

Шаг 3: Настройка подключения к PostgreSQL

  1. Добавьте IP-адрес сервера, на котором запущен PostgreSQL, в конфигурационный файл /etc/postgresql/13/main/postgresql.conf в параметр listen_addresses, например, 192.168.10.10:

sudo nano /etc/postgresql/13/main/postgresql.conf
listen_addresses = 'localhost, 192.168.10.10'

Настройка включения TLS/SSL в PostgreSQL

  1. Добавьте в конец конфигурационного файла авторизации /etc/postgresql/13/main/pg_hba.conf адрес сети, в которой работают ноды elma365:

sudo nano /etc/postgresql/13/main/pg_hba.conf
host    all             all             192.168.0.0/16              md5

  1. Перезагрузите сервис PostgreSQL:

sudo systemctl restart postgresql

Шаг 4: Настройка ограничений и лимитов к PostgreSQL

  1. Откройте для редактирования конфигурационный файл /etc/postgresql/13/main/postgresql.conf:

sudo nano /etc/postgresql/13/main/postgresql.conf

  1. Увеличьте максимальное количество подключений, изменив значение параметра max_connections на 2000:

max_connections = 2000

  1. Увеличьте максимальное количество блокировок на транзакцию, изменив значение параметра max_locks_per_transaction на 512. Также нужно раскомментировать эту строку (убрать знак решётки #):

max_locks_per_transaction = 512

  1. Перезагрузите сервис PostgreSQL:

sudo systemctl restart postgresql

Шаг 5: Подготовка PGBouncer (опционально)

PGBouncer предназначен для управления пулом соединений к PostgreSQL и позволяет минимизировать издержки, связанные с установлением новых подключений к PostgreSQL.

Про установку и настройку PGBouncer читайте в статье «Установка PGBouncer».

Шаг 6: Подключение к PostgreSQL

Строка подключения к PostgreSQL:

postgresql://elma365:SecretPassword@<postgresql-server-address>:5432/elma365?sslmode=disable

Строка подключения PostgreSQL с TLS/SSL:

postgresql://elma365:SecretPassword@<postgresql-server-address>:5432/elma365?sslmode=require

Подключение к PostgreSQL через PGBouncer.