Как работает резервное копирование и восстановление данных?

Резервное копирование (backup) — это создание копий данных/состояния системы с целью их сохранения и последующего восстановления в случае потери, повреждения или при миграции. Восстановление (restore) — процесс возвращения данных из этих копий в рабочее состояние.

Цели и ключевые показатели

  • RPO (Recovery Point Objective) — максимальное допустимое количество данных, которое можно потерять, выраженное во времени (напр., RPO = 1 час означает, что можно потерять до 1 часа изменений).

  • RTO (Recovery Time Objective) — максимальное допустимое время восстановления сервиса/данных до рабочего состояния (напр., RTO = 4 часа).

RPO определяет частоту бэкапов, RTO — требования к скорости восстановления и автоматизации.

Типы бэкапов

  • Full (полный) — копируется весь набор данных. Быстро восстанавливать, дороже по объёму.

  • Incremental — сохраняются только изменения после последнего бэкапа (full или инкрементального). Экономит место, но восстановление требует последовательного применения инкрементов.

  • Differential — сохраняет изменения с момента последнего полного бэкапа. Быстрее восстановления, чем инкрементальный (нужно два набора), но растёт размер с течением времени.

  • Snapshot — снимок состояния тома/файловой системы на момент времени (часто аппаратный или файловой системой). Быстро создаётся, может быть интегрирован с хранилищем (копия на уровне блочного устройства). Не всегда заменяет полноценный бэкап (зависит от хранения и согласованности).

  • Incremental-forever / synthetic full — стратегия, при которой регулярно делаются инкременты, а периодически синтезируется «виртуальный» полный бэкап без полного копирования.

Согласованность данных

  • Crash-consistent — данные в состоянии, как при внезапном отключении питания; может потребоваться восстановление журнала транзакций.

  • Application-consistent — приложение приведено в согласованное состояние (например, с помощью flush/flush logs, VSS для Windows, выключение транзакций). Желательно для баз данных и критичных приложений.

  • Для распределённых систем требуется координация снимков (global checkpoint) или использование инструментов, понимающих распределённые транзакции.

Бэкап баз данных

  • Logical (дамп SQL) — читабельные экспортные файлы; удобны для миграций и частичных восстановлений, но медленнее.

  • Physical (образы/файлы данных, WAL) — быстрые для восстановления больших БД; поддерживают PITR (Point-In-Time Recovery) через журнал транзакций (WAL shipping).

  • Реплики как средство восстановления: promote replica → минимальное RTO, но реплика должна быть защищена от тех же ошибок (например, если ошибка — логическая, реплика может получить её тоже).

Хранение и безопасность

  • 3-2-1 правило: минимум 3 копии, 2 разных носителя, 1 offsite (вне площадки).

  • Immutable / WORM и air-gapped копии для защиты от ransomware.

  • Шифрование бэкапов в покое и в transit; управление ключами (KMS).

  • Ограничение доступа: отдельные учетные записи и аудит доступа к бэкапам.

Ретеншн, дедупликация, сжатие

  • Политики хранения (retention) по возрасту/законодательству; tiering (горячее → холодное, архив) для оптимизации стоимости (например, Glacier).

  • Дедупликация и сжатие уменьшают объём хранимых данных.

Верификация и тестирование

  • Регулярно выполнять test restores (частичные и полные) — единственный надёжный способ убедиться, что бэкапы пригодны.

  • Контролировать контрольные суммы (checksums) и статус задач бэкапа; мониторить успешность и время.

План восстановления (playbook)

  • каталог бэкапов/метаданных (backup catalog) для поиска нужной копии;

  • последовательность восстановления (full → differential/incremental → применение журналов);

  • шаги валидации после восстановления (integrity checks, smoke tests), переключение DNS/балансировщиков, уведомление стейкхолдеров.

Операционные моменты

  • Учитывать окно бэкапа и влияние на производительность; использовать snapshot-offload и репликацию, чтобы минимизировать нагрузку.

  • Пропускная способность сети ограничивает скорость offsite-репликации; для больших объёмов используют физическую транспортировку или initial seeding.

  • Логирование и алерты по сбоям бэкапов; регулярные ревью политики retention и стоимости.

Частые ошибки и риски

  • Не тестировать восстановление; хранить бэкапы на том же носителе/в той же сети, что и первичные данные; отсутствие шифрования; пропуск application-consistency; отсутствие immutable-копий.

Автоматизация, регулярное тестирование восстановлений, чёткие RPO/RTO и защита бэкапов (шифрование, разделение прав, immutable storage) — основа надёжной стратегии резервного копирования и восстановления.