Пересоздание узла реплики из дистрибутива
В данном разделе описана процедура инициализации узла реплики в ручную из дистрибутива в случае его потери.
Процесс пересоздания узла реплики СУБД Pangolin представлен в связке Pangolin Manager и Pangolin DCS или etcd. В статье приведены примеры команд для Platform V SberLinux OS Server (SLO) 9.6 и версии продукта 8.2.0. В других версиях могут отличаться имена файлов, директорий, набор компонентов, особенности конфигурации, влияющие на выбор того или иного формата команд, и другое.
Для выполнения процедуры предполагается наличие новой виртуальной машины, на которой будет производиться инсталляция. Параметры виртуальной машины должны соответствовать сохранившимся узлам кластера СУБД Pangolin.
Для наглядности приведенных ниже действий и их последовательности в описываемой процедуре приводятся примеры команд. Допускается выполнение данных действий какими-либо другими средствами или командами, более удобными с точки зрения пользователя.
Обозначение параметров
В примерах команд далее используются параметры для обозначения имен узлов вместо действительных значений:
- узел мастера:
{master_host}и{master_ip}; - узел реплики:
{replica_host}и{replica_ip}; - узел арбитра:
{arbiter_host}и{arbiter_ip}.
Также имеются другие обозначения:
{base_version}– базовая версия продукта (текущая: 8);{short_version}– короткая версия продукта (текущая: 8.2);product_version– полная версия продукта (текущая: 8.2.0);{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.rpm
sudo dnf install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpm
sudo dnf install pangolin-dbms-8-8.2.0-{OS}.x86_64.rpm
sudo dnf install pangolin-dbms-8-client-8.2.0-{OS}.x86_64.rpm
sudo dnf install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-manager-{version_component}-{OS}.x86_64.rpm
sudo apt install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpm
sudo apt install pangolin-dbms-8-8.2.0-{OS}.x86_64.rpm
sudo apt install pangolin-dbms-8-client-8.2.0-{OS}.x86_64.rpm
sudo apt install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt-get install pangolin-manager-{version_component}-{OS}.x86_64.rpm
sudo apt-get install pangolin-manager-venv-{version_component}-{OS}.x86_64.rpm
sudo apt-get install pangolin-dbms-8-8.2.0-{OS}.x86_64.rpm
sudo apt-get install pangolin-dbms-8-client-8.2.0-{OS}.x86_64.rpm
sudo apt-get install pangolin-pooler-{version_component}-{OS}.x86_64.rpmПример команды:
sudo rpm -i pangolin-manager-2.2.2-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-manager-venv-2.1.1-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-dbms-8-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-dbms-8-client-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-pooler-1.6.1-sberlinux9.x86_64.rpmПри необходимости дополнительно установите утилиты из каталога
utilitiesдистрибутива:sudo rpm -i pangolin-auth-password-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-auth-reencrypt-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-certs-rotate-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-diagnostic-tool-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-tuner-1.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-security-utilities-8.2.0-sberlinux9.x86_64.rpm -
(replica) Создайте каталоги для кластера СУБД и хранения логов:
sudo mkdir -p \
/pgdata/0{base_version}/{data,raft_data,raft_dump} \
/pgerrorlogs/pangolin-manager/raft
sudo chown -R postgres:postgres /pgdata
sudo chmod -R 700 /pgdata
sudo chown -R postgres:pangolin_users /pgerrorlogs
sudo chmod -R 770 /pgerrorlogs
sudo ln -sf /pgdata/0{base_version}/data /pgdata/data -
(replica) Если на «новой» реплике нет файла лицензии, его необходимо перенести и создать соответствующие директории:
sudo mkdir /opt/pangolin-license
sudo cp {path_to_license}/license.json /opt/pangolin-license/license.json
sudo chown -R postgres:pangolin_users /opt/pangolin-license
sudo 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_profile
alias 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/0{base_version}/raft_dump
sudo rm -rf /pgdata/0{base_version}/raft_dataПересоздайте директории, измените привелегии:
sudo mkdir /pgdata/0{base_version}/raft_data
sudo mkdir /pgdata/0{base_version}/raft_dump
sudo chmod -R 770 /pgdata/0{base_version}/raft_data
sudo chmod -R 770 /pgdata/0{base_version}/raft_dump
sudo chown postgres:postgres /pgdata/0{base_version}/raft_data
sudo chown postgres:postgres /pgdata/0{base_version}/raft_dump -
(master, replica, arbiter) Запустите Pangolin Manager:
sudo systemctl daemon-reload
sudo 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 list
pangolin-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 - postgres
nano /etc/pangolin-manager/postgres.ymlВыполните актуализацию файлов
postgresql.ymlна всех узлах кластера, если для «новой» реплики были изменены адрес и имя, так же если были изменены пароли дляpatronietcd, следует обратить внимание на такие параметры, как:self_addrpartner_addrsconnect_addresspartner_address
Затем выполните:
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml reload $CLUSTERNAME
sudo systemctl restart pangolin-manager -
(master) Выведите Pangolin Manager из режима паузы:
sudo su - postgres
pangolin-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.rpm
sudo dnf install pangolin-dbms-8-8.2.0-{OS}.x86_64.rpm
sudo dnf install pangolin-dbms-8-client-8.2.0-{OS}.x86_64.rpm
sudo dnf install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-manager-{version_component}-{OS}.x86_64.rpm
sudo apt install pangolin-dbms-8-8.2.0-{OS}.x86_64.rpm
sudo apt install pangolin-dbms-8-client-8.2.0-{OS}.x86_64.rpm
sudo apt install pangolin-pooler-{version_component}-{OS}.x86_64.rpmsudo apt-get install pangolin-manager-{version_component}-{OS}.x86_64.rpm
sudo apt-get install pangolin-dbms-8-8.2.0-{OS}.x86_64.rpm
sudo apt-get install pangolin-dbms-8-client-8.2.0-{OS}.x86_64.rpm
sudo apt-get install pangolin-pooler-{version_component}-{OS}.x86_64.rpmПример команды:
sudo rpm -i pangolin-manager-2.2.2-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-dbms-8-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-dbms-8-client-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-pooler-1.6.1-sberlinux9.x86_64.rpmПри необходимости дополнительно установите утилиты из каталога
utilitiesдистрибутива:sudo rpm -i pangolin-auth-password-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-auth-reencrypt-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-certs-rotate-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-diagnostic-tool-8.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-tuner-1.2.0-sberlinux9.x86_64.rpm
sudo rpm -i pangolin-security-utilities-8.2.0-sberlinux9.x86_64.rpm -
(replica) Создайте каталоги для кластера СУБД и хранения логов:
mkdir -p /pgdata/0{base_version}/data
mkdir -p /pgerrorlogs
mkdir /pgerrorlogs/pangolin-manager
chown -R postgres:postgres /pgdata
chmod -R 700 /pgdata
ln -s /pgdata/0{base_version}/data /pgdata/data
chown -R postgres:postgres /pgerrorlogs/
chmod -R 770 /pgerrorlogs/ -
(replica) Если на «новой» реплике нет файла лицензии, его необходимо перенести и создать соответствующие директории:
sudo mkdir /opt/pangolin-license
sudo cp {path_to_license}/license.json /opt/pangolin-license/license.json
sudo chown -R postgres:pangolin_users /opt/pangolin-license
sudo chmod -R 770 /opt/pangolin-license -
(replica) В случае необходимости, выполните генерацию серверного сертификата и перенос клиентских сертификатов с мастера для того, чтобы все сертификаты кластера были подписаны одним
root-сертификатом. -
(master) Переведите Pangolin Manager в режим паузы:
sudo su - postgres
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml pause
Установка и настройка etcd
-
(replica) Опционально выполните очистку узла от предыдущих инсталляций, если это необходимо (если виртуальная машина новая, то выполнять данное действие не требуется):
sudo systemctl stop etcd
sudo yum remove etcd -y
sudo rm -rf /var/lib/etcd
sudo rm -rf /etc/etcd
sudo rm /usr/lib/systemd/system/etcd.service -
(replica) Отредактировать файл конфигурации компонента etcd, пример конфигурации:
etcd.conf
sudo nano /etc/etcd/etcd.conf
ETCD_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/etcd
sudo chmod -R 700 /var/lib/etcd
sudo chown -R postgres:postgres /etc/etcd
sudo chmod -R 700 /etc/etcdПересоздайте директории для хранения логов:
sudo mkdir -p /pgerrorlogs/etcd
sudo chown -R postgres:postgres /pgerrorlogs
sudo chmod -R 770 /pgerrorlogs -
(replica) Отредактируйте unit-файл службы
etcd:Измените поле
Userв файлеetcd.serviceна пользователя, от имени которого будет запущен сервис, в примере указанpostgres:sudo nano /usr/lib/systemd/system/etcd.service
[Unit]
Description=etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=postgres
# set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) ionice -c2 -n0 /usr/bin/etcd"
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target -
(replica) Найдите в файле
.bash_profileна узле мастера строки с префиксом:'alias members','alias elist','alias elog','alias health'и добавьте их в конец аналогичного файла на реплике. Откорректируйте имена узлов и IP-адреса на значения, соответствующие узлу реплики.Под пользователем
postgres, находясь в домашнем каталоге, выполните команду:nano .bash_profile
alias 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/etcd
sudo mkdir -p /var/lib/etcd
sudo chown postgres:postgres /var/lib/etcd
sudo chmod 700 /var/lib/etcd -
(master, replica, arbiter) Запустите службу
etcd:sudo systemctl daemon-reload
sudo systemctl start etcd -
(master) Укажите пользователей в
etcdи включите аутентификацию:В зависимости от того, какая версия API указана в
postgres.yml—etcd,etcd3или другая, — создание пользователей выполняется для этой же версии.Пользователь
rootявляется техническим и используется только во время данного конфигурирования. По умолчанию он не используется после установки.sudo su - postgres
ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} user add root:'<password>'
--назначить роль root пользователю root
ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} user grant-role root root
ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} user add patronietcd:'<password>'
ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} role add patroni
ETCDCTL_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 patroni
ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} auth enable
ETCDCTL_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 patroni
ETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} role grant patroni -path '/service/*' -readwrite
ETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} user grant patronietcd -roles patroni
ETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} auth enable
ETCDCTL_API=2 etcdctl --endpoints http://{master_host}:{master_ip} -u root:'<password>' role revoke guest -path '/*' --readwrite
ETCDCTL_API=3 etcdctl --endpoints={master_host}:{master_ip} member list -w table
ETCDCTL_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 - postgres
nano /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.sh
sudo chown postgres:postgres /opt/pangolin-pooler/bin/pangolin-pooler-restart.sh
sudo 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 - postgres
pg_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 - postgres
pg_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-manager
sudo su - postgres
pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml resume -
(replica) Запустите Pangolin Manager, который восстановит реплику в соответствии с
bootstrap-логикой файлаpostgres.yml:sudo systemctl daemon-reloadВ результате получится работающий кластер с восстановленной репликой.