Вебформат

Главная/Блог/Сайты и e-commerce

Сайты и e-commerce14 октября 20266 мин

Копия есть, а сайт из неё не поднимается: пять причин и пробное восстановление

Резервная копия лежит на хранилище, отчёт о копировании без ошибок, а в день аварии сайт из неё не поднимается. Разбираем пять причин, по которым так выходит, и проверку, которая находит их заранее: пробное восстановление на отдельном сервере. У нас оно занимает от 30 минут на небольшом сайте до 2 часов на крупном.

Пробное восстановление · копия на отдельном сервере
Пробное восстановление · копия на отдельном сервере

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

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

Пять причин, по которым копия не спасает

1. Пароль от шифра потерян

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

2. Архив оборван на середине

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

3. От архива остались не все части

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

4. В копии не всё

Сайт на 1С-Битрикс состоит из трёх частей: файлы сайта, база данных и папка с загруженными картинками и документами. Их копируют по отдельности: база весит меньше и меняется чаще всего, папка загрузок самая тяжёлая. Подняли базу без папки загрузок - товары на месте, картинок нет. Подняли файлы без базы - открывается пустой сайт.

5. Копия не встаёт на новый сервер

Базу сняли на одном сервере, разворачивают на другом. В копии остаются привязки к пользователям старого сервера, и часть базы на новом выдаёт ошибки. Отдельная история - версии: если на новом сервере другая версия PHP или базы данных, сайт может не запуститься вовсе.

Что из этого закрыто в наших инструментах

Для резервного копирования у нас два своих инструмента: simple.backup снимает и отправляет копии, file.sieve чистит хранилище от старых (как он решает, какие копии оставить). Часть причин они закрывают своим устройством:

  • →Пока архив передаётся, у него временное имя. Обрывок с временным именем за готовую копию не примешь.
  • →Части одной копии file.sieve хранит и удаляет только вместе. Удалить одну часть и оставить остальные он не может.
  • →Из копии базы убираются привязки к пользователям старого сервера. База разворачивается на другом сервере без этих ошибок.
  • →В архив с файлами сайта кладётся скрипт восстановления 1С-Битрикс. На чистом сервере есть чем развернуть сайт.

Остальное инструмент не проверит: подходит ли пароль, все ли три части копии нашлись на одну дату и встаёт ли сайт на сервер с другими версиями. Это ловит только пробное восстановление.

Пробное восстановление: как проверить копию заранее

Пробное восстановление - это авария по расписанию. Берём копию с дальнего хранилища, разворачиваем на отдельном сервере, открываем сайт и смотрим, всё ли на месте. Рабочий сайт при этом не трогаем.

У нас восстановление из копии занимает около 30 минут на небольшом сайте и до 2 часов на крупном. Это время и есть ответ на вопрос, сколько магазин простоит в день аварии, если запасной сервер уже готов. Если его ещё нужно арендовать и настроить, прибавьте и это время.

Что проверить на восстановленном сайте

  • 01Открываются главная и каталог, у товаров есть картинки.
  • 02Последний заказ в базе - от даты копии, а не на неделю раньше.
  • 03Входят покупатель в личный кабинет и администратор в панель управления.
  • 04Работают поиск по сайту и фильтры каталога.
  • 05Корзина и форма заказа доходят до последнего шага. Оплату проверяют в тестовом режиме, без настоящих денег.

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

Что попросить у подрядчика после проверки

  • →Адрес пробного сайта, чтобы открыть его самому.
  • →Дату копии, из которой его подняли.
  • →Сколько времени ушло от начала восстановления до работающего сайта.
  • →Что проверили и что не заработало сразу.

Если адреса пробного сайта нет, проверки не было. Слова "копия восстанавливается" без него остаются обещанием.


Свой сайт проверьте одной просьбой к подрядчику: поднять копию недельной давности на отдельном сервере и прислать адрес. По ответу будет видно, рабочие ли у вас копии и сколько простоит сайт в день аварии.

Поднимется ли ваш сайт из копии?

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