БесплатноБесплатный прототип ключевой страницы и черновик ТЗ при старте проекта

Резервное копирование магазина на 1С-Битрикс

Резервное копирование интернет-магазина на 1С-Битрикс: база, файлы, upload, хранение off-site и восстановление

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

Этот материал — практическое how-to по резервному копированию магазина на 1С-Битрикс: что копировать, как выбрать между штатным модулем и серверными средствами, как хранить копии off-site, шифровать их и — главное — регулярно проверять восстановлением. Бэкап, который не проверяли, бэкапом не считается. Настройку и сопровождение этих процессов мы закрываем услугами автоматизации на 1С.

Коротко

  • Полный бэкап магазина — это база данных, файлы проекта и папка upload, снятые согласованно.
  • Копии обязательно хранят вне сервера (off-site) по правилу 3-2-1 и шифруют из-за персональных данных.
  • Частоту бэкапа задают по RPO — сколько данных вы готовы потерять; держат несколько поколений копий.
  • Непроверенный бэкап — иллюзия защиты: регулярно делайте тестовое восстановление на отдельном стенде.

Почему бэкап — это не «когда-нибудь»

Интернет-магазин — это данные: заказы, каталог, остатки, клиенты, история. В отличие от статического сайта, эти данные постоянно меняются и стоят реальных денег. Потеря базы за день — это потерянные заказы, недовольные клиенты и разрыв с учётной системой. Потеря клиентской базы — это удар по бизнесу, от которого не все восстанавливаются.

Угрозы разнообразны и все реальны: отказ оборудования, ошибка администратора, взлом и шифровальщики, неудачное обновление, случайное удаление данных сотрудником. От большинства из них защищает ровно одно — актуальная, проверенная резервная копия, хранящаяся отдельно. Поэтому бэкап — не задача «на когда-нибудь», а базовая инфраструктурная гигиена, которую настраивают до того, как она понадобится.

Что копировать: база, файлы, upload

Первая ошибка новичков — думать, что бэкап это «копия сайта». На деле магазин состоит из трёх частей, и без любой из них восстановление невозможно.

КомпонентЧто содержитЧем снимают
База данных MySQLЗаказы, каталог, пользователи, настройкиmysqldump, xtrabackup
Файлы проектаЯдро, компоненты, шаблоны, кастомный кодtar, rsync
Папка uploadФото товаров, документы, вложенияrsync, tar
КонфигурацияНастройки подключения, .settings.phpВ составе файлов

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

Обмен данными сайта с 1С Сайткаталог, заказы1Стовары, заказыОбменочередь / APIДанные идут в обе стороны по расписанию или по событию
Схема: сайт и 1С обмениваются данными в обе стороны — по расписанию или по событию. Товары и остатки приходят на сайт, заказы уходят обратно.

RPO и RTO: сколько данных можно потерять

Прежде чем настраивать бэкапы, отвечают на два вопроса, которые определяют всю схему.

Эти два параметра переводят абстрактное «нужны бэкапы» в конкретную схему: частоту копий, способ снятия, объём хранения. Для небольшого магазина RPO в сутки и RTO в несколько часов приемлемы. Для крупного проекта с потоком заказов RPO измеряют минутами, и тогда одними ежедневными дампами не обойтись — добавляют копию бинлогов для восстановления на точку во времени.

Начните с бизнеса, а не с техники: сначала определите допустимую потерю данных и время простоя в деньгах, потом подбирайте под них технологию. Бэкап-схема без RPO/RTO — это стрельба вслепую.

Штатный модуль или серверные средства

В 1С-Битрикс есть встроенный модуль резервного копирования — он удобен для небольших сайтов и разовых копий прямо из админки. Но у него есть предел: на крупном магазине с большой базой и тысячами файлов он может упираться в лимиты по времени и памяти, сильно нагружать сервер или падать на середине.

Для серьёзного магазина надёжнее серверные инструменты:

