Вебформат

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

Сайты и e-commerce9 октября 20267 мин

Как часто делать резервную копию сайта: сколько часов заказов вы готовы потерять

Копия базы снимается раз в сутки, в 4 утра. Если сервер выйдет из строя в 6 вечера, из копии вернётся магазин без всего, что случилось за 14 часов: заказов, новых покупателей, правок в каталоге. Разбираем, как считать частоту копий в часах работы, почему база, файлы и картинки копируются с разной частотой и как копировать днём, не замедляя сайт.

Копии по расписанию · база, файлы, картинки
Копии по расписанию · база, файлы, картинки

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

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

Промежуток между копиями - то, что пропадёт

Возьмём магазин, у которого база данных копируется раз в сутки, в 4 утра. В 18:00 сервер выходит из строя. Сайт поднимают из утренней копии, и в нём нет ничего, что произошло за 14 часов:

  • →Заказы. Покупатели оплатили, менеджеры подтвердили, а в базе сайта заказов нет. Если заказы выгружаются в 1С, часть найдётся там, но только те, что ушли до сбоя.
  • →Новые покупатели. Регистрации, адреса доставки, подписки. Покупатель зайдёт в личный кабинет и не найдёт ни учётной записи, ни своего заказа.
  • →Ручные правки. Описания товаров, баннеры, статьи, которые за день поправили редактор и контент-менеджер.

Товары, цены и остатки, которые приходят из 1С, вернёт следующий обмен. Остальное собирают вручную: по письмам покупателей, уведомлениям о заказах, выпискам платёжной системы. Чем длиннее промежуток между копиями, тем дольше эта работа.

Части сайта меняются с разной скоростью

Сайт на 1С-Битрикс копируют по частям, и в статье про пробное восстановление мы объясняли, почему без любой из них сайт не поднимется. Меняются эти части по-разному. Если копировать их с одной частотой, либо база копируется слишком редко, либо тяжёлые картинки слишком часто.

Часть сайтаЧто в нейКогда меняетсяКак часто копировать
База данныхЗаказы, покупатели, товары, цены, тексты страницС каждым заказом и правкойДнём каждые 3-4 часа, ночью полностью
Файлы сайтаКод, шаблон, модули, настройки платформыПри доработках и обновленияхКаждую ночь
Картинки и документыФото товаров, файлы для скачивания, вложенияКогда добавляют товары и материалыРаз в неделю
Настройки сервераВеб-сервер, расписание задач, сертификатыРедкоРаз в неделю
Частота - по примеру расписания из инструкции к simple.backup

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

Как выглядит расписание на сутки и неделю

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

Пример расписания копий
Днём
в 11, 14, 17 и 21 час
облегчённая копия базы
4 раза
Вечером
в 22:30
файлы сайта и база
1 раз
Ночью
в 4:00
полная копия базы
1 раз
раз в неделю
В пятницу вечером
к файлам и базе добавляются
картинки и документы
В воскресенье ночью
настройки сервера: веб-сервер,
расписание задач, сертификаты
что это даёт
Самый длинный промежуток без копии базы
ночью, с 4:00 до 11:00, когда заказов меньше всего
днём - не больше четырёх часов
7 ч
Пример из инструкции к simple.backup. Часы подбирают под ритм сайта: чаще всего копируют в те часы, когда идёт больше всего заказов.

Почему днём копия базы облегчённая

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

  • →В копии нет того, без чего сайт обойдётся. Журналы событий, статистика посещений, индекс поиска по сайту, сессии посетителей не копируются ни днём, ни ночью. У этих таблиц сохраняется структура, поэтому восстановленный сайт запускается, а индекс поиска пересобирают из панели управления.
  • →Дневная копия пропускает переписку. Сообщения внутреннего чата и почты, журнал бизнес-процессов. Сайт без них работает, а полностью их сохраняет ночная копия.
  • →Сайт во время копии работает. Таблицы базы на время копии не блокируются: покупатели смотрят каталог и оформляют заказы, пока она снимается.

Когда копия не успевает до следующей

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

В примере расписания к simple.backup две копии базы одновременно не идут. Если предыдущая ещё не закончилась, очередная пропускает свой час. Еженедельная копия с картинками не пропускается: она дожидается, пока закончится текущая, и запускается следом.

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

Копия вне расписания перед рискованной работой

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

Поэтому перед такой работой копию снимают вне расписания, прямо перед началом. Тогда сайт откатывают к состоянию за минуту до изменений. simple.backup для этого запускают вручную, с теми же настройками, что и по расписанию. Когда нужна такая копия:

  • →перед обновлением 1С-Битрикс и модулей;
  • →перед изменением обмена с 1С и массовой загрузкой товаров или цен;
  • →перед чисткой базы: удалением старых заказов, покупателей, товаров;
  • →перед переездом на другой сервер или хостинг.

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

Пять вопросов подрядчику

  • 01В какие часы снимается копия базы данных? Сколько часов заказов пропадёт, если сервер откажет перед следующей?
  • 02Как часто копируются файлы сайта, а как часто - картинки и документы?
  • 03Сколько сейчас длится полная копия базы и сколько времени остаётся до следующей?
  • 04Кто и как узнает, что копия по расписанию не снялась?
  • 05Снимаете ли вы копию перед обновлением платформы и перед изменениями в обмене с 1С?

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


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

Сколько часов заказов потеряет ваш сайт?

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