Установка СУБД PostgreSQL

Для установки СУБД PostgreSQL необходимо:

  • отредактировать файл /etc/apt/sources.list, оставив в качестве источников получения пакетов сетевые репозитории. Пример файла /etc/apt/sources.list для ОС Astra Linux Special Edition 1.8:

Приведен только пример файла! Он должен быть скорректирован, исходя из используемой и поддерживаемой версии ОС. Подробную информацию о сетевых репозиториях ОС Astra Linux Special Edition можно получить в справочном центре Astra Linux:

Если в файле /etc/apt/sources.list присутствует репозиторий astra-ce, то необходимо закомментировать его, чтобы избежать установки несовместимых версий пакетов.

deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free
BASH
  • перейти в интерфейс командной строки и обновить списков пакетов:
sudo apt update
BASH
  • установить СУБД PostgreSQL:

Требования к версии СУБД PostgreSQL:

  • при установке на ОС Astra Linux Specail Edition 1.7 следует выбирать СУБД PostgreSQL версии 11 (входит в состав ОС);
  • при установке на ОС Astra Linux Specail Edition 1.8 следует выбирать СУБД PostgreSQL версии 15 (входит в состав ОС).
sudo apt install -y postgresql
BASH

где:

-y - ключ для пропуска подтверждения установки.

Настройка СУБД PostgreSQL

Перед установкой Termidesk нужно выполнить настройку базы данных (БД).

При работе с СУБД следует учитывать ее ограничения: суммарное количество подключений к СУБД должно быть не более 75% от максимально разрешенного количества подключений. Для СУБД PostgreSQL по умолчанию максимальное количество подключений  - 100.

Для оценки количества подключений к СУБД можно воспользоваться формулой: количество потоков «Менеджера рабочих мест» + количество потоков фоновых задач + (количество порталов «Универсального диспетчера» × количество ядер процессоров × 3) + (количество узлов с запущенными службами termidesk-celery-beat и termidesk-celery-worker × количество ядер на этих узлах).

Указанные в формуле параметры «количество потоков «Менеджера рабочих мест» и «количество потоков фоновых задач» задаются в портале администратора Termidesk на странице «Настройки - Системные параметры - Общие».

Для настройки БД следует перейти в интерфейс командной строки и выполнить:

  • переключиться на пользователя postgres:
sudo su postgres
BASH
  • запустить терминальный клиент СУБД PostgreSQL:
psql
BASH

Если после выполнения команды отображается ошибка «could not change directory to "/home/": Отказано в доступе» и не появляется приглашение командной строки postgres=#, необходимо вместо su postgres использовать конструкцию su - postgres.  Если приглашение postgres=# появилось, то сообщение об ошибке можно проингорировать.

  • используя интерактивный интерфейс терминального клиента СУБД PostgreSQL, создать БД termidesk (символ ; в конце строки при работе с интерактивным интерфейсом обязателен):

postgres=# CREATE DATABASE termidesk LC_COLLATE 'ru_RU.utf8' LC_CTYPE 'ru_RU.utf8' TEMPLATE template0;
BASH

где:

LC_COLLATE - порядок сортировки для использования в БД, влияет на порядок сортировки, применяемый к строкам. Значение ru_RU.utf8 указывает на использование русской локализации;

LC_CTYPE - классификация символов для использования в БД, влияет на категоризацию символов;

TEMPLATE - имя шаблона, из которого создается БД. Шаблон template0 используется для системной БД самой СУБД PostgreSQL.

  • создать пользователя termidesk с паролем ksedimret для дальнейшего подключения к БД:
postgres=# CREATE USER termidesk WITH PASSWORD 'ksedimret';
BASH

В приведенной команде имя пользователя и пароль используются в качестве примера. Имя пользователя и пароль должны задаваться в соответствии с внутренними стандартами организации по применению парольной защиты. Для задания пароля разрешено использовать только латинские буквы A-Z, a-z, цифры 0-9 и символы $!@%^&#_-=+~`;:.,?()*{}[]\|/.

  • назначить права по использованию БД termidesk созданному пользователю termidesk:
postgres=# GRANT ALL PRIVILEGES ON DATABASE termidesk TO termidesk;
BASH
  • в случае, если используется СУБД PostgreSQL из состава ОС Astra Linux Special Edition 1.8, то сделать пользователя termidesk владельцем БД termidesk, тем самым предоставив ему все возможные права:
postgres=# ALTER DATABASE termidesk OWNER TO termidesk;
BASH
  • выйти из интерактивного интерфейса терминального клиента СУБД PostgreSQL:

postgres=# \q
BASH
  • выйти из сеанса пользователя postgres: 
exit
BASH
  • отредактировать файл /etc/parsec/mswitch.conf, установив параметр zero_if_notfound в значение yes, точно соблюдая отступы и пробелы:
# Return zero data instead of ENOENT/ENODATA in the absence of record
zero_if_notfound: yes
BASH

В случае последующего обновления СУБД PostgreSQL может понадобиться пересоздать БД. В этом случае следует предусмотреть экспорт БД перед обновлением СУБД PostgreSQL.