Налаштування disaster recovery для 1С-Бітрікс

Налаштування disaster recovery для 1С-Бітрікс Сервер упав о 2:30 ночі. База даних востаннє бекапилася о 23:00. Сайт недоступний, менеджери не бачать замовлення, клієнти йдуть до конкурентів. План відновлення існує тільки в голові адміністратора — скрипти не оновлювалися рік, а реплікація бази нав
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування disaster recovery для 1С-Бітрікс
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    880
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1163

Налаштування disaster recovery для 1С-Бітрікс

Сервер упав о 2:30 ночі. База даних востаннє бекапилася о 23:00. Сайт недоступний, менеджери не бачать замовлення, клієнти йдуть до конкурентів. План відновлення існує тільки в голові адміністратора — скрипти не оновлювалися рік, а реплікація бази навіть не налаштована. Типова ситуація на проєктах, де disaster recovery (DR) описано в договорі, але ніколи не тестувався. Вартість простою інтернет-магазину на 1С-Бітрікс може становити тисячі гривень на годину — за добу збитки сягають мільйонів. Ми — команда інженерів із 10-річним досвідом відновлення Бітрікс-проєктів — бачили десятки таких аварій. У цій статті розберемо, як побудувати DR, який дійсно працює, а не просто пилиться в документації.

Згідно з офіційною документацією 1С-Бітрікс, налаштування резервного копіювання — обов'язковий крок для проєктів у production.

На практиці типовий проєкт стикається з трьома основними проблемами: бекапи виконуються на тому ж сервері, відсутня реплікація бази даних, і ніхто не перевіряє цілісність архівів. Усі ці ризики накопичуються і в момент збою перетворюються на втрату даних і репутації.

Побудова надійного DR починається з аудиту поточної інфраструктури та вибору відповідної стратегії. Нижче розберемо, які компоненти потребують захисту та які інструменти використовувати.

Компоненти, які потрібно відновлювати

Bitrix-проєкт складається з кількох незалежних шарів, кожен потребує окремої стратегії резервного копіювання:

  • Код застосунку — /var/www/bitrix/ (ядро) та /local/ (кастомізації). Код зберігається в git — це має бути стандарт, не виняток.
  • База даних — PostgreSQL або MySQL. Для Бітрікс із навантаженням — primary/replica схема, снапшоти репліки.
  • Завантажені файли — /upload/, /bitrix/backup/. Обсяг зростає безперервно, часто ігнорується при налаштуванні бекапів.
  • Конфігураційні файли — /bitrix/.settings.php, /bitrix/php_interface/dbconn.php, конфіги nginx/php-fpm.

Вбудований механізм резервного копіювання

Бітрікс має вбудований інструмент бекапа (/bitrix/admin/backup.php). Він створює архіви в /bitrix/backup/ через агент CBackupAgent. Параметри зберігаються в b_option, модуль main:

  • backup_auto — увімкнути автоматичний бекап
  • backup_period — період у годинах
  • backup_keep_count — кількість копій, що зберігаються

Вбудований бекап працює, але має обмеження: при великих проєктах (база > 5 ГБ, /upload/ > 20 ГБ) він таймаутиться, займає багато місця на тому ж сервері та не дає реплікації на зовнішні сховища з коробки.

Чому вбудований бекап не підходить для великих проєктів?

При навантаженні понад 1000 замовлень на день база зростає швидко, і повний дамп перестає встигати завершитися за нічне вікно. Крім того, архів зберігається на тому ж диску, що й сайт — при відмові диска ви втрачаєте все. Для production-проєктів ми рекомендуємо відмовитися від вбудованого бекапа на користь зовнішніх інструментів.

Стратегія: три рівні захисту

Рівень Технологія RPO RTO
1 — реплікація PostgreSQL streaming replication / MySQL GTID секунди хвилини
2 — снапшоти pg_dump / pg_basebackup / xtrabackup до 1 години 15–30 хв
3 — файловий бекап Restic / rsync (інкрементальний) до 24 годин до 1 години

