Практическое руководство

Как организовать резервное копирование и проверку восстановления

Как проверить резервную копию сайта: состав данных, изолированное восстановление, RPO и RTO, файлы и очереди. Заполненный пример протокола.

Материал WebexlabПодготовлено 6 мин чтения

Краткий ответ

Резервное копирование считают рабочим после проверки восстановления нужного состояния сайта. Нужно определить состав данных, допустимую потерю изменений и время возврата, хранить копии с подходящим доступом и регулярно восстанавливать их в изолированном контуре. Успешное создание архива подтверждает только часть процесса.

Начните с допустимого ущерба

Определите, сколько изменений можно потерять и как долго бизнес способен работать без функции. RPO описывает допустимую потерю данных во времени, а RTO — целевое время восстановления. Эти значения выбирает владелец процесса с учётом затрат, а не только техническая команда.

Для информационного сайта и магазина с заказами требования могут различаться. Даже на одном сайте материалы редактора и принятые обращения имеют разную ценность и скорость изменения. Сначала разберите данные по назначению.

Определите полный состав

Определите полный состав — сравнение
КомпонентЧто требуется сохранитьКак проверить
База данныхЗаписи и необходимые связиВосстановить и выполнить запросы
Пользовательские файлыДокументы и загрузкиОткрыть связанные материалы
КодНужная версия приложенияСобрать и запустить
КонфигурацияПараметры окружения и сервисовВоспроизвести запуск безопасно
Процедура доступаРазрешённый путь к секретамПолучатель может выполнить восстановление

Копия базы без файлов может восстановить список документов с неработающими ссылками. Архив кода без нужной конфигурации может не запуститься. Проверяйте согласованность компонентов, а не только наличие нескольких архивов.

Выберите подходящий способ копирования

Для базы используйте поддерживаемый механизм, учитывающий её состояние. Документация PostgreSQL 17 описывает разные подходы к резервному копированию; выбор зависит от задачи и требований восстановления. Простое копирование работающего каталога данных без подходящей процедуры может дать непригодный результат.

Определите расписание, срок хранения, место копий и контроль успешности. Хранение единственной копии рядом с исходными данными не защищает от всех отказов этого окружения. При этом доступ к резервным данным должен быть ограничен не слабее доступа к рабочим.

Проверьте восстановление изолированно

Разворачивайте тест в отдельном контуре, чтобы не перезаписать рабочую систему. Отключите реальные уведомления и внешние операции, которые восстановленное приложение может выполнить автоматически. Само чтение старой очереди не должно приводить к повторной отправке писем клиентам.

Запишите время начала, использованную копию и шаги. После запуска проверьте вход, важные страницы, данные и документы. Для магазина или CRM добавьте согласованные выборки операций, не создавая новых реальных платежей и заказов.

Учебный пример неполной копии

Условный сайт восстановили из базы, но загрузки хранились в отдельном томе и не входили в резервный план. Интерфейс показывает названия файлов, а открытие завершается ошибкой. Сообщение backup-системы «успешно» было правдивым для базы, но не для всего продукта.

Решение — пересмотреть состав и согласованность копий, затем повторить упражнение. Такой случай показывает, почему показатель числа архивов не равен доказанной возможности восстановления.

Учитывайте внешние зависимости

Почта, платёжный провайдер, DNS и сторонние API могут потребовать отдельных действий. Доступность кода не восстанавливает автоматически доступ к аккаунту внешней системы. Укажите ответственных и способ получения необходимых полномочий без публикации секретов в общей инструкции.

Рекомендации AWS по целям восстановления помогают связать техническую процедуру с требованиями бизнеса. Конкретный план должен учитывать вашу инфраструктуру и реальные возможности команды, включая время обнаружения и принятия решения.

Что включить в протокол

  • Версия приложения, дата и состав копии.
  • Изолированное окружение и отключённые внешние действия.
  • Фактическое время восстановления.
  • Проверенные данные и сценарии.
  • Расхождение с RPO и RTO, если оно есть.
  • Ошибки процедуры и ответственные за исправления.

Повторяйте упражнение после значимых изменений хранения и интеграций. Передача поддержке должна включать этот протокол. Время реакции на инцидент и время восстановления различаются, поэтому не подменяйте ими друг друга в условиях обслуживания.

Сценарий изолированной репетиции

Выберите конкретную копию и подготовьте отдельное окружение с отключёнными рабочими уведомлениями. До восстановления проверьте целевые пути и тома, чтобы процедура не затронула действующие данные. Сохраните версию приложения и необходимые условия запуска.

После восстановления проверьте несколько связанных объектов: запись обращения, её услугу, приложенный документ и доступ соответствующей роли. Если приложение открывает главную, но не может прочитать загрузки, восстановление продукта ещё не завершено. Для очередей проверьте, что старые задачи не выполняют реальные внешние действия.

Запишите фактическое время и ручные шаги, которые отсутствовали в инструкции. Если доступ к копии пришлось искать у одного сотрудника, это часть реального времени восстановления и организационный риск. Улучшение процедуры может оказаться важнее ускорения распаковки архива.

Завершите упражнение отчётом о точке данных и проверенных сценариях. Не называйте достигнутым RPO, если неизвестно, какие изменения потеряны между копией и сбоем. При несоответствии цели укажите конкретную причину и следующую задачу: изменить частоту, состав, хранение или процедуру. После существенного исправления повторите затронутый сценарий.

Заполненный протокол репетиции восстановления

Рассмотрим учебную репетицию: моделируем сбой в 10:00 и восстанавливаем данные до подтверждённой точки 09:50. Рабочий сайт не затрагивается, внешняя отправка писем и выполнение платёжных операций на стенде отключены. В условном задании RPO составляет 15 минут, RTO — 60 минут.

Заполненный протокол репетиции восстановления — сравнение
ПроверкаРезультат упражненияОценка
Точка восстановленных данных09:50 при модельном сбое в 10:00Интервал 10 минут укладывается в заданные 15
Готовность сервиса11:20 после проверки ключевых функций80 минут превышают цель 60 минут
Связанные записиЗаявка, услуга и её вложение доступныПроверенная связь восстановлена
Фоновые задачиОчередь прочитана без внешней отправкиПовторные действия не выполнялись
Полнота остальных данныхПроверена только согласованная выборкаПолная сверка остаётся отдельным пунктом

Десять минут между точкой данных и сбоем не означают потерю десяти заявок. Количество и состав операций за этот интервал устанавливают по доступным свидетельствам. Если нужные изменения можно восстановить из другого разрешённого источника, это отдельная процедура со сверкой повторов. Непроверенный источник нельзя считать гарантией отсутствия потерь.

Метод копирования выбирают под такую задачу. Документация PostgreSQL различает логическую выгрузку, копирование файлов и непрерывное архивирование; эти способы имеют разные условия восстановления. Наличие архива базы само по себе не подтверждает наличие пользовательских файлов, настроек и совместимой версии приложения.

Цели восстановления задают по последствиям для бизнеса и зависимостям. В нашем примере упражнение нельзя закрыть как успешное по всем критериям: цель времени не выполнена. Следующая задача — найти, какие этапы заняли лишнее время, исправить процедуру и повторить проверку. Инструкция и результат передаются вместе с сайтом команде поддержки.

Термины из материала

Источники и документация

У каждого документа указана дата последней проверки. Состав функций и интерфейсы сервисов могут меняться. Ссылки открываются в новой вкладке.

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

Применить к вашему проекту

Поможем составить план копирования и провести проверяемую репетицию восстановления.

Обсудить задачу
Все материалы блога