Пересоздание узла реплики из дистрибутива
В данном разделе описана процедура инициализации узла реплики в ручную из дистрибутива в случае его потери.
Процесс пересоздания узла реплики СУБД Pangolin представлен в связке Pangolin Manager и Pangolin DCS или etcd. В статье приведены примеры команд для Platform V SberLinux OS Server (SLO) 9.6 и версии продукта 7.3.2. В других версиях могут отличаться имена файлов, директорий, набор компонентов, особенности конфигурации, влияющие на выбор того или иного формата команд, и другое.
Для выполнения процедуры предполагается наличие новой виртуальной машины, на которой будет производиться инсталляция. Параметры виртуальной машины должны соответствовать сохранившимся узлам кластера СУБД Pangolin.
Для наглядности приведенных ниже действий и их последовательности в описываемой процедуре приводятся примеры команд. Допускается выполнение данных действий какими-либо другими средствами или командами, более удобными с точки зрения пользователя.
Обозначение параметров
В примерах команд далее используются параметры для обозначения имен узлов вместо действительных значений:
- узел мастера:
{master_host}и{master_ip}; - узел реплики:
{replica_host}и{replica_ip}; - узел арбитра:
{arbiter_host}и{arbiter_ip}.
Также имеются другие обозначения:
{base_version}– базовая версия продукта (текущая: 7);{short_version}– короткая версия продукта (текущая: 7.3);product_version– полная версия продукта (текущая: 7.3.2);{cluster_id}– ID кластера;{version_component}– версия поставляемого расширения;{path_to_license}– путь до лицензии;{OS}– наименование операционной системы и ее версия.
Каждый пункт будет начинаться с информации в круглых скобках о том, на каких узлах необходимо выполнить данный шаг. Все команды необходимо выполнять последовательно.
Например, сочетание (master, replica) означает, что действия, указанные в пункте, необходимо выполнить сначала на основном узле, затем на реплике (при этом выполнять действия на арбитре не нужно).
Пересоздание узла реплики с компонентами Pangolin Manager и Pangolin DCS
Подготовительные действия
Установите СУБД Pangolin.
Для дальнейшей работы требуется установить ряд необходимых пакетов и их зависимостей, перечень которых указан в разделе «Системные требования» документа «Описание».
На новой виртуальной машине необходимо наличие установленной СУБД Pangolin, в данном примере рассмотрена установка СУБД из скаченного дистрибутива. Так же способ установки описан в подразделе «Ручная пошаговая установка по инструкции» раздела «Установка» документа «Руководство по установке».
Распакуйте скаченный дистрибутив.
-
(replica) Установите rpm/deb-пакеты СУБД:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo dnf install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpmsudo dnf install pangolin-dbms-7-7.3.2-{OS}.x86_64.rpmsudo dnf install pangolin-dbms-7-client-7.3.2-{OS}.x86_64.rpmsudo dnf install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-dbms-7-7.3.2-{OS}.x86_64.rpmsudo apt install pangolin-dbms-7-client-7.3.2-{OS}.x86_64.rpmsudo apt install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt-get install pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo apt-get install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpmsudo apt-get install pangolin-dbms-7-7.3.2-{OS}.x86_64.rpmsudo apt-get install pangolin-dbms-7-client-7.3.2-{OS}.x86_64.rpmsudo apt-get install pangolin-pooler-{version_component}-{OS}.x86_64.rpmПример команды:
sudo rpm -i pangolin-manager-3.1.1-sberlinux9.x86_64.rpmsudo rpm -i pangolin-manager-venv-3.1.1-sberlinux9.x86_64.rpmsudo rpm -i pangolin-dbms-7-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-dbms-7-client-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-pooler-1.6.1-sberlinux9.x86_64.rpmПри необходимости дополнительно установите утилиты из каталога
utilitiesдистрибутива:sudo rpm -i pangolin-auth-password-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-auth-reencrypt-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-certs-rotate-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-diagnostic-tool-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-tuner-1.2.0-sberlinux9.x86_64.rpmsudo rpm -i pangolin-security-utilities-7.3.2-sberlinux9.x86_64.rpm -
(replica) Создайте каталоги для кластера СУБД и хранения логов:
sudo mkdir -p \/pgdata/07/{data,raft_data,raft_dump} \/pgerrorlogs/pangolin-manager/raftsudo chown -R postgres:postgres /pgdatasudo chmod -R 700 /pgdatasudo chown -R postgres:pangolin_users /pgerrorlogssudo chmod -R 770 /pgerrorlogssudo ln -sf /pgdata/07/data /pgdata/data -
(replica) Если на «новой» реплике нет файла лицензии, его необходимо перенести и создать соответствующие директории:
sudo mkdir /opt/pangolin-licensesudo cp {path_to_license}/license.json /opt/pangolin-license/license.jsonsudo chown -R postgres:pangolin_users /opt/pangolin-licensesudo chmod -R 770 /opt/pangolin-license -
(replica) В случае необходимости, выполните генерацию серверного сертификата и перенос клиентских сертификатов с мастера для того, чтобы все сертификаты кластера были подписаны одним
root-сертификатом. -
(replica) Отредактируйте конфигурационный файл Pangolin Manager
/etc/pangolin-manager/postgres.yml. Скопируйте содержимоеpostgres.ymlс мастера и выполнить изменение адресов, имен узлов в секцияхpg_hba,pangolin_dcs. Измените пароли в секциях:restapietcdpostgresql\authentication
-
(replica) Найдите в файле
.bash_profileна узле мастера строки с префиксом:'alias members','alias elist','alias health'и добавьте их в конец аналогичного файла на реплике. Откорректируйте имена узлов и IP-адреса на значения, соответствующие узлу реплики.Под пользователем
postgres, находясь в домашнем каталоге, выполните команду:nano .bash_profilealias members="pangolin-dcs-ctl member list"alias elist="pangolin-dcs-ctl endpoint status --endpoints='{replica_host}:{replica_ip},{master_host}:{master_ip},{arbiter_host}:{arbiter_ip}'"alias health="pangolin-dcs-ctl endpoint health --endpoints='{replica_host}:{replica_ip},{master_host}:{master_ip},{arbiter_host}:{arbiter_ip}'"
Добавление реплики в кластер
Процедура 1. Мягкий способ без замены всех узлов
Процедура 1 применяется, если:
- в Pangolin Manager не включена аутентификация;
- известен пароль Pangolin Manager пользователя
root.
Включенная аутентификация подразумевает собой проверку учетных данных при подключении пользователя, таких как root, patronietcd, чтобы все действия над кластером выполняли только авторизованные лица.
В противном случае перейдите к «Процедуре 2», где производится полная замена всех узлов.
Шаги к выполнению данного способа описаны в одноименном подразделе «Процедура 1 – Мягкий способ без замены всех узлов» раздела «Пересоздание узла арбитра».
Процедура 2. Способ с полной заменой всех узлов
-
(master, replica, arbiter) Выполните остановку компонента Pangolin Manager:
sudo systemctl stop pangolin-manager.service -
(master, replica, arbiter) Выполните удаление директорий и их содержимого:
sudo rm -rf /pgdata/07/raft_dumpsudo rm -rf /pgdata/07/raft_dataПересоздайте директории, измените привелегии:
sudo mkdir /pgdata/07/raft_datasudo mkdir /pgdata/07/raft_dumpsudo chmod -R 770 /pgdata/07/raft_datasudo chmod -R 770 /pgdata/07/raft_dumpsudo chown postgres:postgres /pgdata/07/raft_datasudo chown postgres:postgres /pgdata/07/raft_dump -
(master, replica, arbiter) Запустите Pangolin Manager:
sudo systemctl daemon-reloadsudo systemctl start pangolin-manager.serviceПроверьте статус службы на каждом узле:
sudo systemctl status pangolin-manager.service -
(master) Запишите пользователей в Pangolin Manager и активируйте аутентификацию:
sudo su - postgres/opt/pangolin-manager/bin/pangolin-dcs-ctl user add root:'<password>'/opt/pangolin-manager/bin/pangolin-dcs-ctl user add patronietcd:'etcd_password'/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<password>' role add pangolindcsapi/opt/pangolin-manager/bin/pangolin-dcs-ctl role grant-permission pangolindcsapi readwrite --prefix /service//opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<password>' user grant-role patronietcd pangolindcsapi/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<password>' auth enableЕсли необходимо, пароль можно засекретить (на узлах мастера и реплики), чтобы впоследствии поместить в
postgres.yml. Утилита pg_auth_password используется для засекречивания, запрашивает пароль и выдает его засекреченный вид:'pg_auth_password enc'.Проверьте статус кластера:
pangolin-dcs-ctl member listpangolin-dcs-ctl endpoint status --endpoints='{replica_host}:{replica_ip},{master_host}:{master_ip},{arbiter_host}:{arbiter_ip}'pangolin-dcs-ctl endpoint health --endpoints='{replica_host}:{replica_ip},{master_host}:{master_ip},{arbiter_host}:{arbiter_ip}' -
(master, replica, arbiter) Если был изменен пароль пользователя
patronietcd, необходимо обновить его в конфигурационных файлах Pangolin Manager на мастере и реплике.Пароль, засекреченный на мастере, должен быть прописан в
postgres.ymlмастера, а пароль, засекреченный на реплике, — вpostgres.ymlреплики.Заполните новые пароли в
postgres.yml:sudo su - postgresnano /etc/pangolin-manager/postgres.ymlВыполните актуализацию файлов
postgresql.ymlна всех узлах кластера, если для «новой» реплики были изменены адрес и имя, так же если были изменены пароли дляpatronietcd, следует обратить внимание на такие параметры, как:self_addrpartner_addrsconnect_addresspartner_address
Затем выполните:
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml reload $CLUSTERNAMEsudo systemctl restart pangolin-manager -
(master) Выведите Pangolin Manager из режима паузы:
sudo su - postgrespangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml resume
Пересоздание узла реплики с компонентами Pangolin Manager и etcd
Подготовительные действия
Установите СУБД Pangolin.
Для дальнейшей работы требуется установить ряд необходимых пакетов и их зависимостей, перечень которых указан в разделе «Системные требования» документа «Описание».
На новой виртуальной машине необходимо наличие установленной СУБД Pangolin, в данном примере рассмотрена установка СУБД из скаченного дистрибутива. Так же способ установки описан в подразделе «Ручная пошаговая установка по инструкции» раздела «Установка» документа «Руководство по установке».
Распакуйте уже скаченный дистрибутив.
-
(replica) Установите rpm/deb-пакеты СУБД:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo dnf install pangolin-dbms-7-7.3.2-{OS}.x86_64.rpmsudo dnf install pangolin-dbms-7-client-7.3.2-{OS}.x86_64.rpmsudo dnf install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-dbms-7-7.3.2-{OS}.x86_64.rpmsudo apt install pangolin-dbms-7-client-7.3.2-{OS}.x86_64.rpmsudo apt install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt-get install pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo apt-get install pangolin-dbms-7-7.3.2-{OS}.x86_64.rpmsudo apt-get install pangolin-dbms-7-client-7.3.2-{OS}.x86_64.rpmsudo apt-get install pangolin-pooler-{version_component}-{OS}.x86_64.rpmПример команды:
sudo rpm -i pangolin-manager-3.1.1-sberlinux9.x86_64.rpmsudo rpm -i pangolin-dbms-7-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-dbms-7-client-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-pooler-1.6.1-sberlinux9.x86_64.rpmПри необходимости дополнительно установите утилиты из каталога
utilitiesдистрибутива:sudo rpm -i pangolin-auth-password-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-auth-reencrypt-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-certs-rotate-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-diagnostic-tool-7.3.2-sberlinux9.x86_64.rpmsudo rpm -i pangolin-tuner-1.2.0-sberlinux9.x86_64.rpmsudo rpm -i pangolin-security-utilities-7.3.2-sberlinux9.x86_64.rpm -
(replica) Создайте каталоги для кластера СУБД и хранения логов:
mkdir -p /pgdata/07/datamkdir -p /pgerrorlogsmkdir /pgerrorlogs/pangolin-managerchown -R postgres:postgres /pgdatachmod -R 700 /pgdataln -s /pgdata/07/data /pgdata/datachown -R postgres:postgres /pgerrorlogs/chmod -R 770 /pgerrorlogs/ -
(replica) Если на «новой» реплике нет файла лицензии, его необходимо перенести и создать соответствующие директории:
sudo mkdir /opt/pangolin-licensesudo cp {path_to_license}/license.json /opt/pangolin-license/license.jsonsudo chown -R postgres:pangolin_users /opt/pangolin-licensesudo chmod -R 770 /opt/pangolin-license -
(replica) В случае необходимости, выполните генерацию серверного сертификата и перенос клиентских сертификатов с мастера для того, чтобы все сертификаты кластера были подписаны одним
root-сертификатом. -
(master) Переведите Pangolin Manager в режим паузы:
sudo su - postgrespangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml pause
Установка и настройка etcd
-
(replica) Опционально выполните очистку узла от предыдущих инсталляций, если это необходимо (если виртуальная машина новая, то выполнять данное действие не требуется):
sudo systemctl stop etcdsudo yum remove etcd -ysudo rm -rf /var/lib/etcdsudo rm -rf /etc/etcdsudo rm /usr/lib/systemd/system/etcd.service -
(replica) Отредактировать файл конфигурации компонента etcd, пример конфигурации:
etcd.conf
sudo nano /etc/etcd/etcd.confETCD_NAME="{replica_host}"ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:{IP-address}"ETCD_ADVERTISE_CLIENT_URLS="http://{replica_host}:{replica_ip}"ETCD_LISTEN_PEER_URLS="http://0.0.0.0:{IP-address}"ETCD_INITIAL_ADVERTISE_PEER_URLS="http://{replica_host}:{replica_ip}"ETCD_INITIAL_CLUSTER_TOKEN="{etcd_clustername}"ETCD_INITIAL_CLUSTER="{master_host}=http://{master_host}:{master_ip},{arbiter_host}=http://{arbiter_host}:{arbiter_ip},{replica_host}=http://{replica_host}:{replica_ip}"ETCD_INITIAL_CLUSTER_STATE="new"ETCD_DATA_DIR="/var/lib/etcd"ETCD_ELECTION_TIMEOUT="5000"ETCD_HEARTBEAT_INTERVAL="1000"ETCD_ENABLE_V2="true"ETCD_LOG_OUTPUTS="/pgerrorlogs/etcd/etcd.log"ETCD_LOGGER="zap"Следует изменить следующие параметры:
ETCD_NAMEETCD_ADVERTISE_CLIENT_URLSETCD_INITIAL_CLUSTERETCD_INITIAL_ADVERTISE_PEER_URLSETCD_LOG_OUTPUTS
-
(replica) Запуск etcd будет осуществляться под пользователем
postgres, поэтому поправьте владельцев и права на каталоги с хранилищемetcd, конфигурациейetcd:sudo chown postgres:postgres /var/lib/etcdsudo chmod -R 700 /var/lib/etcdsudo chown -R postgres:postgres /etc/etcdsudo chmod -R 700 /etc/etcdПересоздайте директории для хранения логов:
sudo mkdir -p /pgerrorlogs/etcdsudo chown -R postgres:postgres /pgerrorlogssudo chmod -R 770 /pgerrorlogs -
(replica) Отредактируйте unit-файл службы
etcd:Измените поле
Userв файлеetcd.serviceна пользователя, от имени которого будет запущен сервис, в примере указанpostgres:sudo nano /usr/lib/systemd/system/etcd.service[Unit]Description=etcd ServerAfter=network.targetAfter=network-online.targetWants=network-online.target[Service]Type=notifyWorkingDirectory=/var/lib/etcd/EnvironmentFile=-/etc/etcd/etcd.confUser=postgres# set GOMAXPROCS to number of processorsExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) ionice -c2 -n0 /usr/bin/etcd"Restart=on-failureLimitNOFILE=65536[Install]WantedBy=multi-user.target -
(replica) Найдите в файле
.bash_profileна узле мастера строки с префиксом:'alias members','alias elist','alias elog','alias health'и добавьте их в конец аналогичного файла на реплике. Откорректируйте имена узлов и IP-адреса на значения, соответствующие узлу реплики.Под пользователем
postgres, находясь в домашнем каталоге, выполните команду:nano .bash_profilealias members='ETCDCTL_API=3 etcdctl --endpoints={replica_host}:{replica_ip},{master_host}:{master_ip},{arbiter_host}:{arbiter_ip} member list -w table'alias elist='ETCDCTL_API=3 etcdctl --endpoints={replica_host}:{replica_ip},{master_host}:{master_ip},{arbiter_host}:{arbiter_ip} endpoint status -w table --cluster'alias elog='cat /pgerrorlogs/etcd/etcd.log'alias health='ETCDCTL_API=2 etcdctl --endpoints http://{replica_host}:{replica_ip},http://{master_host}:{master_ip},http://{arbiter_host}:{arbiter_ip} cluster-health 2>&1'
Добавление реплики в кластер
Процедура 1. Мягкий способ без замены всех узлов
Процедура 1 применяется, если:
- в
etcdне включена аутентификация; - известен пароль
etcdпользователяroot.
Включенная аутентификация подразумевает собой проверку учетных данных при подключении пользователя, таких как root, patronietcd, чтобы все действия над кластером выполняли только авторизованные лица.
В противном случае перейдите к «Процедуре 2», где производится полная замена всех узлов.
Шаги к выполнению данного способа описаны в одноименном подразделе «Процедура 1 – Мягкий способ без замены всех узлов» раздела «Пересоздание узла арбитра».
Процедура 2. Способ с полной заменой всех узлов
-
(master, replica, arbiter) Остановите службу
etcd:sudo systemctl stop etcdПересоздайте директории:
sudo rm -rf /var/lib/etcdsudo mkdir -p /var/lib/etcdsudo chown postgres:postgres /var/lib/etcdsudo chmod 700 /var/lib/etcd -
(master, replica, arbiter) Запустите службу
etcd:sudo systemctl daemon-reloadsudo systemctl start etcd -
(master) Укажите пользователей в
etcdи включите аутентификацию:В зависимости от того, какая версия API указана в
postgres.yml—etcd,etcd3или другая, — создание пользователей выполняется для этой же версии.Пользователь
rootявляется техническим и используется только во время данного конфигурирования. По умолчанию он не используется после установки.sudo su - postgresETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} user add root:'<password>'--назначить роль root пользователю rootETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} user grant-role root rootETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} user add patronietcd:'<password>'ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} role add patroniETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} role grant-permission patroni readwrite --prefix=true /service/ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} user grant-role patronietcd patroniETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} auth enableETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} user add root:'<password>'ETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} user add patronietcd:'<password>'ETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} role add patroniETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} role grant patroni -path '/service/*' -readwriteETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} user grant patronietcd -roles patroniETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} auth enableETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} -u root:'<password>' role revoke guest -path '/*' --readwriteETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} member list -w tableETCDCTL_API=3 etcdctl --endpoints={replica_host}:{replica_ip} --user=root:'<password>' user listЕсли необходимо, пароль можно засекретить (на узле мастера и реплики), чтобы впоследствии поместить в
postgres.yml. Утилита pg_auth_password используется для засекречивания, запрашивает пароль и выдает его засекреченный вид:'pg_auth_password enc'.
Корректировка конфигурационного файла на мастере
-
(master, replica) Если был изменен пароль пользователя
patronietcd, необходимо обновить его в конфигурационных файлах Pangolin Manager на мастере и реплике.Пароль, засекреченный на мастере, должен быть прописан в
postgres.ymlмастера, а пароль, засекреченный на реплике, — вpostgres.ymlреплики.Заполните новые пароли в
postgres.yml:sudo su - postgresnano /etc/pangolin-manager/postgres.ymlДополнительно, на реплике выполните изменения в
postgres.yml. Скопируйте содержимоеpostgres.ymlс мастера и выполните изменение адресов, имен узлов в секцияхpg_hba,etcd. Измените пароли в секциях:restapietcdpostgresql\authentication
-
(replica) Заполните скрипт управления службой Pangolin Pooler - содержимое перенесите из аналогичного файла на мастере:
sudo nano /opt/pangolin-pooler/bin/pangolin-pooler-restart.shsudo chown postgres:postgres /opt/pangolin-pooler/bin/pangolin-pooler-restart.shsudo chmod 500 /opt/pangolin-pooler/bin/pangolin-pooler-restart.sh -
(replica) Настройте хранилище паролей для пользователя Pangolin Manager.
Если текущий пароль Pangolin Manager неизвестен, то задается новый пароль, а затем он записывается в хранилища паролей на мастере и реплике.
(master) Измените пароль в СУБД на мастере, если пароль Pangolin Manager был изменен:
ALTER USER "patroni" WITH ENCRYPTED PASSWORD '<password>';Настройте утилиту хранилища паролей
pg_auth_config. Конфигурирование производится путем добавления соответствующих записей в хранилище паролей.(replica) Добавьте записи в хранилище паролей:
sudo su - postgrespg_auth_config add -h <host> -p <port> -U <username> -d <database>На мастере удалите записи предыдущей реплики.
Введите пароль, который будет хранится в хранилище. Пример результата добавления паролей в хранилище (после запуска Pangolin Manager и СУБД соответственно):
pg_auth_config check -
(replica) Выполните настройку хранилища паролей для пользователя
backup_user.Если текущий пароль
backup_userнеизвестен, то задается новый пароль, а затем он записывается в хранилища паролей на мастере и реплике. Если парольbackup_userизвестен – достаточно выполнить только пункт 8 данного подраздела.(master) Измените пароль в СУБД на мастере:
ALTER USER "backup_user" WITH PASSWORD 'pass';(replica, на master следует удалить записи предыдущей реплики) Настройте утилиту хранилища паролей
pg_auth_config. Конфигурирование производится путем добавления соответствующих записей в хранилище паролей.-
Добавьте записи в хранилище паролей:
sudo su - postgrespg_auth_config add -h <host> -p <port> -U <username> -d <database> -
Введите пароль, который будет хранится в хранилище. Пример результата добавления паролей в хранилище (после запуска Pangolin Manager и СУБД соответственно):
pg_auth_config check
-
Запуск реплики
-
(master) В случае изменения паролей, адресов узлов, настроек СУБД Pangolin актуализируйте файл
postgres.ymlи выведите Pangolin Manager из режима паузы:sudo systemctl restart pangolin-managersudo su - postgrespangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml resume -
(replica) Запустите Pangolin Manager, который восстановит реплику в соответствии с
bootstrap-логикой файлаpostgres.yml:sudo systemctl daemon-reloadВ результате получится работающий кластер с восстановленной репликой.