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

Инвентаризация резервных копий в указанных хранилищах

примечание

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

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

Сценарий инвентаризации резервных копий предназначен для регулярного анализа состояния архивированных данных и проверки их готовности к использованию. Главная задача сценария — сверить наличие резервных копий в физическом хранилище с записями о них в служебной БД, чтобы подтвердить их целостность и доступность. Служебная БД определяется в конфигурационном файле copywala.yaml параметрами секции pbra_db.

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

Выполните инвентаризацию резервных копий через CLI copywala командой copywala backups inventory (ознакомьтесь со справкой по команде ниже).

Справка по команде copywala backups inventory

Описание:

Выполняет проверку резервных копий путем сопоставления записей о них в служебной БД (задается в copywala.yaml в секции pbra_db) с фактически существующими архивами резервных копий в хранилищах. Проверка позволяет убедиться, что архивы присутствуют, доступны и готовы к использованию. По умолчанию (без указания флагов) проверка выполняется по всем хранилищам.

Проверка возможна в одном из режимов:

Режим

Что проверяется

Результат

Базовая проверка (без флага --detail)

  • наличие файла по указанному URI;
  • доступность файла для чтения;
  • корректность заголовка архива;
  • контрольная сумма архива.
  • Если файл доступен и читается — статус устанавливается в success.
  • Если файл не найден, не доступен или возникла ошибка чтения — статус устанавливается в failed.

Детальная проверка (c флагом --detail)

Все то же, что в базовой проверке + сравниваются метаданные из архива резервной копии с данными в служебной БД.

  • Если файл доступен, читается и метаданные совпадают — статус success.
  • Если файл доступен, но метаданные не совпадают — статус failed с ошибкой "backup info mismatch". В выводе отображаются конкретные различия между полями.
  • Если файл не найден или не читается — статус failed с соответствующей ошибкой.

Синтаксис:

copywala backups inventory [flags]

Обязательные параметры:

Нет.

примечание

Если в команде используется 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
--detailВыполнить инвентаризацию с детальной проверкой
--localПроверка резервных копий, находящихся в хранилище Local FS (local-fs://)
--s2Проверка резервных копий, находящихся в хранилище S2 (s2://)
--s3Проверка резервных копий, находящихся в хранилище S3 (s3://)
--ddboostПроверка резервных копий, находящихся в хранилище DDBoost (ddboost://)
примечание

Подробное описание типов хранилищ приведено в разделе Хранилища резервных копий.

Результат

В результате выполнения команды будет выведено:

Inventory Summary:
Total backups checked: <количество проверенных резервных копий>
Successful: <количество успешных>
Failed: <количество проваленных>

Failed Backups:
--------------------------------------------------------------------------------
Backup ID: <Идентификатор РК_1>
Location URI: <local-fs://HOSTNAME/path-to-backup>
Inventory Time: <YYYY-MM-DD HH:MM:SS>
Error: <error message>
--------------------------------------------------------------------------------
...
ПолеОписаниеПример значения
Backup IDУникальный идентификатор РК019715e5-a1ec-70c4-9a31-753362d26f75
Location URIПолный путь к РК: тип хранилища, хост, путь, имя файлаs2://srv-48-53:29500/2025-05-28-10-57_019715e5-a1ec-70c4-9a31-753362d26f75_full_0000000100000018000000A7.cwl
Inventory TimeВремя выполнения инвентаризации для данной РК2026-04-10 09:20:37
ErrorОписание ошибкиopen /home/postgres/backups/TEST_019d67c9-6432-7523-bb64-d5df29d9914b/backups/2026-04-10-09-20_019d760c-2240-7a99-912e-055be3099933_full_000000010000000700000031.cwl: no such file or directory

Исключительные сценарии

Будет выведено соответствующее сообщение для случаев:

  • Недостаточно прав для проведения инвентаризации.
  • Не удалось установить подключение к целевой базе данных.