Восстановление данных из дельта-копии
Исполнять сценарий необходимо от имени пользователя 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.
При восстановлении файлов из резервной копии для каждого файла восстанавливается время его последнего изменения (mtime), зафиксированное на момент создания резервной копии.
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
- Не указан или указан неверно
backup_destination_uri. - У пользователя нет прав на запись данных в каталог
PGDATA. - У пользователя нет прав на чтение файла с РК.
- У пользователя недостаточно свободного места на диске для выполнения восстановления РК.