Перейти к основному содержимому

Пересоздание узла реплики из дистрибутива

В данном разделе описана процедура инициализации узла реплики в ручную из дистрибутива в случае его потери.

Процесс пересоздания узла реплики СУБД 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, в данном примере рассмотрена установка СУБД из скаченного дистрибутива. Так же способ установки описан в подразделе «Ручная пошаговая установка по инструкции» раздела «Установка» документа «Руководство по установке».

Распакуйте скаченный дистрибутив.

  1. (replica) Установите rpm/deb-пакеты СУБД:

       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.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
  2. (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
  3. (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
  4. (replica) В случае необходимости, выполните генерацию серверного сертификата и перенос клиентских сертификатов с мастера для того, чтобы все сертификаты кластера были подписаны одним root-сертификатом.

  5. (replica) Отредактируйте конфигурационный файл Pangolin Manager /etc/pangolin-manager/postgres.yml. Скопируйте содержимое postgres.yml с мастера и выполнить изменение адресов, имен узлов в секциях pg_hba, pangolin_dcs. Измените пароли в секциях:

    • restapi
    • etcd
    • postgresql\authentication
  6. (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. Способ с полной заменой всех узлов

  1. (master, replica, arbiter) Выполните остановку компонента Pangolin Manager:

    sudo systemctl stop pangolin-manager.service
  2. (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
  3. (master, replica, arbiter) Запустите Pangolin Manager:

    sudo systemctl daemon-reload
    sudo systemctl start pangolin-manager.service

    Проверьте статус службы на каждом узле:

    sudo systemctl status pangolin-manager.service
  4. (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}'
  5. (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_addr
    • partner_addrs
    • connect_address
    • partner_address

    Затем выполните:

    pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml reload $CLUSTERNAME
    sudo systemctl restart pangolin-manager
  6. (master) Выведите Pangolin Manager из режима паузы:

    sudo su - postgres
    pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml resume

Пересоздание узла реплики с компонентами Pangolin Manager и etcd

Подготовительные действия

Установите СУБД Pangolin.

Для дальнейшей работы требуется установить ряд необходимых пакетов и их зависимостей, перечень которых указан в разделе «Системные требования» документа «Описание».

На новой виртуальной машине необходимо наличие установленной СУБД Pangolin, в данном примере рассмотрена установка СУБД из скаченного дистрибутива. Так же способ установки описан в подразделе «Ручная пошаговая установка по инструкции» раздела «Установка» документа «Руководство по установке».

Распакуйте уже скаченный дистрибутив.

  1. (replica) Установите rpm/deb-пакеты СУБД:

       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.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
  2. (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/
  3. (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
  4. (replica) В случае необходимости, выполните генерацию серверного сертификата и перенос клиентских сертификатов с мастера для того, чтобы все сертификаты кластера были подписаны одним root-сертификатом.

  5. (master) Переведите Pangolin Manager в режим паузы:

    sudo su - postgres
    pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml pause

Установка и настройка etcd

  1. (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
  2. (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_NAME
    • ETCD_ADVERTISE_CLIENT_URLS
    • ETCD_INITIAL_CLUSTER
    • ETCD_INITIAL_ADVERTISE_PEER_URLS
    • ETCD_LOG_OUTPUTS
  3. (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
  4. (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
  5. (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. Способ с полной заменой всех узлов

  1. (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
  2. (master, replica, arbiter) Запустите службу etcd:

    sudo systemctl daemon-reload
    sudo systemctl start etcd
  3. (master) Укажите пользователей в etcd и включите аутентификацию:

    В зависимости от того, какая версия API указана в postgres.ymletcd, 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'.

Корректировка конфигурационного файла на мастере

  1. (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. Измените пароли в секциях:

    • restapi
    • etcd
    • postgresql\authentication
  2. (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
  3. (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
  4. (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

Запуск реплики

  1. (master) В случае изменения паролей, адресов узлов, настроек СУБД Pangolin актуализируйте файл postgres.yml и выведите Pangolin Manager из режима паузы:

    sudo systemctl restart pangolin-manager

    sudo su - postgres
    pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml resume
  2. (replica) Запустите Pangolin Manager, который восстановит реплику в соответствии с bootstrap-логикой файла postgres.yml:

    sudo systemctl daemon-reload

    В результате получится работающий кластер с восстановленной репликой.