Резервная копия возвращает сайт в тот момент, когда её сняли. Всё, что случилось позже, в неё не попало. Поэтому вопрос "как часто копировать" удобнее задать по-другому: сколько часов работы магазина вы готовы потерять, если сервер откажет перед следующей копией.
В серии о резервном копировании мы уже разбирали, где хранить копию, как проверить, что из неё поднимется сайт, и сколько копий держать на хранилище. Здесь - как часто их снимать.
Промежуток между копиями - то, что пропадёт
Возьмём магазин, у которого база данных копируется раз в сутки, в 4 утра. В 18:00 сервер выходит из строя. Сайт поднимают из утренней копии, и в нём нет ничего, что произошло за 14 часов:
- →Заказы. Покупатели оплатили, менеджеры подтвердили, а в базе сайта заказов нет. Если заказы выгружаются в 1С, часть найдётся там, но только те, что ушли до сбоя.
- →Новые покупатели. Регистрации, адреса доставки, подписки. Покупатель зайдёт в личный кабинет и не найдёт ни учётной записи, ни своего заказа.
- →Ручные правки. Описания товаров, баннеры, статьи, которые за день поправили редактор и контент-менеджер.
Товары, цены и остатки, которые приходят из 1С, вернёт следующий обмен. Остальное собирают вручную: по письмам покупателей, уведомлениям о заказах, выпискам платёжной системы. Чем длиннее промежуток между копиями, тем дольше эта работа.
Части сайта меняются с разной скоростью
Сайт на 1С-Битрикс копируют по частям, и в статье про пробное восстановление мы объясняли, почему без любой из них сайт не поднимется. Меняются эти части по-разному. Если копировать их с одной частотой, либо база копируется слишком редко, либо тяжёлые картинки слишком часто.
| Часть сайта | Что в ней | Когда меняется | Как часто копировать |
|---|---|---|---|
| База данных | Заказы, покупатели, товары, цены, тексты страниц | С каждым заказом и правкой | Днём каждые 3-4 часа, ночью полностью |
| Файлы сайта | Код, шаблон, модули, настройки платформы | При доработках и обновлениях | Каждую ночь |
| Картинки и документы | Фото товаров, файлы для скачивания, вложения | Когда добавляют товары и материалы | Раз в неделю |
| Настройки сервера | Веб-сервер, расписание задач, сертификаты | Редко | Раз в неделю |
Папка с картинками и документами самая тяжёлая: у магазина с большим каталогом это десятки гигабайт. Копировать её каждую ночь - значит каждую ночь гонять их на хранилище и нагружать сервер, поэтому её копируют реже. Если фото товаров приходят из 1С, неделя без копии не страшна: обмен выгрузит их заново. Если контент-менеджер загружает фото руками, неделя без копии - это неделя его работы, и папку копируют чаще.
Как выглядит расписание на сутки и неделю
Для копий у нас свой инструмент, simple.backup: он отправляет копию на удалённое хранилище, не занимая диск сайта (подробнее - в статье про место хранения). В инструкции к нему есть пример расписания, где у каждой части сайта своя частота:
Почему днём копия базы облегчённая
Полная копия базы большого магазина снимается долго и загружает сервер: база выгружается целиком и сжимается на лету. Ночью это незаметно. Днём сервер в это же время отвечает покупателям, поэтому дневные копии делают легче.
- →В копии нет того, без чего сайт обойдётся. Журналы событий, статистика посещений, индекс поиска по сайту, сессии посетителей не копируются ни днём, ни ночью. У этих таблиц сохраняется структура, поэтому восстановленный сайт запускается, а индекс поиска пересобирают из панели управления.
- →Дневная копия пропускает переписку. Сообщения внутреннего чата и почты, журнал бизнес-процессов. Сайт без них работает, а полностью их сохраняет ночная копия.
- →Сайт во время копии работает. Таблицы базы на время копии не блокируются: покупатели смотрят каталог и оформляют заказы, пока она снимается.
Когда копия не успевает до следующей
База растёт вместе с магазином. Копия, которая при запуске сайта снималась за минуты, через несколько лет может идти часами. Если расписание составили под маленькую базу и не пересматривали, однажды новая копия начнётся, пока не закончилась предыдущая. Сервер копирует одно и то же дважды, и обе копии мешают друг другу.
В примере расписания к simple.backup две копии базы одновременно не идут. Если предыдущая ещё не закончилась, очередная пропускает свой час. Еженедельная копия с картинками не пропускается: она дожидается, пока закончится текущая, и запускается следом.
Пропуск бережёт сервер, но копии за этот час нет, и сама она о себе не сообщит. Кто-то должен сверять журнал копирования с расписанием. simple.backup пишет в журнал каждый запуск: время, объём переданных данных, ошибки. По журналу видно и другое: если копия заняла заметную часть промежутка до следующей, расписание пора пересматривать.
Копия вне расписания перед рискованной работой
Откатывать сайт приходится не только после сбоя сервера, но и после своих изменений: обновили платформу, поменяли настройки обмена, загрузили прайс, который перезаписал цены. Последняя копия по расписанию к этому моменту может быть трёхчасовой давности, и откат унесёт заказы за эти три часа.
Поэтому перед такой работой копию снимают вне расписания, прямо перед началом. Тогда сайт откатывают к состоянию за минуту до изменений. simple.backup для этого запускают вручную, с теми же настройками, что и по расписанию. Когда нужна такая копия:
- →перед обновлением 1С-Битрикс и модулей;
- →перед изменением обмена с 1С и массовой загрузкой товаров или цен;
- →перед чисткой базы: удалением старых заказов, покупателей, товаров;
- →перед переездом на другой сервер или хостинг.
Частота копий спасает от сбоя, который заметили сразу. Если ошибку нашли через несколько недель, нужна копия, снятая до неё, и тут важна не частота, а глубина истории на хранилище. Её мы разобрали в статье о том, сколько копий хранить.
Пять вопросов подрядчику
- 01В какие часы снимается копия базы данных? Сколько часов заказов пропадёт, если сервер откажет перед следующей?
- 02Как часто копируются файлы сайта, а как часто - картинки и документы?
- 03Сколько сейчас длится полная копия базы и сколько времени остаётся до следующей?
- 04Кто и как узнает, что копия по расписанию не снялась?
- 05Снимаете ли вы копию перед обновлением платформы и перед изменениями в обмене с 1С?
На первый вопрос хороший ответ называет часы. "Копии делаются ежедневно" не говорит, в какое время, а от времени зависит, сколько заказов пропадёт. Если копия базы одна в сутки и снимается ночью, к вечеру без копии остаётся целый рабочий день.
Свой сайт проверьте первым вопросом: попросите назвать часы, в которые снимается копия базы, и найдите самый длинный промежуток между ними в рабочее время. Столько работы магазина вы потеряете в худший день.



