Как делать бэкап?

Опубликовано 08.02.2024

Предыстория

Давно это было 2010 год.... Размещался мой сайт htmlweb.ru на одном из самых лучших 🔝 хостингов по соотношению цена/качество в дата-центре крупнейшего хостинг-провайдера Hosting.ua. 27 марта 2010 года в Одессе в дата-центре случился пожар, датчики сработали, а система пожаротушения - нет. Приехали пожарные и потушили пожар, залив все водой. Да-да-да, именно, - сервера залили водой! На этом хостинге размещалось порядка половины от всех сайтов России, включая сайты крупных компаний и много других сайтов разных стран. Естественно все они "умерли".

А теперь вишенка 🍒 на торте 🍰: резервное копирование, или по научному бэкап, осуществлялся этим же хостинг-провайдером и входил во все тарифные планы без дополнительной оплаты и конечно же все копии хранились в этом же дата-центре! Как говорится: "шах и мат"! Восстановлению не подлежит.

Как правильно делать бэкапы?

Чтобы не было мучительно больно, нужно соблюдать несколько правил, написанных кровью 🩸:
  1. Всегда делайте резервную копию! Вы пишите книгу, делаете сайт или корпоративный портал, фотографируете своих детей, записываете видео со свадьбы... сделайте копию!
  2. Автоматизируйте процесс. Никогда не доверяйте что вы вручную будете нажимать на ярлык, вставлять флешку и копировать. Всё происходит всегда наихудшим образом! Это не я сказал - это закон Мерфи.
  3. Бекап делайте по сложному расписанию, которое позволит откатиться на любую дату назад. Подробнее дальше.
  4. Бэкап никогда не храните в одном квартале с основными данными. Да, иногда горят кварталы, как 21 августа 2017 года в Ростове-на-Дону. Ещё лучше разнесите сервер и бекап в разные юрисдикции. И чем дольше живем, тем этот совет становится актуальнее.
  5. Обязательно периодически, не реже раза в год, и после каждой перенастройки правил и условий, разворачивайте бекап и выборочно проверяйте данные, которые развернулись.
  6. Ни один пользователь боевого сервера, включая root не должен иметь доступ на запись к серверу с бекапами. Заведите отдельную учётку с одним скриптом и только он будет иметь доступ на запись нового бекапа. Обрежте все доступы к нему, чтобы никто никогда не посадил туда вируса или трояна. Зачем? Вспомните про шифровальщиков, которые шифруют все, куда могут дотянуться! Иначе Вы рискуете получить шифрованные бекапы 😢
    Для удобства использования подлинкуйте внешний сервер с бекапами к основному, как папка с доступом только на чтение.

Схема бекапов

Оптимальная схема бекапов для отката на любой важный период и с минимальным перерасходом резервного пространства строится следующим образом:
  • Первого числа каждого месяца делается месячная копия в папку с месячными копиями. Всего хранится 12 месячных копий, что позволяет откатиться на год назад с дискретностью один месяц.
  • Каждый понедельник или любой другой важный для вас день недели, например, в ночь на субботу, делается недельная копия. Недельных копий делается 4 по количеству недель в месяце. Это позволяет откатиться на месяц с небольшим с дискретностью 7 дней. Выбирайте такой день, чтобы месячная копия забирала один из 4х недельных бекапов.
  • Ежедневная копия делается 6 дней, т.к. 7-я копия попадает в недельную.

Данная схема дает возможность откатиться на период от одного дня до одного года, при этом ы храните всего 6+3+12 = 21 копия!

Список статей
.