Вебформат

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

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

Сколько резервных копий сайта хранить: почему семи последних дней мало

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

Копии лесенкой · дни, недели, месяцы, годы
Копии лесенкой · дни, недели, месяцы, годы

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

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

Ошибки, которые замечают не сразу

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

  • →Обмен с 1С перезаписал описания товаров. Выгрузка затёрла тексты и свойства, которые редактор правил на сайте. Заметили через три недели, когда из поиска стало приходить меньше покупателей.
  • →На сайт подсадили чужой код. Взломщик оставил код, который отправляет часть покупателей с телефона на чужой сайт. Владелец заходит с компьютера и ничего не видит. Код нашли через полтора месяца, и каждая копия за это время содержит его тоже.
  • →При чистке базы удалили старые заказы. Через полгода покупатель оспаривает возврат, и заказ нужен целиком: состав, сумма, переписка.

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

Что найдётся на хранилище

Когда заметили ошибкуКопии за последние 7 днейКопии лесенкой: дни, недели, месяцы, годы
На следующий деньЕсть копия наканунеЕсть копия накануне
Через 10 днейВсе копии сняты после ошибкиЕсть копия за каждый из последних 14 дней
Через 3 неделиВсе копии сняты после ошибкиЕсть копия трёх-четырёхнедельной давности
Через 3 месяцаВсе копии сняты после ошибкиЕсть копия трёх-четырёхмесячной давности
Через 8 месяцевВсе копии сняты после ошибкиБлижайшая копия - примерно годовой давности
Копии базы данных: за последние семь дней и лесенкой по настройкам file.sieve для сайтов на 1С-Битрикс

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

Лесенка: чем старше копия, тем реже

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

Копии базы данных на хранилище
Каждый день
за последние две недели
14
Каждую неделю
до месяца назад
4
Каждый месяц
до полугода назад
6
Каждый год
до трёх лет назад
3
в любой день
На хранилище около 20 копий
самая старая - двух-трёхлетней давности
свежие сменяют старые каждую ночь
Настройки file.sieve по умолчанию для сайтов на 1С-Битрикс: сколько копий базы хранится на каждой ступени

Сколько места это занимает

Хранить копию каждого дня за три года - больше тысячи архивов. Для сайта, у которого картинки и файлы товаров весят 23 ГБ, это около 25 ТБ. Лесенка держит те же три года истории примерно в 300 ГБ: на хранилище 12-13 копий, и со временем их число не растёт.

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

Как лесенку держит file.sieve

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

  • →Правило звучит как "по копии на каждый из последних 14 дней". Или "по копии на каждый из последних шести месяцев". У одной папки правил несколько, копия остаётся, если подходит хотя бы под одно. Остальные копии инструмент удаляет.
  • →Правила свои у каждой папки. База, файлы сайта и картинки товаров лежат отдельно, и у каждой папки своя лесенка.
  • →Копию из нескольких частей удаляет только целиком. Копия базы бывает разбита на несколько файлов. Если удалить один и оставить остальные, копия перестанет открываться, поэтому части живут и удаляются вместе.

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

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

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

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

Сколько копий вашего сайта лежит на хранилище?

Обсудим ваш проект - посмотрим, от какого числа самая старая копия, кто и по какому правилу удаляет старые и что будет, когда место на хранилище кончится.