Проверка и тестирование резервных копий

Проверка целостности резервных копий и тестирование процедур восстановления.

Проверка завершения резервного копирования

Убедитесь, что операции резервного копирования завершились успешно:

# Список операций резервного копирования и проверка статуса
ydb operation list incbackup

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

Статус Значение
SUCCESS Операция завершена успешно
PROGRESS Операция ещё выполняется
CANCELLED Операция была отменена (в настоящее время неприменимо — отмена пока не поддерживается)
ERROR Операция завершилась с ошибкой
# Получение подробной информации о конкретной операции
ydb operation get <operation-id>

# Проверка существования каталога резервной копии
ydb scheme ls .backups/collections/production_backups/ | tail -1

Если операция показывает статус ERROR, проверьте детали операции для получения сообщения об ошибке и убедитесь, что все таблицы в коллекции доступны.

Проверка экспорта во внешнее хранилище

Регулярно проверяйте, что резервные копии можно экспортировать во внешнее хранилище:

# Экспорт в S3 и проверка
ydb export s3 \
  --s3-endpoint storage.yandexcloud.net \
  --bucket my-backup-bucket \
  --item src=.backups/collections/production_backups/20250821141425Z_full,dst=backups/test_export

# Проверка успешного завершения экспорта
ydb operation list export/s3

# Проверка наличия экспортированных данных в S3 (с помощью вашего S3-клиента)
# aws s3 ls s3://my-backup-bucket/backups/test_export/

Тестирование восстановления резервных копий

Регулярно проверяйте, что резервные копии можно восстановить:

# Экспорт недавней резервной копии для тестирования
ydb tools dump -p .backups/collections/production_backups/20250601120000Z_full -o /tmp/test_restore

# Тестовое восстановление во временное место (в тестовой среде)
ydb tools restore -p /Root/test_restore_verification -i /tmp/test_restore

Чек-лист проверки

  • [ ] Операции резервного копирования завершаются без ошибок
  • [ ] Каталоги резервных копий создаются с ожидаемыми временными метками
  • [ ] Экспортированные резервные копии можно успешно импортировать
  • [ ] Восстановленные данные соответствуют ожидаемому содержимому
  • [ ] Целостность инкрементальной цепочки сохраняется

Рекомендуемое расписание тестирования

Тип теста Частота Описание
Статус операций Ежедневно Проверка завершения запланированных резервных копий
Проверка экспорта Еженедельно Проверка экспорта во внешнее хранилище
Полный тест восстановления Ежемесячно Полное восстановление в тестовую среду
Учения по аварийному восстановлению Ежеквартально Полная симуляция аварийного восстановления

Настройка мониторинга и оповещений

YDB не предоставляет встроенного мониторинга или оповещений для резервного копирования. Реализуйте внешний мониторинг для обнаружения сбоев резервного копирования:

Пример скрипта мониторинга

#!/bin/bash
# Проверка неуспешных операций резервного копирования
FAILED=$(ydb operation list incbackup --format json | jq '[.operations[] | select(.status == "ERROR")] | length')

if [ "$FAILED" -gt 0 ]; then
  echo "ALERT: $FAILED операция(й) резервного копирования завершилась с ошибкой" | mail -s "YDB Backup Alert" admin@example.com
fi

# Проверка, что резервная копия была создана за последние 24 часа
LATEST=$(ydb scheme ls .backups/collections/production_backups/ | sort | tail -1)
# Добавьте свою логику для разбора временной метки и сравнения с текущим временем

Рекомендации по мониторингу

  • Планируйте запуск скриптов мониторинга через cron после ожидаемого времени резервного копирования
  • Проверяйте как статус операции (ERROR), так и создание новых резервных копий
  • Интегрируйте с вашей существующей системой оповещений (email, Slack, PagerDuty и т.д.)
  • Отслеживайте рост хранилища резервных копий, чтобы избежать нехватки места

Следующие шаги

Следующая