Как сделать резервную копию базы 1С
Содержание
Резервную копию базы
1С делают одним из трёх способов: выгрузка в файл .dt через Конфигуратор, встроенное «Резервное копирование
и восстановление» внутри самой программы или копия средствами СУБД для клиент-серверного варианта. Способ зависит от того, файловая у вас база или серверная, и от её размера.
Файловую базу
до пары гигабайт проще выгрузить в .dt или скопировать целиком, пока никто в ней не работает
. Для серверной базы на десятки гигабайт .dt создаётся медленно и грузит сервер — там выигрывает резервирование средствами MS SQL или PostgreSQL.
Разберём каждый способ по шагам: как подготовиться, как настроить копирование по расписанию, как восстановить базу и как убедиться, что копия действительно открывается.
Что даёт резервная копия и чего не заменяет
Копия — это слепок базы на конкретный момент. Из неё поднимают данные после любой беды. Вот типичные случаи, когда выручает именно бэкап:
- Повреждение файла базы после сбоя питания или зависания сервера — файл
1Cv8.1CDперестаёт открываться. - Вирус-шифровальщик зашифровал файлы на диске, включая базу.
- Неудачное обновление конфигурации или платформы — после него база работает неправильно, а откатить обновление штатно нельзя.
- Ошибочная групповая операция — перепроведение, удаление помеченных объектов, групповое изменение реквизитов задело лишнее.
- Удалённый документ, который хватились не сразу, а через неделю работы.
Во всех этих ситуациях спасает одно — копия, снятая до инцидента.
Важно понимать границу: RAID-массив, репликация и синхронизация папок резервной копией не являются. Они защищают от отказа диска, но дружно повторяют любую вашу ошибку — удаление и шифрование уедут на все зеркала за секунды. Копия отличается тем, что она отделена во времени и лежит отдельно от боевой базы.
Одна копия на том же диске, где база, спасает только от логических сбоев. Сгорит диск или сервер — пропадёт и база, и бэкап. Храните копии на другом носителе.
Что проверить перед созданием копии
Пара минут подготовки экономит потом переделку.
Тип базы видно в окне запуска 1С: у файловой в строке указан путь к папке на диске или в сети, у серверной — адрес сервера и имя базы через обратный слэш. Это определяет, какие способы вам доступны.
Отдельно продумайте место хранения. Копия на том же диске, где база, бесполезна при отказе этого диска. Минимально приемлемый вариант — другой физический диск того же компьютера. Надёжнее — сетевое хранилище или облако, куда не дотянется шифровальщик с рабочей машины.
Копия файловой базы: три рабочих способа
У файловой базы всё хранится в одном файле 1Cv8.1CD в каталоге базы. Отсюда и способы.
Способ 1. Выгрузка в файл .dt через Конфигуратор
Самый универсальный вариант — формат .dt не зависит от версии СУБД и переносится между компьютерами.
- Запустите базу в режиме «Конфигуратор».
- Откройте
Администрирование → Выгрузить информационную базу…. - Укажите имя и папку для файла
.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 за полгода забьют диск, задание упадёт по нехватке места — и вы останетесь без свежего бэкапа как раз тогда, когда он понадобится. В планировщике и планах обслуживания СУБД есть отдельный шаг удаления файлов старше заданного срока.
/DumpIB через «Планировщик заданий» Windows ночью.BACKUP DATABASE / pg_dump по плану обслуживания..dt через Конфигуратор — формат не зависит от СУБД.Держите не одну копию, а несколько поколений: например, ежедневные за последнюю неделю плюс по одной на начало месяца. Шифровальщик или скрытое повреждение данных можно заметить не сразу, и свежая копия окажется уже испорченной.
Как восстановить базу из резервной копии
Восстановление зависит от того, в каком формате сделана копия.
Из файла .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 повреждён, берите предыдущее поколение копии — поэтому и держат несколько.