Поиск и восстановление данных из последней резервной копии
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Сценарий предназначен для обнаружения последней доступной резервной копии, обеспечивая возможность отката к предыдущему стабильному состоянию системы в случае сбоев или неисправностей.
Последовательность выполнения
Инициируйте поиск и восстановление последней РК через CLI copywala командой copywala restore latest (ознакомьтесь со справкой по команде ниже).
Справка по команде copywala restore latest
Описание: Поиск и восстановление данных из последней резервной копии.
Синтаксис:
copywala restore latest [flags]
Обязательные параметры:
Если резервная копия содержит табличные пространства (tablespace), при вызове команды обязательно укажите один из флагов:
| Флаг | Описание |
|---|---|
-t|--tablespace-mapping </old-tablespace=/new-tablespace> | Задает соответствие между путями табличных пространств (tablespace) в резервной копии и их расположением на целевом сервере. Используется для восстановления табличных пространств в другое место. Для нескольких табличных пространств каждое соответствие пути исходного и целевого расположения рекомендуется указывать отдельным флагом -t|--tablespace-mapping. Пример значения: --tablespace-mapping="/pgdata/tablespaces/Tbl_t=/data/tbl_t" |
--allow-default-tablespaces | Использовать пути табличных пространств, сохраненных во время создания резервной копии. Имеет приоритет перед настройками, задаваемыми через флаг -t|--tablespace-mapping |
Если в команде используется URI, указывающий подключение к DDBoost через S2, его необходимо обязательно заключать в двойные кавычки.
Это требование связано с тем, что URI содержит символ &, который интерпретируется Bash как оператор фонового запуска команды.
Ниже приведен пример для команды copywala cwl info:
copywala cwl info "s2://<s2-host>/<ddboost-storage-unit>/path/in/ddboost/storage/unit?driver=ddboost&data_domain_host=<ddboost-host>"
Опциональные параметры:
[flags] – доступны следующие флаги:
| Флаг | Описание |
|---|---|
-h|--help | Показать справку по команде |
-c|--config <path to copywala config> | Использовать конфигурационный файл, отличный от файла по умолчанию: /etc/pbr/copywala.yaml |
--allow-default-tablespaces | Использовать пути табличных пространств, сохраненных во время создания резервной копии. Имеет приоритет перед настройками, задаваемыми через флаг -t|--tablespace-mapping |
--auto-create-tablespaces-dirs | Автоматически создает директории назначения для табличных пространств, переданных в флаге -t|--tablespace-mapping. Использование флага позволяет выполнять восстановление табличных пространств с изменением их расположения без предварительного ручного создания целевых каталогов. |
-d|–-destination <archive uri> | Директория, в которую необходимо произвести восстановление |
--dry-run | Проверка корректности конфигурационного файла и возможности восстановления из заданной резервной копии |
-t|--tablespace-mapping </old-tablespace=/new-tablespace> | Задает соответствие между путями табличных пространств (tablespace) в резервной копии и их расположением на целевом сервере. Используется для восстановления табличных пространств в другое место. Для нескольких табличных пространств каждое соответствие пути исходного и целевого расположения рекомендуется указывать отдельным флагом -t|--tablespace-mapping. Пример значения: --tablespace-mapping="/pgdata/tablespaces/Tbl_t=/data/tbl_t" |
Результат
В результате выполнения команды инициируется процесс восстановления, состоящий из двух этапов:
- определение последней доступной резервной копии, подходящей для восстановления;
- запуск процесса построения цепи восстановления, необходимой для приведения системы в рабочее состояние.
Если указанные этапы выполнены успешно, процесс восстановления завершится без ошибок:
finished reading parts
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
-
Отсутствует папка с РК:
2025-09-15 17:00:47.132 ERR failed to select latest backup err="list local backups: read dir: open /home/postgres/backups/dbmain_019938e4-d1f8-7958-973a-0a90dc6bae88/backups: no such file or directory" -
Отсутствует одна из промежуточных дельта-копий в цепочке:
2025-09-15 17:06:36.365 ERR failed to init restore components err="No parent delta backup with backup_id 01994daf-a516-72e2-a78e-c9a583ea306c for /home/postgres/backups/dbmain_019938e4-d1f8-7958-973a-0a90dc6bae88/backups/2025-09-15-17-03_01994daf-b8fb-706f-a893-509c4d8c3377_delta_000000030000000200000001_from_0000000300000001000000FF.cwl." -
Если не задан флаг
--tablespace-mapping, то будет выведено:2025-09-15 17:05:09.243 ERR failed to init restore components err="tablespace mapping not provided for given tablespace /home/postgres/tbl1"