Как сделать резервную копию базы 1С

· 10 мин

Содержание

Резервную копию базы 1С делают одним из трёх способов: выгрузка в файл .dt через Конфигуратор, встроенное «Резервное копирование и восстановление» внутри самой программы или копия средствами СУБД для клиент-серверного варианта. Способ зависит от того, файловая у вас база или серверная, и от её размера.

Файловую базу до пары гигабайт проще выгрузить в .dt или скопировать целиком, пока никто в ней не работает . Для серверной базы на десятки гигабайт .dt создаётся медленно и грузит сервер — там выигрывает резервирование средствами MS SQL или PostgreSQL.

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

Что даёт резервная копия и чего не заменяет

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

  • Повреждение файла базы после сбоя питания или зависания сервера — файл 1Cv8.1CD перестаёт открываться.
  • Вирус-шифровальщик зашифровал файлы на диске, включая базу.
  • Неудачное обновление конфигурации или платформы — после него база работает неправильно, а откатить обновление штатно нельзя.
  • Ошибочная групповая операция — перепроведение, удаление помеченных объектов, групповое изменение реквизитов задело лишнее.
  • Удалённый документ, который хватились не сразу, а через неделю работы.

Во всех этих ситуациях спасает одно — копия, снятая до инцидента.

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

Одна копия на том же диске, где база, спасает только от логических сбоев. Сгорит диск или сервер — пропадёт и база, и бэкап. Храните копии на другом носителе.

Что проверить перед созданием копии

Пара минут подготовки экономит потом переделку.

Перед бэкапом
Выполнено: 0 / 5

Тип базы видно в окне запуска 1С: у файловой в строке указан путь к папке на диске или в сети, у серверной — адрес сервера и имя базы через обратный слэш. Это определяет, какие способы вам доступны.

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

Копия файловой базы: три рабочих способа

У файловой базы всё хранится в одном файле 1Cv8.1CD в каталоге базы. Отсюда и способы.

Способ 1. Выгрузка в файл .dt через Конфигуратор

Самый универсальный вариант — формат .dt не зависит от версии СУБД и переносится между компьютерами.

  1. Запустите базу в режиме «Конфигуратор».
  2. Откройте Администрирование → Выгрузить информационную базу….
  3. Укажите имя и папку для файла .dt, нажмите «Сохранить».

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

.dt удобен как «архив на переезд»: его можно загрузить в новую пустую базу на другом компьютере. Но для ежедневного бэкапа крупной базы он медленнее простого копирования файла.

Способ 2. Встроенное резервное копирование

В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11) есть собственный механизм — работает прямо в режиме «1С:Предприятие», Конфигуратор не нужен.

Откройте Администрирование → Обслуживание → Резервное копирование и восстановление и выберите «Создать резервную копию». Программа сама корректно закроет базу и сохранит архив.

Этот механизм работает только с файловыми базами. Для клиент-серверного варианта его в интерфейсе не будет — там резервируют средствами СУБД.

Способ 3. Простое копирование файла базы

Когда в базе никого нет, можно просто скопировать весь каталог базы (главное — файл 1Cv8.1CD) в другую папку обычным проводником или архиватором.

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

Вместе с 1Cv8.1CD в каталоге базы лежат служебные файлы (1Cv8.lgf или папка 1Cv8Log — журнал регистрации, 1Cv8Tmp.1CD — временные данные). Для восстановления данных достаточно самого 1Cv8.1CD, но если хотите сохранить и журнал действий пользователей , копируйте каталог целиком.

Копия клиент-серверной базы

Здесь данные лежат не в файле 1С, а в СУБД — MS SQL Server или PostgreSQL. Способов два.

Средствами СУБД (рекомендуется для больших баз). Это самый быстрый и щадящий путь:

  • MS SQL — команда BACKUP DATABASE или план обслуживания в SQL Server Management Studio. Создаёт файл .bak.
  • PostgreSQL — утилита pg_dump для логической копии или pg_basebackup для физической.

Такой бэкап снимается без остановки работы пользователей и не зависит от платформы 1С. Настраивает его администратор СУБД. Для MS SQL чаще используют полную модель восстановления с регулярными резервными копиями журнала транзакций — это позволяет восстановиться не только на момент ночного бэкапа, но и почти на любую точку в течение дня.

Через Конфигуратор в .dt. Выгрузка Администрирование → Выгрузить информационную базу… работает и для серверной базы — но требует монопольного доступа и на большой базе идёт долго. Годится как редкий «полный архив», не как ежедневный механизм.

Копия средствами СУБД сохраняет только данные базы. Настройки кластера серверов 1С (список информационных баз, параметры) в неё не входят — их резервируют отдельно.

Автоматизация: чтобы бэкап делался сам

Ручной бэкап работает ровно до первого «забыл». Поэтому копирование ставят на расписание.

Встроенное расписание. В том же разделе Администрирование → Обслуживание → Резервное копирование и восстановление включается автоматическое копирование по графику (например, ежедневно при завершении работы). Самый простой вариант для файловой базы.

Планировщик заданий Windows + командная строка. Для файловой базы без присмотра пользователей надёжнее запускать выгрузку скриптом. Команда:

"C:\Program Files\1cv8\8.3.24.1234\bin\1cv8.exe" DESIGNER ^
  /F"C:\bases\buh" /N"Администратор" /P"пароль" ^
  /DumpIB "D:\backup\buh_%date:~-10%.dt" /DisableStartupDialogs

