Пошаговая установка по инструкции
При переходе к данному разделу предполагается, что процесс подготовки к установке уже пройден.
Данный раздел рассматривает процесс ручной пошаговой установки СУБД Pangolin по инструкции. Пошаговая установка выполняется на конечных узлах кластера СУБД.
Порядок установки
Шаги процесса ручной пошаговой установки:
- Подготовка дистрибутива.
- Проверить готовность к ручной установке.
- Установка необходимых rpm/deb пакетов.
- Создание системных директорий необходимых для работы СУБД.
- Импорт лицензии.
- Подготовка переменных окружения в
.bash_profile
. - Развертывание экземпляра СУБД (c окружением 1C или без).
- Корректировка конфигурационных параметров\файлов.
- Запуск СУБД.
- Проверка результата процесса установки.
Все блоки подготовки и самого процесса установки являются обязательными.
При ручной установке не будут настроены различные параметры, в том числе присущие только Pangolin:
- настройки конфигурационных файлов (
postgresql.conf
,pg_hba.conf
); - настройки кластерной конфигурации;
- будут отсутствовать компоненты Pangolin (etcd, Pangolin Manager, Pangolin Pooler, и другие);
- настройки ролевой модели;
- настройки расширений;
- настройки ротации журналов;
- и другие.
Для автоматизированной настройки данных параметров при развертывании СУБД Pangolin используйте автоматизированный сценарий.
Для развертывания СУБД Pangolin на окружении 1С выполните шаги с пометкой «для окружения 1С», вместо «обычное окружение».
Предусловия
Выполните распаковку дистрибутива с помощью вспомогательного скрипта unpacker-distrib.sh
(с ключом --not-pack
) и скопируйте полученный каталог дистрибутива на конечный хост СУБД.
Подготовка к ручной установке
-
Проверьте что порт для работы СУБД (по умолчанию
5432
) не заблокирован на уровне сети или виртуальной машины. -
Проверьте существование системного пользователя postgres:
getent passwd | grep postgres
Необходимо, чтобы postgres имел возможность фиксацию логов и имел свою home-директорию.
-
Проверьте занятость
uid
/gid
. Для установки экземпляра СУБД Pangolin по умолчанию используется:uid/gid: 26
для postgres иuid/gid: 126
для kmadmin_pg. Пример команды проверки:getent passwd | grep 26
getent passwd | grep 126В случае занятости данных
uid
/gid
переопределите переменные через изменение значений. Пример измененияuid
/gid
для пользователя postgres:sudo POSTGRES_USER_GUID=111 POSTGRES_GROUP_GUID=111 dnf install pangolin-dbms-6.5
Изменение актуально для ОС Astra Linux, в связи с занятостью
uid: 26
пользователем tape.Список переменных использующий
uid
/gid
:POSTGRES_USER_GUID # изменение uid пользователя postgres (по умолчанию 26)
POSTGRES_GROUP_GUID # изменение guid группы postgres (по умолчанию 26)
KMADMIN_PG_USER_GUID # изменение uid пользователя kmadmin_pg (по умолчанию 126)
KMADMIN_PG_GROUP_GUID # изменение guid группы kmadmin_pg (по умолчанию 126)
PANGOLIN_USERS_GROUP_GUID # изменение guid группы pangolin_users (по умолчанию 226) -
Проверьте, что виртуальные машины, которые будут использоваться для установки СУБД, находятся в области видимости. Воспользуйтесь командой
ping
.СведенияВыполните данный пункт в случае установки кла стерной конфигурации (cluster).
Замените переменные на значения DNS\IP-адресов хостов и выполните команды:
ping <dns/ip-address master>
ping <dns/ip-address replica>
ping <dns/ip-address arbiter>
Процесс установки СУБД Pangolin
Данный раздел предназначен для описания сценария процесса ручной установки СУБД Pangolin на операционные системы (ОС), такие как:
- Platform V SberLinux OS Server;
- РЕД ОС;
- Red Hat Enterprise Linux;
- CentOS;
- Astra Linux;
- Альт СП.
Для уточнения поддерживаемых версий указанных ОС обратитесь к списку в разделе «Подготовка окружения».
Обозначения
Далее в разделе, в приведенных блоках кода, будут указаны следующие обозначения:
{OS}
- операционная система;{version_OS}
- версия операционной системы;{path}
- путь к директории или путь к дистрибутиву;{product_version}
- версия продукта (текущая версия: 6.5.0);{short_version}
- короткая версия продукта (текущая: 6.5);{base_version}
- основная версия продукта (текущая: 6);{version_component}
- версия компонента.
Скорректируйте переменные относительно реализуемого сценария установки.
Шаг 1. Установка rpm/deb-пакетов
Установите пакеты серверной и клиентской части СУБД, а также пакет утилиты Pangolin Tuner:
Данный шаг установки пакетов может упростить использование мета-пакетов. Особенно в случае, когда необходима дальнейшая дополнительная установка каких-либо компонентов.
- SberLinux, РЕД ОС, CentOS
- Red Hat Enterprise Linux
- Astra Linux
- Альт СП
sudo dnf install pangolin-dbms-{short_version}-{product_version}-{OS}.x86_64.rpm
sudo dnf install pangolin-dbms-{short_version}-{product_version}-client-{OS}.x86_64.rpm
sudo dnf install utilities/pangolin-tuner-{version_component}-{OS}.x86_64.rpm
sudo yum install pangolin-dbms-{short_version}-{product_version}-rhel{version_OS}.x86_64.rpm
sudo yum install pangolin-dbms-{short_version}-{product_version}-client-rhel{version_OS}.x86_64.rpm
sudo yum install utilities/pangolin-tuner-{version_component}-rhel{version_OS}.x86_64.rpm
sudo apt install pangolin-dbms-{short_version}-{product_version}_amd64.deb
sudo apt install pangolin-dbms-{short_version}-client_{product_version}_amd64.deb
sudo apt install utilities/pangolin-tuner-{version_component}_amd64.deb
sudo apt-get install pangolin-dbms-{short_version}-{product_version}-altlinux{version_OS}.x86_64.rpm
sudo apt-get install pangolin-dbms-{short_version}-{product_version}-altlinux{version_OS}.x86_64.rpm
sudo apt-get install utilities/pangolin-tuner-{version_component}-altlinux{version_OS}.x86_64.rpm
Пример заполненной команды:
cd distributive
sudo dnf -y install pangolin-dbms-6.5-6.5.0-sberlinux8.x86_64.rpm
sudo dnf -y install pangolin-dbms-6.5-client-6.5.0-sberlinux8.x86_64.rpm
sudo dnf -y install utilities/pangolin-tuner-1.0.0-sberlinux8.x86_64.rpm
Шаг 2. Создание системных директорий необходимых для работы СУБД
Создайте директории $PGDATA
(/pgdata
), /pgerrorlogs
и /opt/pangolin_license
:
sudo mkdir -p /pgdata/
sudo chown -R postgres:postgres /pgdata/
sudo mkdir -p /pgerrorlogs/
sudo chown postgres:postgres /pgerrorlogs/
sudo mkdir -p /opt/pangolin_license/
sudo chown postgres:postgres /opt/pangolin_license/
Шаг 3. Импорт лицензии
Для целей соблюдения лицензионных условий продукта применяется файл, содержащий параметры лицензии и подписанный цифровой подписью с использованием приватного ключа.
class: info Лицензия поставляется вместе с дистрибутивом в личном кабинете клиента. В случае ее отсутствия, обратитесь к менеджеру.
Добавьте файл с лицензией license.json
в папку /opt/pangolin_license/
с правами postgres:postgres
:
sudo mv /{path}/license.json /opt/pangolin_license/
sudo chown postgres:postgres /opt/pangolin_license/license.json
Шаг 4. Подготовка переменных окружения
-
Переключитесь на пользователя
postgres
:sudo su - postgres
-
Измените файл
.bash_profile
(в случае ОС Astra Linux -.profile
) при помощи текстового редактора, добавив следующие строки с переменными окружения (замените переменные в скобках{ }
на актуальные значения):umask 022
export LD_LIBRARY_PATH=/usr/pangolin-{short_version}/lib
export PATH=$PATH:/usr/pangolin-{short_version}/bin
export PG_PLUGINS_PATH=/usr/pangolin-{short_version}/lib
export PGHOME=/usr/pangolin-{short_version}
export PGDATABASE=postgres
export PGUSER=postgres
export PGHOST=127.0.0.1
export PGPORT=5433
export PGCLIENTENCODING=UTF8
export CLNAME=clustername
export PGDATA=/pgdata/0{base_version}/data
export MANPATH=$MANPATH:$PGHOME/share/man -
Перечитайте переменные окружения для
.bash_profile
/.profile
. Пример команды:. ~/.bash_profile
Шаг 5. Развертывание экземпляра СУБД
Разверните СУБД:
-
обычное окружение:
initdb --locale en_US.UTF-8 -k -D /pgdata/0{base_version}/data/
-
окружение с 1С:
initdb --locale ru_RU.UTF-8 -k -D /pgdata/0{base_version}/data/
Для окружения с 1С крайне важно указать локаль, в будущем она будет использоваться для инициализации БД, которая создает 1С.
Ошибка initdb: error loading libraries: libjsoncpp.so.1
В случае возникновения ошибки:
initdb: error while loading shared libraries: libjsoncpp.so.1: cannot open shared object file: No such file or directory
Необходимо установить пакет:
sudo <package_manager> install libjsoncpp1
Шаг 6. Корректировка конфигурационных файлов
-
Отредактируйте конфигурационный файл
$PGDATA/postgresql.conf
:-
Запустите утилиту с необходимыми настройками и сконфигурируйте файл под нужный профиль:
примечаниеВыберите необходимый профиль нагрузки, каждый из которых адаптирован под конкретные потребности и использует оптимальные значения параметров.
Предупреждение!Запуск утилиты Pangolin Tuner в Docker должен выполняться с опциональными параметрами, определяющими количество CPU и памяти, для корректного расчета значений. Это связано с особенностью вычисления значений утилитой этих характеристик. Фор мируемое значение соответствует общей памяти сервера и CPU, на котором развернут контейнер, а не значениям конкретного контейнера.
-
Профиль OLTP:
/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/0{base_version}/data/postgresql.conf --profile oltp --output-file /pgdata/0{base_version}/data/postgresql.conf.oltp
-
Профиль OLAP:
/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/0{base_version}/data/postgresql.conf --profile olap --output-file /pgdata/0{base_version}/data/postgresql.conf.oltp
-
Профиль 1C (для окружения 1С):
/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/0{base_version}/data/postgresql.conf --profile 1c --output-file /pgdata/0{base_version}/data/postgresql.conf.oltp
-
-
Примените созданный конфигурационный файл:
mv /pgdata/0{base_version}/data/postgresql.conf.oltp /pgdata/0{base_version}/data/postgresql.conf
СведенияPangolin Tuner не конфигурирует индивидуальные настройки, связанные с количеством подключений, либо с активацией расширений. Данные параметры необходимо настроить самостоятельно.
Описание параметров, по которым утилита Pangolin Tuner формирует значение, расположено в разделе «Тюнинг параметров» документа «Руководство администратора».
-
-
Отредактируйте конфигурационный файл
$PGDATA/pg_hba.conf
с помощью текстового редактора (добавьте в конец файла):local all all peer
host all all 0.0.0.0/0 trust
Шаг 7. Запуск СУБД
Запустите экземпляр СУБД Pangolin:
pg_ctl -D /pgdata/0{base_version}/data/ -l /pgerrorlogs/0{base_version}/postgresql.log start
Проверка результата
После завершения процесса установки рекомендуется ознаком иться с информацией в разделе «Чек-лист проверки корректности работы».
Результат
В результате выполнения пошаговой установки по инструкции формируется:
- Готовый к работе экземпляр СУБД в конфигурации standalone.
- Настроенный файл конфигурации (
postgresql.conf
) адаптированный под нужный профиль использования (OLAP
/OLTP
/1C
). - Возможность самостоятельно адаптировать СУБД под индивидуальные требования (настройка расширений, функциональностей и пр.).
Дальнейшие шаги
По окончанию ручной установки доступно:
- установить необходимые компоненты Pangolin (etcd, Pangolin Manager, Pangolin Pooler, и другие);
- настроить кластерную конфигурацию;
- настроить ролевую модель;
- установить расширения;
- подключить и настроить доступные функциональности безопасности продукта СУБД Pangolin и установить другие требуемые функциональности.
Установка компонентов продукта СУБД Pangolin
Установка Pangolin Pooler
Компонент Pangolin Pooler – это доработанная версия pgbouncer, а именно программа, управляющая пулом соединений Pangolin DBMS. Любое конечное приложение может подключитьс я к Pangolin Pooler, как если бы это был непосредственно сервер DBMS, и Pangolin Pooler создаст подключение к реальному серверу, либо задействует одно из ранее установленных подключений. Предназначение Pangolin Pooler — минимизировать издержки, связанные с установлением новых подключений к Pangolin DBMS.
Шаг 1. Установка пакета pangolin-pooler
Выполните установку компонента Pangolin Pooler:
- SberLinux, РЕД ОС, CentOS
- Red Hat Enterprise Linux
- Astra Linux
- Альт СП
sudo dnf install pangolin-pooler-{version_component}-{OS}.x86_64.rpm
sudo yum install pangolin-pooler-{version_component}-{OS}.x86_64.rpm
sudo apt install pangolin-pooler-{version_component}-{OS}_amd64.deb
sudo apt-get install pangolin-pooler-{version_component}-{OS}.x86_64.rpm
Пример заполненной команды:
sudo yum install pangolin-pooler-1.1.0-rhel8.7.x86_64.rpm
Шаг 2. Конфигурирование Pangolin Pooler
Отредактируйте файл pangolin-pooler.ini
:
sudo -iu postgres
sudo vi /etc/pangolin-pooler/pangolin-pooler.ini
Если файл с дефолтным конфигурационным файлом не создался во время установки, создайте его самостоятельно и отредактируйте:
sudo -iu postgres
sudo mkdir -p /etc/pangolin-pooler
sudo chown postgres:postgres /etc/pangolin-pooler
sudo chmod 0700 /etc/pangolin-pooler
sudo vi /etc/pangolin-pooler/pangolin-pooler.ini
sudo chown postgres:postgres /etc/pangolin-pooler/pangolin-pooler.ini
sudo chmod 0600 /etc/pangolin-pooler/pangolin-pooler.ini
Пример файла pangolin-pooler.ini
[databases]
* = host=<ip адрес хоста> port=5433 auth_port=5544 auth_pool_size=1
[pgbouncer]
listen_port = 6544
listen_addr = *
auth_type = scram-sha-256
auth_file = /etc/pangolin-pooler/userlist.txt
auth_proxy = on
auth_failure_threshold = 3
auth_inactivity_period = 60
auth_last_size = 10
log_audit = 1
logfile = /pgerrorlogs/06/pangolin-pooler/pangolin-pooler.log
pidfile = /var/run/user/984/pangolin-pooler/pangolin-pooler.pid
admin_users = pgbouncer
max_client_conn = 400
pool_mode = transaction
min_pool_size = 0
default_pool_size = 105
max_db_connections = 105
max_user_connections = 105
ignore_startup_parameters = extra_float_digits
unix_socket_dir =
ndc_suspending_timeout = 0
client_tls_crl_path = /pg_ssl/crl
server_tls_crl_path = /pg_ssl/crl
client_tls_crl_file = /pg_ssl/crl/intermediate.crl
server_tls_crl_file = /pg_ssl/crl/intermediate.crl
# TLS settings
server_tls_protocols = secure
server_tls_ciphers = secure
server_tls_sslmode = verify-full
client_tls_protocols = secure
client_tls_ciphers = secure
client_tls_sslmode = prefer
server_tls_pkcs12_config_path = /pg_ssl/intermediate/pgbouncer.p12.cfg
client_tls_pkcs12_config_path = /pg_ssl/intermediate/server.p12.cfg
Шаг 3. Конфигурирование userlist.txt
-
Измените файл
userlist.txt
(путь до файла/etc/pangolin-pooler/userlist.txt
) при помощи текстового редактора, добавив следующие строки:"<user>" "<password>"
Пример файла
userlist.txt
:"user" "qwerty"
Или в зашифрованном виде:
"user" "md5175c641eaed0b6c05ae8444b73d789f0"
-
Измените права и владельца файла:
sudo chown postgres:postgres /etc/pangolin-pooler/userlist.txt
sudo chmod 0600 /etc/pangolin-pooler/userlist.txt
Шаг 4. Настройка ротации журналов
-
Выполните конфигурирование ротации журналов. Содержимое файла
pangolin-pooler
перенесите из аналогичного файла на мастере:sudo -iu postgres
sudo vi /etc/logrotate.d/pangolin-poolerПример файла
pangolin-pooler
:/pgerrorlogs/06/pangolin-pooler/pangolin-pooler.log {
rotate 10
su postgres postgres
missingok
sharedscripts
notifempty
compress
daily
create 0600 postgres postgres
postrotate
/bin/kill -HUP `cat /var/run/user/984/pangolin-pooler/pangolin-pooler.pid 2> /dev/null` 2>/dev/null ||true
endscript
} -
Назначьте права:
sudo chown postgres:postgres /etc/logrotate.d/pangolin-pooler
sudo chmod 0644 /etc/logrotate.d/pangolin-pooler
Шаг 5. Запуск Pangolin Pooler
Перезапустите службу Pangolin Pooler:
sudo systemctl restart pangolin-pooler
Установка Pangolin Manager
Компонент Pangolin Manager – это доработанная версия patroni, python-приложения для создания и управления Pangolin DBMS-кластеров работающих на основе потоковой репликации.
Pangolin Manager - это оркестратор кластера Pangolin, который преобразует систему из двух и более узлов Pangolin в высокодоступный кластер с поддержкой контролируемого и аварийного переключения. Также он автоматизирует добавление, обновление и удаление реплик, и реализует одновременное изменение конфигурации Pangolin на всех узлах кластера.
Далее представлены шаги для установки Pangolin Manager. Предполагается, что выбран тип конфигурации cluster, так как данный компонент используется в кластерной конфигурации.
Все шаги процесса установки являются обязательными, кроме шагов с указанием признака в заголовке: опциональный.
Шаг 1. Установка пакета pangolin-manager
-
Установите пакет pangolin-manager-venv, обязательную зависимость пакета pangolin-manager:
- SberLinux, РЕД ОС, CentOS
- Red Hat Enterprise Linux
- Astra Linux
- Альт СП
sudo dnf install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpm
sudo yum install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpm
sudo apt install pangolin-manager-venv-{version_component}_amd64.deb
sudo apt-get install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpm
Пример заполненной команды:
cd distributive
sudo dnf install pangolin-manager-venv-1.1.0-sberlinux8.x86_64.rpm -
Установите пакет pangolin-manager:
- SberLinux, РЕД ОС, CentOS
- Red Hat Enterprise Linux
- Astra Linux
- Альт СП
sudo dnf install pangolin-manager-{version_component}-{OS}.x86_64.rpm
sudo yum install pangolin-manager-{version_component}-{OS}.x86_64.rpm
sudo apt install pangolin-manager-{version_component}_amd64.deb
sudo apt-get install pangolin-manager-{version_component}-{OS}.x86_64.rpm
Пример заполненной команды:
cd distributive
sudo dnf install pangolin-manager-2.1.4-sberlinux8.x86_64.rpm -
Дальнейшие действия удобнее выполнять под системным пользователем
postgres
. Переключитесь на системного пользователяpostgres
:su -iu postgres