Перейти к основному содержимому

Восстановление данных из дельта-копии

примечание

Исполнять сценарий необходимо от имени пользователя postgres.

Описание сценария

Инициирование пользователем восстановления данных из дельта-копии. Сценарий восстановления подразумевает использование полной копии вместе с последними дельта-копиями, хранящимися в одной и той же директории.

Важно

При восстановлении резервной копии командой copywala restore дополнительные файлы из CWL-архива не восстанавливаются и игнорируются. Для их извлечения используйте отдельную команду copywala cwl extra-files extract.

Предусловие

В конфигурационном файле copywala.yaml, задайте значение для параметра backup_destination_uri. В качестве значения параметра укажите путь к папке хранения дельта-копии и родительской полной копии.

Последовательность выполнения

  1. Заполните конфигурационный файл Copywala, обязательно добавляя в него параметр backup_destination_uri. В качестве значения параметра укажите путь к папке хранения дельта-копии и родительской полной копии. Путь соответствует указанному при создании РК.
  2. Инициируйте восстановление РК через 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.
  • У пользователя нет прав на чтение файла с РК.
  • У пользователя недостаточно свободного места на диске для выполнения восстановления РК.