Восстановление без развертывания
-
Определите лидера кластера Patroni командой, выполненной от пользователя
postgres
на клиенте, входящем в кластер.patronictl -d etcd://адрес_хоста_etcd list patroni_cluster_1
-
Отключите элементы кластера с ролью replica.
-
Отключите элемент кластера с ролью leader.
-
Запустите процесс восстановления без развертывания в каталог для восстановления на клиенте с ролью leader.
-
После завершения задачи по восстановлению переместите файлы из каталога для восстановления в целевые каталоги:
-
из каталога для восстановления
/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/
.
-
-
Убедитесь, что у перемещенных файлов назначены владелец и группа
postgres
. -
На клиенте с ролью 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
-
Запустите элемент кластера на клиенте с ролью leader.
-
Запустите элементы кластера на клиенте с ролью replica.
-
Убедитесь, что все элементы имеют статус running (от имени пользователя
postgres
на клиенте, входящем в кластер).patronictl -d etcd://адрес_хоста_etcd list patroni_cluster_1