В статье описаны:
- установка PostgreSQL для ОС Ubuntu Linux 20.04;
- подготовка базы данных в PostgreSQL к восстановлению.
Вы также можете ознакомиться с кратким руководством в официальной документации PostgreSQL.
Для корректной работы системы ELMA365 требуется PostgreSQL версии 11-15.
начало внимание
Для примера используется имя базы elma365, пользователь elma365 и пароль SecretPassword.
При настройке задайте эти данные согласно политике безопасности, принятой в вашей организации.
конец внимание
Установка состоит из шести этапов:
- Установка PostgreSQL.
- Настройка PostgreSQL.
- Настройка подключения к PostgreSQL.
- Настройка ограничений и лимитов к PostgreSQL.
- Подготовка PGBouncer (опционально).
- Подключение к 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-15
Шаг 2: Настройка PostgreSQL
Начало внимание
Для пароля разрешается применять следующие символы:
- заглавные латинские буквы: от A до Z;
- строчные латинские буквы: от a до z;
- цифры от 0 до 9;
- символы: -_.
Зарезервированные (недопустимые) символы:
! * ' ( ) ; : @ & = + $ , / ? % # [ ]
Конец внимание
Для настройки PostgreSQL используйте следующие команды:
- Создайте отдельного пользователя elma365 с паролем SecretPassword для работы с БД. Имя пользователя и пароль приведены для примера:
sudo -u postgres psql -c "CREATE ROLE elma365 WITH login password 'SecretPassword';"
- Создайте отдельную базу данных elma365 и назначьте выделенного пользователя elma365 её владельцем. Нельзя использовать существующую базу, так как система создаёт таблицы и схемы:
sudo -u postgres psql -c "CREATE DATABASE elma365 WITH OWNER elma365;"
- Добавьте необходимые расширения для базы данных elma365:
sudo -u postgres psql -d elma365 -c "CREATE EXTENSION \"uuid-ossp\"; CREATE EXTENSION pg_trgm;"
Шаг 3: Настройка подключения к PostgreSQL
- Добавьте IP-адрес сервера, на котором запущен PostgreSQL, в конфигурационный файл
/etc/postgresql/15/main/postgresql.conf
в параметрlisten_addresses
, например,192.168.10.10
:
sudo nano /etc/postgresql/15/main/postgresql.conf
listen_addresses = 'localhost, 192.168.10.10'
Настройка включения TLS/SSL в PostgreSQL
Для включения поддержки TLS/SSL в PostgreSQL в файле конфигурации
ssl = on Подробнее о настройке TLS/SSL в PostgreSQL читайте в официальной документации PostgreSQL. |
- Добавьте в конец конфигурационного файла авторизации
/etc/postgresql/15/main/pg_hba.conf
адрес сети, в которой работают ноды elma365:
sudo nano /etc/postgresql/15/main/pg_hba.conf
host all all 192.168.0.0/16 md5
- Перезагрузите сервис PostgreSQL:
sudo systemctl restart postgresql
Шаг 4: Настройка ограничений и лимитов к PostgreSQL
- Откройте для редактирования конфигурационный файл
/etc/postgresql/15/main/postgresql.conf
:
sudo nano /etc/postgresql/15/main/postgresql.conf
- Увеличьте максимальное количество подключений, изменив значение параметра
max_connections
на2000
:
max_connections = 2000
- Увеличьте максимальное количество блокировок на транзакцию, изменив значение параметра
max_locks_per_transaction
на512
. Также нужно раскомментировать эту строку (убрать знак решётки #):
max_locks_per_transaction = 512
- Перезагрузите сервис 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.
Строка подключения к PGBouncer: postgresql://elma365:SecretPassword@<postgresql-server-address>:6432/elma365?sslmode=disable Строка подключения PGBouncer с TLS/SSL: postgresql://elma365:SecretPassword@<postgresql-server-address>:6432/elma365?sslmode=require |
Подготовка базы данных в PostgreSQL к восстановлению
Если вам потребовалось восстановить базу данных из резервной копии, сначала подготовьте БД к восстановлению.
Подробнее про резервное копирование читайте в статьях:
- «Резервное копирование внешними средствами»;
- «Резервное копирование и восстановление баз данных: утилита Elma365-Backupper»;
- «Резервное копирование и восстановление данных ELMA365 Standard».
Начало внимание
Предварительно убедитесь, что у вас есть резервная копия удаляемой базы данных. Только после этого приступайте к удалению БД.
Конец внимание
- Удалите базу данных elma365:
sudo -u postgres psql -c "DROP DATABASE elma365 WITH (FORCE);"
- Создайте пустую базу данных elma365 для последующего восстановления БД из резервной копии. Для этого выполните действия из шага 2 в настройках PostgreSQL.
- После этого выполните восстановление данных, в зависимости от вашей поставки ELMA365 On-Premises и способа резервного копирования:
- восстановление резервной копии с помощью утилиты Elma365-Backupper;
- восстановление для резервного копирования внешними средствами;
- восстановление резервной копии в поставке Standard.