Установка и настройка СУБД#
Необходимое программное обеспечение#
ПО под ОС Astra Linux / Debian / Alt Linux:
сервер PostgreSQL 14 или выше (Рекомендовано использовать PostgreSQL 17); PostgreSQL или Postgres Pro
postgresql-contrib (обычно устанавливаются вместе с сервером Postgres);
htop;
Iotop;
sysstat;
pgbadger;
ssh (клиент и сервер SSH);
mc (Midnight Commander);
tar;
zip.
Важно
Не рекомендуется выполнять сборку сервера самостоятельно из исходного кода т.к. нельзя гарантировать стабильность работы таких сборок в продуктивном контуре.
Установка#
Скачайте требуемый пакет с сайта https://postgrespro.ru/products/download или https://www.postgresql.org/download. Для установки следуйте инструкциям на сайте.
Изменение локализации#
Если при установке операционной системы выбрана англоязычная локаль, СУБД будет установлена с той же локалью. В этом случае локаль СУБД необходимо изменить на русскую (ru_RU.UTF-8) до выполнения любых конфигураций, поскольку смена локали приводит к сбросу всех настроек. Подробную инструкцию см. в документе: Смена локалей для postgresql.
Дополнительная настройка#
В конфигурационном файле
/etc/postgresql/*/main/postgresql.confпереопределите параметры по умолчанию согласно конфигурации железа.
Пример для сервера с конфигурацией ЦП:4 ядра;
8 Гб ОЗУ;
Диск: SSD:
Добавить в конец конфигурационного файла
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
# Memory Configuration
shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 41MB
maintenance_work_mem = 410MB
# Checkpoint Related Configuration
min_wal_size = 2GB
max_wal_size = 3GB
checkpoint_completion_target = 0.9
wal_buffers = -1
# Network Related Configuration
listen_addresses = '*'
max_connections = 100
# Storage Configuration
random_page_cost = 1.1
effective_io_concurrency = 200
# Worker Processes Configuration
max_worker_processes = 8
max_parallel_workers_per_gather = 2
max_parallel_workers = 2
max_locks_per_transaction = 500
Примечание
Для подбора параметров можно воспользоваться онлайн-мастером https://www.pgconfig.org.
В мастере указать версию постгреса, выбрать профиль DataWare house and BI Applications и указать параметры железа сервера: количество ядер ЦП, размер ОЗУ, тип диска.
Настройте аутентификацию по имени узла в файле
pg_hba.conf.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all all scram-sha-256
Примечание
Для получения подробной информации по конфигурации Postgres воспользуйтесь документацией на сайте: https://postgrespro.ru/docs.
Развертывание новой базы#
Поменяйте пароль пользователю ОС c именем
postgres:
sudo passwd postgres
Подключитесь терминалом к серверу СУБД под административным пользователем.
Переключитесь на пользователя «postgres»:
su postgres
Подключитесь локально утилитой psql к СУБД Postgres:
psql
Поменяйте пароль суперпользователя:
alter user postgres password '<Новый пароль>';
Создайте пользователя:
CREATE ROLE <userName> WITH LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT NOREPLICATION CONNECTION LIMIT -1 PASSWORD '<UserPassword>';
GRANT pg_signal_backend TO <userName>;
Создайте новую БД, в качестве владельца укажите созданного пользователя:
CREATE DATABASE "<имяБД>" WITH OWNER = <userName> ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8' CONNECTION LIMIT = -1 TEMPLATE template0;
Завершите сессию psql:
\q
Подключитесь к созданной БД:
psql <имяБД>
Подключите необходимые для работы Global расширения:
CREATE EXTENSION if not exists plpgsql;
CREATE EXTENSION if not exists fuzzystrmatch;
CREATE EXTENSION if not exists pg_trgm;
CREATE EXTENSION if not exists pg_stat_statements;
CREATE EXTENSION if not exists "uuid-ossp";
CREATE EXTENSION if not exists dict_xsyn;
CREATE EXTENSION if not exists ltree;
Завершите сессию psql:
\q
Теперь БД готова к работе.
Развертывание поставочного дампа#
Важно
Перед развертыванием поставочного дампа разверните и зарегистрируйте сервер приложений:
Создайте чистую базу, создайте extentions.
Проведите полную настройку контура.
Выполните подготовку релиза. Система определит, что производится чистая инициализация и сгенерирует все необходимые схемы и таблицы.
Зарегистрируйте контур лицензией.
Остановите Global (global3.service).
Очистите схему public и загрузите её дамп (предварительно нужно очистить схему public).
Запустите Global.
Подробнее о восстановлении БД в руководстве.