Восстановление данных из дельта-копии
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Инициирование пользователем восстановления данных из дельта-копии. Сценарий восстановления подразумевает использование полной копии вместе с последними дельта-копиями, хранящимися в одной и той же директории.
При восстановлении резервной копии командой copywala restore дополнительные файлы из CWL-архива не восстанавливаются и игнорируются. Для их извлечения используйте отдельную команду copywala cwl extra-files extract.
Предусловие
В конфигурационном файле copywala.yaml, задайте значение для параметра backup_destination_uri. В качестве значения параметра укажите путь к папке хранения дельта-копии и родительской полной копии.
Последовательность выполнения
- Заполните конфигурационный файл Copywala, обязательно добавляя в него параметр
backup_destination_uri. В качестве значения параметра укажите путь к папке хранения дельта-копии и родительской полной копии. Путь соответствует указанному при создании РК. - Инициируйте восстановление РК через CLI copywala командой
copywala restore.
Справка по команде copywala restore
Описание:
Восстановление данных из резервной копии.
Синтаксис:
copywala restore <archive uri or path> [flags]
Обязательные параметры:
-
<archive uri or path>– путь к CWL-архиву резервной копии из которой требуется восстановить данные. -
Если резервная копия содержит табличные пространства (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. Использование флага позволяет выполнять восстановление табличных пространств с изменением их расположения без предварительного ручного создания целевых каталогов. |
--cpuprofile <path to file> | Включает сбор профиля использования CPU и сохраняет результаты в указанный файл (<path to file>) для последующего анализа производительности |
-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" |
Если в конфигурационном файле указан параметр restore_data_path (в основном разделе) и не задан параметр destination, то восстановление будет выполнено в папку, указанную в restore_data_path.
Результат
Цепочка РК восстанавливается либо последовательно от полной копии (full) к целевой (delta), либо наоборот — от целевой к полной. Режим задается параметром:
restore_policy:
reverse_restore: false # где false – это прямой порядок, true – обратный.
В результате выполнения команды будет выведен прогресс и результат выполнения восстановления данных из резервной копии в каталог базы данных PGDATA.
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
- Не указан или указан неверно
backup_destination_uri. - У пользователя нет прав на запись данных в каталог
PGDATA. - У пользователя нет прав на чтение файла с РК.
- У пользователя недостаточно свободного места на диске для выполнения восстановления РК.