Перейти к содержимому

Резервные копии: правило 3–2–1

Правило 3–2–1 — минимальная схема, при которой данные переживают почти любую беду: 3 копии данных, на 2 разных носителях, 1 копия — вне площадки (в другом месте). Статья показывает, как собрать эту схему для типового проекта на VPS без бюрократии.

  • Копия 1 — рабочие данные на сервере. Это не бэкап, это точка отсчёта.
  • Копия 2 — бэкапы панели (включить за минуту): автоматические снапшоты диска на отдельном хранилище. Закрывает «сломал конфиг», «обновление пошло не так», сбой диска.
  • Копия 3 — вне площадки: то, что спасает от редкого, но фатального — удаления сервера вместе с его бэкапами (после 14 дней приостановки), угона аккаунта, отказа хранилища. Варианты: другой облачный провайдер, ваш компьютер, S3-бакет другого аккаунта.

«Разные носители» сегодня = «разные независимые хранилища»: дисковое хранилище бэкапов панели и объектное хранилище/S3/ваш ПК. Механика разная — значит, и отказывают они не одновременно.

Дампы и файлы по SSH — простой и честный путь:

Окно терминала
# база данных
pg_dump -h хост -U пользователь имя_базы | gzip > db-$(date +%F).sql.gz
# или mysqldump --single-transaction ...
# файлы проекта
rsync -avz root@адрес:/var/www/проект/ ~/backup/проект/

Автоматизируйте cron’ом на вашей машине (или втором сервере) — машина, которая делает копию, должна не быть тем же сервером, что и данные.

Проверка — главный шаг, о котором забывают

Заголовок раздела «Проверка — главный шаг, о котором забывают»

Копия, которую ни разу не восстанавливали, — это надежда, а не бэкап. Раз в месяц:

  1. Восстановите копию на тестовой цели (или локально в docker).
  2. Убедитесь, что приложение поднимается и данные читаются.
  3. Запишите, сколько времени заняло восстановление — это и есть ваш реальный RTO.

На вопрос «что будет, если сервер исчезнет прямо сейчас?» у вас есть три честных ответа: где копии, как восстанавливать, сколько это займёт.

Симптом Причина Что делать
Бэкапы есть, а восстановить нечего Дамп пустой/битый уже давно Проверка восстановления раз в месяц; алерты на размер дампа
Все копии в одном аккаунте Схема не 3–2–1, а 3–1–0 Вынесите копию в независимое место
«Некогда проверять» Это самая дорогая экономия Начните с одного теста квартал — 15 минут
Бэкапы панели — разве не всё, что нужно?

Они закрывают большинство сценариев и стоят копейки. «Вне площадки» нужен от сценария «исчез весь аккаунт/хранилище» — редко, но именно такие случаи фатальны.

Как часто делать копии?

Ответ = сколько данных вы готовы потерять. Бэкапы панели: ежедневно по расписанию (или еженедельно для стабильных проектов). Дампы наружу — хоть ежечасно, cron не жалуется.

Сколько хранить?

Типовая схема «дед»: 7 дневных, 4 недельных, 3–6 месячных. Бэкапы панели: до 3 копий на сервер, для длинной истории — наружу.