Путь к 1cv8.exe, имя базы, логин и пароль подставьте свои. Для серверной базы вместо /F указывается /S"сервер\имя_базы". Такой .bat ставят в «Планировщик заданий» на ночь.

Планы обслуживания СУБД. Для серверных баз расписание бэкапа настраивается в MS SQL (Maintenance Plan) или через cron и pg_dump в PostgreSQL. Это зона администратора сервера.

Какой бы механизм вы ни выбрали, настройте очистку старых копий. Иначе .dt-файлы или .bak за полгода забьют диск, задание упадёт по нехватке места — и вы останетесь без свежего бэкапа как раз тогда, когда он понадобится. В планировщике и планах обслуживания СУБД есть отдельный шаг удаления файлов старше заданного срока.

Какой способ резервного копирования выбрать?

Держите не одну копию, а несколько поколений: например, ежедневные за последнюю неделю плюс по одной на начало месяца. Шифровальщик или скрытое повреждение данных можно заметить не сразу, и свежая копия окажется уже испорченной.

Как восстановить базу из резервной копии

Восстановление зависит от того, в каком формате сделана копия.

Из файла .dt. В Конфигуратор той базы, куда восстанавливаете: Администрирование → Загрузить информационную базу…, указать файл .dt.

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

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

Из копии файла 1Cv8.1CD. Просто положите сохранённый файл в каталог базы вместо повреждённого (старый предварительно переименуйте, не удаляйте). Платформа должна быть той же версии или новее — иначе база не откроется.

Из бэкапа СУБД. Восстановление делает администратор средствами MS SQL (RESTORE DATABASE) или PostgreSQL (pg_restore). После этого базу подключают к кластеру серверов, если её там ещё нет.

Частая задача — поднять копию, чтобы достать один удалённый документ, не трогая рабочую базу. Для этого загрузите .dt в отдельную новую пустую базу и перенесите нужные данные вручную, а не восстанавливайте поверх боевой.

Как убедиться, что копия рабочая

Копия, которую никто ни разу не открыл, — это надежда, а не защита. Проверять нужно заранее.

  • Пробное восстановление. Раз в месяц поднимите копию в тестовую базу и откройте её в режиме «1С:Предприятие». Открылась, виден список документов — копия живая.
  • Проверка файловой базы утилитой. Утилита chdbfl.exe из каталога bin платформы проверяет физическую целостность файла 1Cv8.1CD. Запускать её можно только по закрытой базе.
  • Тестирование и исправление. В Конфигураторе Администрирование → Тестирование и исправление проверяет логическую целостность. На копии его гонять безопасно — боевую базу это не затронет.

Контроль размера файла копии — минимальная, но полезная проверка автобэкапа. Если ночной .dt вдруг стал в разы меньше обычного, задание отработало с ошибкой — копия, скорее всего, битая.

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

Чем ещё защитить данные в 1С

Резервное копирование — основа, но не единственный рубеж.

  • Снимки виртуальной машины (снапшоты). Если 1С стоит на виртуальном сервере, снимок поднимает всю систему целиком за минуты. Удобно перед обновлением платформы или конфигурации. Но снапшот — не замена бэкапу базы: его нельзя хранить месяцами.
  • Облачный сервис 1С (1cfresh). В облачном варианте провайдер сам делает резервные копии и хранит их. Свою копию оттуда обычно тоже можно выгрузить.
  • Правило 3-2-1. Три копии данных, на двух разных носителях, одна из них — вне офиса (другой диск, сетевое хранилище или облако). Простое правило, которое закрывает и отказ диска, и пожар, и шифровальщика.
  • Журнал регистрации. Он не восстанавливает данные, но помогает понять, кто и когда внёс изменения, — полезно при разборе инцидента и при поиске момента, на который стоит откатиться.
  • Контроль доступа к копиям. Папку с бэкапами стоит закрыть от рядовых пользователей. Если шифровальщик запустится под учётной записью, у которой есть права на эту папку, он доберётся и до копий — поэтому доступ на запись туда оставляют только служебной учётной записи резервного копирования.

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

Чем .dt отличается от копии файла 1Cv8.1CD?
.dt — это логическая выгрузка данных, не зависит от версии платформы и СУБД, годится для переноса на другой компьютер. Копия 1Cv8.1CD — побайтовый слепок файловой базы: создаётся быстрее, но работает только с той же или более новой версией платформы.
Можно ли сделать копию, когда пользователи работают в базе?
Выгрузка в .dt и загрузка требуют монопольного доступа — сеансы придётся завершить. А бэкап средствами MS SQL или PostgreSQL снимается без остановки работы, это главный плюс серверного варианта.
Сколько места занимает резервная копия?
Файл .dt обычно в 2-5 раз меньше самой базы за счёт сжатия. Копия файла 1Cv8.1CD равна размеру базы. Бэкап СУБД — примерно как база или чуть меньше.
Как часто делать бэкап?
По объёму ввода данных: активную рабочую базу — ежедневно, лучше ночью. Храните несколько поколений копий, чтобы было к чему откатиться, если свежая окажется повреждённой.
Копия не загружается — что делать?
Проверьте, что версия платформы не ниже той, в которой копия сделана, и что база открыта монопольно. Если .dt повреждён, берите предыдущее поколение копии — поэтому и держат несколько.