Рівень 1 — БД у реальному часі. PostgreSQL streaming replication або MySQL GTID-реплікація. Репліка приймає WAL/binlog і відстає на секунди. При падінні primary — ручний або автоматичний failover на репліку. Налаштування в postgresql.conf:

wal_level = replica max_wal_senders = 3 wal_keep_size = 1GB 

Рівень 2 — щогодинні снапшоти БД. pg_dump або xtrabackup через cron, результат — у зовнішнє сховище (S3, rsync на offsite-сервер). Для PostgreSQL переважний pg_basebackup для фізичного бекапа — швидше відновлення.

Рівень 3 — файлові бекапи. /upload/ зростає лінійно, повний бекап щодоби недоцільний. Інкрементальний rsync або Restic:

restic -r s3:s3.amazonaws.com/bucket/upload \ backup /var/www/site/upload \ --exclude /var/www/site/upload/resize_cache 

resize_cache виключається — він відновлюється автоматично при зверненні до зображень.

Який RTO і RPO можна гарантувати?

Для типового інтернет-магазину з базою до 10 ГБ і відвідуваністю до 10 000 унікальних відвідувачів на добу ми гарантуємо: RPO не більше 1 хвилини за наявності реплікації, RTO — не більше 30 хвилин. Досягається це за рахунок автоматизованого скрипта відновлення та регулярного тестування. Якщо ваш проєкт більший — рахуємо індивідуально.

Тестування DR — обов'язковий крок

DR без регулярного тестування — хибна впевненість. Раз на квартал: беремо останній бекап, підіймаємо на ізольованому стенді, перевіряємо:

# Перевірка цілісності дампа БД pg_restore --list /backup/site.dump | tail -20 # Перевірка, що сайт підіймається з бекапа # Тест: оформити замовлення, зайти в адміністративну частину 

Фіксуємо реальний час відновлення. Якщо він перевищує заявлений RTO — оптимізуємо процедуру.

Що входить у налаштування DR

Етап Тривалість Результат
Аудит поточної інфраструктури 2–3 дні Звіт із ризиками та рекомендаціями
Проєктування схеми DR 1 день Документ з архітектурою
Налаштування реплікації та бекапів 3–5 днів Працюючі скрипти та моніторинг
Тестування відновлення 1 день Протокол із вимірами RTO/RPO
Передача документації 1 день Регламент, скрипти, доступи

У результаті ви отримуєте: налаштовану реплікацію БД, щогодинні снапшоти, інкрементальний бекап upload, скрипт відновлення з покроковою інструкцією, регламент тестування та алерти при збоях.

Що налаштовуємо

  • Streaming replication PostgreSQL/MySQL із моніторингом відставання репліки
  • Щогодинний pg_dump або pg_basebackup у зовнішнє сховище
  • Інкрементальний бекап /upload/ через Restic або rsync із виключенням resize_cache
  • Скрипт відновлення із задокументованим порядком дій
  • Регламент щоквартального тестування з виміром реального RTO
  • Алерти при збої бекапа (відсутність файлу за останні X годин)
Приблизний план тестування DRРаз на квартал виконуйте повне відновлення на ізольованому стенді. Перевіряйте: цілісність бази, працездатність усіх модулів, коректність завантаження файлів. Протоколюйте фактичний час відновлення та порівнюйте з цільовим RTO.

Наш досвід — 10+ років у Бітрікс, понад 50 відновлених проєктів. Гарантуємо, що після налаштування disaster recovery ваш сайт підійматиметься за регламентний час. Зв'яжіться з нами для аудиту вашої поточної схеми бекапів — оцінимо проєкт і запропонуємо оптимальне рішення. Отримайте консультацію з налаштування disaster recovery для вашого 1С-Бітрікс проєкту. Економія від правильно налаштованого DR може вимірюватися мільйонами гривень при аварії.