Установка и настройка БД
Для использования сценария кластеризованной БД необходимо выполнить шаги по ручной установке и настройке СУБД.
Установка
Важно
Установка узла с ролью DB осуществляется на отдельный хост с ОС Astra Linux SE 1.7.
Обновление СУБД
В случае обновления СУБД PostgreSQL требуется перенос данных на новую версию/конфигурацию. Перед обновлением необходимо выполнить экспорт БД.
-
Отредактировать файл /etc/apt/sources.list, указав источники получения пакетов (официальные установочные диски либо сетевые репозитории).
Важно
В списке репозиториев не должны присутствовать активные компоненты astra-ce.
Список сетевых репозиториев на ОС Astra Linux 1.7.5:
# Astra Linux repository description https://wiki.astralinux.ru/x/0oLiC #deb cdrom:[OS Astra Linux 1.7.5 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-update/ 1.7_x86-64 main contrib non-free
-
Обновить списки пакетов:
sudo apt update
-
Установить СУБД и необходимые компоненты:
sudo apt install -y postgresql-11
-
Выполнить установку и компиляцию дополнительных файлов локализации в системе:
sudo gunzip /usr/share/i18n/charmaps/UTF-8.gz
sudo localedef -i /usr/share/i18n/locales/en_US -f /usr/share/i18n/charmaps/UTF-8 /usr/lib/locale/en_US.UTF-8
Создание БД и пользователя для работы компонентов Space Disp
Примечание
Следующие шаги необходимо выполнять на узле кластера с ролью master (в данном примере - Узел БД 1).
-
Команды по настройке требуют запуска терминального клиента БД (psql) под учетной записью postgres. Для его активации необходимо последовательно выполнить команды:
sudo -s
su postgres
psql
Ошибка
could not change directory to "/home/": Отказано в доступе
Если после выполнения команды отображается ошибкаcould not change directory to "/home/": Отказано в доступе
и не появляется приглашение командной строкиpostgres=#
, необходимо вместоsu postgres
использовать командуsu - postgres
. Если приглашениеpostgres=#
появилось, то сообщение об ошибке можно игнорировать.
-
Используя интерактивный интерфейс, создать пользователя для дальнейшего подключения к БД:
CREATE USER spacevdi WITH LOGIN SUPERUSER PASSWORD 'examplepassword';
Примечание
В приведенной команде имя пользователя spacevdi и пароль examplepassword используются в качестве примера. Рекомендуется задавать учетные данные в соответствии с внутренними стандартами организации по применению парольной защиты.
-
Используя интерактивный интерфейс, создать БД vdi:
CREATE DATABASE vdi encoding 'UTF-8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8' template 'template0' owner 'spacevdi';
-
Используя интерактивный интерфейс, убедиться, что БД vdi создана:
\l
-
Используя интерактивный интерфейс, активировать расширение СУБД для работы с UUID:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
-
Выйти из интерактивного интерфейса терминального клиента СУБД:
\q
-
Выйти из сеанса пользователя postgres:
exit
-
Отредактировать файл /etc/parsec/mswitch.conf, установив параметру zero_if_notfound значение yes:
Важно
Значение параметра zero_if_notfound необходимо установить на всех узлах кластера.
# The mandate integrity level allow to user. The default source # is entries in /etc/parsec/micdb directory. mic: files mic_charset: utf-8 # Return zero data instead of ENOENT/ENODATA in the absence of record zero_if_notfound: yes
-
Ограничить доступные для подключения БД в файле /etc/postgresql/11/main/pg_hba.conf, заменив строки в разделе IPv4 и IPv6:
Важно
Ограничить доступные для подключения БД необходимо на всех узлах кластера.
# IPv4 local connections: #host all all 127.0.0.1/32 md5 host all spacevdi 0.0.0.0/0 md5 # IPv6 local connections: #host all all ::1/128 md5
Примечание
В примере выше ограничивается возможность подключения только для пользователя spacevdi (созданного ранее) и блокируются подключения по IPv6, т.к. такой тип адресации не поддерживается в Space Disp.
-
Для корректной работы приложения в режиме замкнутой программной среды (ЗПС), необходимо внести изменения в конфигурацию СУБД в файле /etc/postgresql/11/main/postgresql.conf в соответствие с настраиваемой инфраструктурой:
Важно
Указанные значения необходимо установить на всех узлах кластера.
# настройки для проверок совместимости ЗПС ac_ignore_socket_maclabel false enable_bitmapscan = off # изменение поведения по умолчанию комментированием строки #max_wal_size = 1GB #min_wal_size = 80MB # изменение стандартных локалей lc_messages = 'en_US.UTF-8' # locale for system error message strings lc_monetary = 'en_US.UTF-8' # locale for monetary formatting lc_numeric = 'en_US.UTF-8' # locale for number formatting lc_time = 'en_US.UTF-8' # locale for time formatting # критически важные настройки для приложения # увеличение размера буфера (по умолчанию - 128MB) shared_buffers = 1024MB # для работы секционирования событий параметр должен оставаться включенным #enable_partition_pruning = on # изменение поведения по умолчанию комментированием строки #standard_conforming_strings = off
-
Выполнить перезапуск кластера и проверить статус его работы:
-
Убедиться, что процесс postgresql работал до применения изменений:
systemctl status postgresql
-
Выполнить перезапуск и применение всех настроек:
systemctl restart postgresql
-
Убедиться, что запуск выполнен:
systemctl status postgresql
-
Проверить состояние кластера:
pg_ctlcluster 11 main status
-
-
Выйти из сеанса суперпользователя:
exit
Примечание
Если параметры репликации требуют других настроек pg_hba или postgresql, необходимо следовать инструкциям репликации настраиваемой конфигурации (за исключением тех, которые выделены как критические).