Выбор зависит от размера проекта: небольшому магазину хватит штатного модуля с выгрузкой во внешнее хранилище, крупному нужны серверные средства. Правильное решение под нагрузку и инфраструктуру подбирается индивидуально — об общем фундаменте мы писали в статье про хостинг и инфраструктуру BitrixVM.

Полные и инкрементные копии

Чтобы бэкапы не съедали весь диск и не грузили сервер круглосуточно, их комбинируют по типам.

Типовая рабочая схема для магазина: полная копия раз в неделю плюс инкрементные ежедневно, а базу — чаще. Для файлов, которые меняются редко (фото товаров в upload), инкремент через rsync особенно эффективен: копируются только новые и изменённые файлы. Так достигается баланс между глубиной защиты, объёмом хранения и нагрузкой на сервер.

Хранение off-site и правило 3-2-1

Самая опасная и распространённая ошибка — хранить бэкап на том же сервере, что и магазин. При отказе диска, взломе сервера или его удалении вы теряете данные и их копию одновременно. Такой «бэкап» защищает только от случайного удаления файла, но не от катастрофы.

Отраслевой стандарт — правило 3-2-1:

  1. Три копии данных. Оригинал плюс минимум две резервные копии.
  2. Два разных носителя. Копии не лежат на одном диске или в одной системе.
  3. Одна копия вне площадки. Хотя бы одна копия хранится off-site — в другом дата-центре или облачном хранилище.

Практически это означает: копии автоматически выгружаются во внешнее объектное хранилище или на отдельный резервный сервер. Тогда даже полная потеря основного сервера не приводит к потере данных — вы разворачиваете магазин из off-site копии.

Шифрование и персональные данные

Бэкап магазина — это полная копия чувствительных данных: персональные данные клиентов, заказы, контакты, история покупок. Утечка резервной копии равнозначна утечке всей базы, а хранение персональных данных регулируется законодательством. Поэтому копии защищают не менее строго, чем боевую базу.

Вопросы безопасного доступа к данным и каналов передачи тесно связаны с общей защитой проекта — смежную тему мы разбираем в статье про безопасность REST и вебхуков в Битрикс.

Автоматизация по расписанию

Бэкап, который делают вручную, рано или поздно забывают сделать — обычно перед самой аварией. Поэтому резервное копирование обязательно автоматизируют, чтобы оно происходило само и без участия человека.

Отдельно про агентов 1С-Битрикс: не стоит вешать тяжёлое копирование на них — агенты и хиты не предназначены для длительных ресурсоёмких задач и могут тормозить сайт. Тяжёлые бэкапы запускают на уровне сервера через cron, а не внутри приложения.

Проверка восстановлением

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

  1. Регулярное тестовое восстановление. Периодически разворачивайте копию на отдельном стенде, а не «надейтесь, что сработает».
  2. Проверка целостности. Убедитесь, что магазин запускается, каталог на месте, заказы читаются, картинки грузятся.
  3. Замер времени. Засеките, за сколько реально восстанавливаетесь — это ваш фактический RTO.
  4. Фиксация инструкции. Опишите порядок восстановления, чтобы в аварии не импровизировать.

Тестовый стенд для таких проверок удобно поднимать через тот же процесс, что и рабочие окружения — об этом мы писали в материале про CI/CD и деплой на Битрикс. Проверенный по этому регламенту бэкап — единственный, на который можно положиться.

Бэкап в процессе деплоя

Отдельный сценарий, где бэкап критичен, — обновления и выкладка изменений. Обновление ядра, модуля или релиз кода может сломать магазин, и тогда единственный быстрый путь назад — откат к свежей копии. Поэтому создание бэкапа встраивают прямо в процесс деплоя.

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

Частые ошибки резервного копирования

