Бекапи, які справді рятують: правило 3-2-1 на практиці
Зміст
Стаття
Про бекапи згадують двічі: коли їх налаштовують і коли вони терміново потрібні. Проблема в тому, що між цими подіями зазвичай не перевіряють, чи копії взагалі відновлюються.
Правило 3-2-1
Класична формула: три копії даних, на двох різних носіях, одна з них — поза основним майданчиком. Звучить надлишково, доки не станеться щось із самим сервером.
Найпоширеніша помилка — копія на тому ж сервері, що й сайт. Вона рятує від помилки адміністратора чи невдалого оновлення, але не рятує від виходу диска з ладу, блокування акаунта в хостера чи шифрувальника, який пройдеться всім, до чого має доступ.
Що саме копіювати
- Базу даних — товари, замовлення, клієнти. Найцінніше й найшвидше змінюване.
- Файли сайту — код, теми, модулі, завантаження користувачів.
- Конфігурацію сервера — конфіги веб-сервера, PHP, cron. Без них відновлення затягується на години підбору налаштувань.
- Сертифікати й доступи — окремо й надійно.
Як часто
Питання не в «як часто зручно», а в тому, скільки даних ви готові втратити. Для магазину з кількома замовленнями на день добова копія прийнятна. Для магазину з десятками замовлень на годину втрата доби означає загублені замовлення, які ніхто не відновить — там потрібні частіші копії бази.
Скільки зберігати
Одна остання копія — небезпечна ілюзія. Якщо проблема виникла три дні тому й ви щойно її помітили, єдина свіжа копія вже містить її. Робочий мінімум — кілька щоденних плюс кілька тижневих.
Головне: перевірка відновлення
Копія, з якої жодного разу не відновлювались, — це не бекап, а надія. Типові сюрпризи в момент аварії: дамп бази обрізаний, бо скрипт писав помилки в той самий файл; архів створювався, поки база писалась, і виявився неконсистентним; місце скінчилось три місяці тому, і з того часу копії не створювались, а листи про помилку йшли в спам.
Тому в нормальній схемі є два обов'язкові елементи: контроль, що копія створилась і має адекватний розмір, та періодичне пробне відновлення на окремий стенд.
Мінімальна робоча схема
- Щоденна копія бази й файлів за розкладом.
- Вивантаження на зовнішнє сховище — інший сервер або об'єктне сховище.
- Ротація: кілька щоденних, кілька тижневих, одна щомісячна.
- Сповіщення про невдалий запуск — обов'язково, інакше тиша сприймається як успіх.
- Пробне відновлення раз на квартал.
Налаштування такої схеми — це послуга системи бекапів сервера. Якщо сайт уже постраждав, спершу знадобиться відновлення, а бекапи — щоб історія не повторилась. Для контролю стану сервера корисний моніторинг: він помічає проблеми з місцем на диску до того, як вони зупинять копіювання.