Что должно быть в копии
- Файлы сайта. Код, шаблоны и настройки.
- Загруженные материалы. Картинки товаров, документы, вложения. Их часто исключают из копии ради экономии места и забывают об этом.
- База данных. Заказы, клиенты, содержимое страниц.
- Настройки окружения. Конфигурация веб-сервера, расписание задач, сертификаты, параметры почты.
Полезно один раз записать, что именно попадает в копию и что в неё не входит. Этот список понадобится при восстановлении.
Где хранится копия
Копия на том же сервере, что и сайт, помогает при случайном удалении файла. При поломке диска, взломе или блокировке аккаунта она пропадёт вместе с сайтом. Поэтому хотя бы одна копия должна лежать на другой площадке, с отдельными доступами.
Проверьте глубину хранения. Если копии перезаписываются каждый день, а заражение или ошибку заметили через неделю, чистой версии уже не будет. Обычно хранят несколько ежедневных копий и несколько более старых.
База данных отдельно
Базу нельзя надёжно сохранить простым копированием её файлов с работающего сервера: данные в этот момент меняются. Для MySQL обычно делают логическую копию утилитой mysqldump. Для таблиц InnoDB её запускают с параметром --single-transaction, чтобы снять согласованный снимок данных: документация mysqldump.
Быстрые признаки проблемы видны и без восстановления: файл копии подозрительно маленький, размер не меняется неделями или копия обрывается на середине таблицы. Но окончательный ответ даёт только тест.
Тест восстановления
- Подготовьте отдельную площадку: тестовый поддомен или временный сервер. Закройте её паролем и от индексации.
- Разверните файлы и базу из копии, не подглядывая в рабочий сайт.
- Отключите на копии отправку писем, обмены и оплату, чтобы тест не затронул клиентов.
- Проверьте главное: вход в административную часть, каталог, картинки, оформление заказа до шага оплаты.
- Засеките, сколько времени заняло восстановление.
Всё, чего не хватило при развёртывании, нужно добавить в копию или в инструкцию.
Что записать после теста
- За какое время сайт поднимается из копии.
- За какой срок могут потеряться новые данные: это промежуток между копиями.
- Кто и по какой инструкции выполняет восстановление.
- Когда следующий тест. Разумно повторять его после крупных изменений на сайте и сервере.
Если копии нужно настроить или проверить, посмотрите защиту сайта и резервные копии. Регулярная проверка восстановления входит в тарифы постоянной поддержки.