---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ydb.tech/docs/en/recipes/backup-collections/validation-and-testing.md?version=main
  - https://ydb.tech/docs/ru/recipes/backup-collections/validation-and-testing.md?version=main
sourcePath: ru/core/recipes/backup-collections/validation-and-testing.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

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

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

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

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

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

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

| Статус | Значение |
|--------|----------|
| `SUCCESS` | Операция завершена успешно |
| `PROGRESS` | Операция ещё выполняется |
| `CANCELLED` | Операция была отменена (в настоящее время неприменимо — отмена пока не поддерживается) |
| `ERROR` | Операция завершилась с ошибкой |

```bash
# Получение подробной информации о конкретной операции
ydb operation get <operation-id>

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

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

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

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

```bash
# Экспорт в 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/
```

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

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

```bash
# Экспорт недавней резервной копии для тестирования
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 не предоставляет встроенного мониторинга или оповещений для резервного копирования. Реализуйте внешний мониторинг для обнаружения сбоев резервного копирования:

### Пример скрипта мониторинга {#monitoring-script}

```bash
#!/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)
# Добавьте свою логику для разбора временной метки и сравнения с текущим временем
```

### Рекомендации по мониторингу {#monitoring-recommendations}

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

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

- [Создание первой коллекции резервных копий](https://ydb.tech/docs/ru/recipes/backup-collections/getting-started.md?version=main)
- [Обслуживание и очистка резервных копий](https://ydb.tech/docs/ru/recipes/backup-collections/maintenance-and-cleanup.md?version=main)