Чек-лист настройки бэкапов

  1. Определены RPO и RTO. Известно, сколько данных можно потерять и за сколько восстановиться.
  2. Копируются все части. База, файлы проекта и папка upload снимаются согласованно.
  3. Схема копий выбрана. Полные и инкрементные копии с подходящей частотой.
  4. Хранение off-site. Реализовано правило 3-2-1, копия есть вне основного сервера.
  5. Копии шифруются. Архивы защищены, доступ к хранилищу и ключам ограничен.
  6. Всё автоматизировано. Запуск по cron, ротация поколений, уведомления о сбоях.
  7. Восстановление проверено. Регулярное тестовое разворачивание на стенде, есть инструкция.
  8. Бэкап в деплое. Копия создаётся автоматически перед каждым обновлением прода.

Вывод

Резервное копирование магазина на 1С-Битрикс — это не разовая настройка, а живой процесс. Полный бэкап включает базу, файлы и upload; копии хранят off-site по правилу 3-2-1 и шифруют из-за персональных данных; частоту задают по RPO, а поколений держат несколько. Всё это автоматизируют по расписанию и встраивают в деплой как шаг перед обновлением.

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

Частые вопросы

Что именно нужно копировать в магазине на 1С-Битрикс?

Три составляющих: базу данных MySQL (заказы, каталог, пользователи), файлы проекта (ядро, компоненты, шаблоны, кастомный код) и загруженные файлы из папки upload (фото товаров, документы). Полноценный бэкап — это все три части, снятые согласованно. Резервная копия только базы или только файлов не позволит восстановить работающий магазин.

Штатного бэкапа 1С-Битрикс достаточно?

Встроенный модуль резервного копирования удобен для небольших проектов и разовых копий, но у него есть ограничения по размеру и нагрузке: на крупном магазине он может не справиться или сильно нагрузить сервер. Для серьёзного магазина надёжнее серверные средства — mysqldump или xtrabackup для базы и rsync или tar для файлов, запускаемые по расписанию с хранением копий вне сервера.

Как часто делать резервные копии?

Зависит от того, сколько данных вы готовы потерять (RPO). Для активного магазина базу копируют ежедневно, а на пиковых проектах — несколько раз в день или ведут копию бинлогов для восстановления на точку. Файлы, которые меняются реже, можно копировать реже полными копиями и чаще — инкрементно. Ключевое правило: частота бэкапа должна соответствовать допустимой потере данных.

Зачем хранить копии на другом сервере?

Если бэкап лежит на том же сервере, что и магазин, то при отказе диска, взломе или удалении вы теряете и данные, и их копию одновременно. Резервные копии обязательно выносят off-site — в другое хранилище или дата-центр. Классическое правило 3-2-1: три копии данных, на двух разных носителях, одна из них — вне площадки.

Нужно ли шифровать резервные копии?

Да, если в базе есть персональные данные клиентов и заказы — а в магазине они есть всегда. Бэкап — это полная копия чувствительных данных, и его утечка равнозначна утечке всей базы. Копии, особенно хранящиеся во внешнем облаке, шифруют, а доступ к хранилищу ограничивают. Это требование не только безопасности, но и законодательства о персональных данных.

Почему бэкап нужно проверять восстановлением?

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

Как бэкап связан с обновлениями и деплоем?

Резервная копия — обязательный шаг перед любым обновлением ядра, модуля или выкладкой изменений. Если обновление сломает магазин, откат к свежей копии вернёт его в рабочее состояние за минуты. Поэтому создание бэкапа встраивают прямо в процесс деплоя как автоматический этап перед применением изменений на проде.

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

Одной последней копии мало: проблема может обнаружиться не сразу, и последний бэкап уже унаследует ошибку. Держат несколько поколений по схеме ротации — например, ежедневные за неделю, еженедельные за месяц, ежемесячные за несколько месяцев. Тогда можно откатиться не только к вчерашнему состоянию, но и к более раннему, до того как появилась проблема.

Поделиться:

Уверены, что из вашего бэкапа можно восстановиться?

Настроим автоматическое резервное копирование, хранение off-site, шифрование и регулярную проверку восстановлением. Проверим текущую схему на прочность.

Автоматизация на 1С

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем и сопровождаем интернет-магазины на 1С-Битрикс: настраиваем резервное копирование, восстановление, деплой и защиту данных.

← Все статьи блога