Восстановление без развертывания

  1. Определите лидера кластера Patroni командой, выполненной от пользователя postgres на клиенте, входящем в кластер.

    patronictl -d etcd://адрес_хоста_etcd list patroni_cluster_1
  2. Отключите элементы кластера с ролью replica.

  3. Отключите элемент кластера с ролью leader.

  4. Запустите процесс восстановления без развертывания в каталог для восстановления на клиенте с ролью leader.

  5. После завершения задачи по восстановлению переместите файлы из каталога для восстановления в целевые каталоги:

    • из каталога для восстановления /restore_dir/number.rest/var/lib/postgresql/11/main (где number — номер резервной копии) в /var/lib/postgresql/11/main с заменой файлов;

    • из каталога для восстановления /restore_dir/number.rest/opt/rubackup/mnt/postgresql_archives (где number — номер резервной копии) WAL-файлы в /opt/rubackup/mnt/postgresql_archives/.

  6. Убедитесь, что у перемещенных файлов назначены владелец и группа postgres.

  7. На клиенте с ролью leader от пользователя postgres удалите кластер командой:

    patronictl -c /etc/patroni/config.yml remove patroni_cluster_1

    Подтвердите удаление кластера: на первый запрос введите имя кластера, на второй запрос ввести Yes I am aware.

    Пример 1. Подтверждение удаления кластера
    +--------+------+------+-------+----+-----------+
    | Member | Host | Role | State | TL | Lag in MB |
    + Cluster: patroni_cluster_l (715859822136041482+
    +--------+------+------+-------+----+-----------+
    Please confirm the cluster name to remove: patroni_cluster_l
    You are about to remove all information in DCS for patroni_cluster_l, please type: "Yes I am aware": Yes I am aware
  8. Запустите элемент кластера на клиенте с ролью leader.

  9. Запустите элементы кластера на клиенте с ролью replica.

  10. Убедитесь, что все элементы имеют статус running (от имени пользователя postgres на клиенте, входящем в кластер).

    patronictl -d etcd://адрес_хоста_etcd list patroni_cluster_1