Удалённое восстановление в pg_probackup3 — это функциональность, позволяющая восстанавливать резервные копии напрямую на удалённый сервер без необходимости копировать файлы архива вручную. Такой подход существенно сокращает время восстановления и количество ручных операций при аварийном восстановлении, миграции или автоматическом развёртывании.
Функциональность удалённого восстановления состоит из следующих основных компонентов:
Команда send-backup в утилите pg_probackup3 для передачи данных через указанный порт на удалённый сервер с использованием многопоточности.
Утилита pgpro_backupstream, запускаемая вручную на удалённом сервере, для получения, распаковки и восстановления данных.
Для выполнения удалённого восстановления необходимо соблюдать следующие условия:
В локальной системе:
Должны быть установлены утилита pg_probackup3 и библиотека libpgprobackup.
Должен быть обеспечен доступ к каталогу резервных копий.
В удалённой системе:
Должна быть установлена утилита pgpro_backupstream.
pgpro_backupstream запускается вручную.
Каталог PGDATA должен быть пустым и открытым для записи.
На данный момент инкрементальное восстановление в удалённом режиме не поддерживается.
Выбранный порт должен быть открыт и доступен для входящих подключений.
Чтобы восстановить экземпляр на удалённый сервер, выполните следующие шаги:
В локальной системе выполните команду send-backup через утилиту pg_probackup3, чтобы отправить данные резервной копии на удалённый сервер по указанному порту:
pg_probackup3 send-backup -Bкаталог_копий--instance=имя_экземпляра-iид_резервной_копии-pпорт-hсервер[--no-merge]
Флаг --no-merge отключает слияние цепочки резервных копий перед передачей данных. В противном случае цепочка резервных копий будет автоматически объединена во временный файл, который удалится после завершения передачи.
В удалённой системе запустите команду restore через утилиту pgpro_backupstream для приёма и восстановления данных:
pgpro_backupstream restore -Dпуть_для_восстановления[-pпорт]
Если порт не указан, используется STDIN.
Запустите утилиту pgpro_backupstream в удалённой системе до того, как начать передачу данных с помощью команды send-backup.