Восстановление базы 1С из бэкапа: .dt, SQL-дампы и образы дисков
Содержание
Способ восстановления зависит от того, как сделан бэкап. Выгрузку .dt возвращают через Конфигуратор: Администрирование → Загрузить информационную базу. Файловую базу
— обычным копированием файла 1Cv8.1CD обратно в каталог. Серверную — средствами СУБД: RESTORE DATABASE в MS SQL или pg_restore в PostgreSQL. Образ диска или виртуальной машины откатывают той программой, что его создавала.
Ниже — что выбрать под каждый тип копии, точные пути и команды, а также ошибки, на которых чаще всего спотыкаются при развёртывании резервной копии базы 1С 8.3.
Любая загрузка .dt и восстановление на уровне СУБД полностью затирают текущее содержимое базы. Если в рабочей базе после создания копии успели поработать — эти данные пропадут. Перед восстановлением поверх рабочей базы сделайте свежую копию её текущего состояния.
Какие бывают копии и чем они отличаются
У «резервной копии 1С» нет одного формата. Под этим словом скрывают четыре разные вещи, и восстанавливают их по-разному.
- 📦 Выгрузка
.dt— внутренний формат 1С. Содержит конфигурацию и все данные, не зависит от СУБД. Файловую базу можно выгрузить в.dtи загрузить в серверную, и наоборот. Делается и грузится через Конфигуратор. - 🗄️ Дамп СУБД —
.bakдля MS SQL Server или файлpg_dumpдля PostgreSQL. Относится только к серверному (клиент-серверному) варианту. Восстанавливается средствами самой СУБД, 1С в этом не участвует. - 📁 Копия файла базы — для файлового варианта это файл
1Cv8.1CDв каталоге базы. Резервная копия — это просто его копия, сделанная при закрытой базе. - 💽 Образ диска или ВМ —
.tib(Acronis),.vhdx, снапшот гипервизора. Это копия всего сервера или диска целиком, а не отдельной базы.
Как понять, что у вас:
| Тип копии | Расширение | Что восстанавливает | Чем откатывать |
|---|---|---|---|
| Выгрузка 1С | .dt | Одну базу (данные + конфигурация) | Конфигуратор 1С |
| Дамп MS SQL | .bak | Серверную базу | SQL Server / SSMS |
| Дамп PostgreSQL | .backup, .sql, .dump | Серверную базу | pg_restore, psql |
| Файл базы | .1CD | Файловую базу | Копирование файла |
| Образ | .tib, .vhdx, снапшот | Весь диск или ВМ целиком | Acronis / гипервизор |
Если не знаете, файловая у вас база или серверная — откройте окно запуска 1С, выделите базу и посмотрите строку под списком. Для файловой там путь вида File="D:\Bases\Buh", для серверной — Srvr="server";Ref="buh".
Загрузка выгрузки .dt через Конфигуратор
Самый частый случай: есть файл .dt, который делали руками или заданием обслуживания.
- Выгоните всех пользователей из базы. Загрузка идёт монопольно — если кто-то работает, Конфигуратор не пустит.
- Запустите базу в режиме Конфигуратор (в окне запуска 1С выберите базу и нажмите
Конфигуратор). - Меню
Администрирование → Загрузить информационную базу…. - Укажите файл
.dtи подтвердите. 1С предупредит, что текущая база будет перезаписана, — соглашайтесь, если это то, что нужно. - После загрузки Конфигуратор предложит перезапуститься. Согласитесь.
Монопольный доступ для .dt нужен не «на всякий случай»: при загрузке переписывается вся структура и все данные базы, и параллельная работа пользователей привела бы к разрушению.
Загрузка из командной строки пригодится для автоматизации и серверного обслуживания:
"C:\Program Files\1cv8\8.3.24.1234\bin\1cv8.exe" DESIGNER ^
/F"D:\Bases\Buh" /N"Администратор" /P"пароль" ^
/RestoreIB "D:\backup\buh.dt" /DisableStartupMessages
Для серверной базы вместо /F указывают /S"server\ref". Парный ключ /DumpIB делает выгрузку — его же ставят в задание резервного копирования.
.dt из более новой платформы не загрузится в старую. Платформа, в которой вы грузите копию, должна быть версии не ниже той, где копию делали. Если при загрузке 1С ругается на версию — обновите платформу до нужного номера.
Восстановление серверной базы из дампа СУБД
Если база клиент-серверная, данные лежат в СУБД, и правильный бэкап — это дамп СУБД, а не .dt. Он снимается без остановки работы и восстанавливается точно в то состояние, которое было на момент снятия.
MS SQL Server. Восстановление делают из .bak через SQL Server Management Studio или запросом. Перед этим нужно, чтобы к базе никто не был подключён, — остановите службу сервера 1С или переведите базу в однопользовательский режим.
USE master;
ALTER DATABASE [buh] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [buh]
FROM DISK = N'D:\backup\buh.bak'
WITH REPLACE, RECOVERY;
ALTER DATABASE [buh] SET MULTI_USER;
WITH REPLACE разрешает перезапись существующей базы, RECOVERY оставляет базу готовой к работе после восстановления.
PostgreSQL. Формат дампа зависит от того, как его снимали. Для архива pg_dump -Fc (custom) восстанавливают через pg_restore, для обычного SQL-файла — через psql.
# Архивный формат (-Fc): обычно сначала создают пустую базу
createdb -U postgres buh
pg_restore -U postgres -d buh -c D:\backup\buh.backup
# Простой SQL-дамп
psql -U postgres -d buh -f D:\backup\buh.sql
Ключ -c в pg_restore удаляет объекты перед восстановлением — удобно при развёртывании поверх существующей базы.
Остановка службы сервера 1С оборвёт сеансы всех пользователей всех баз на этом сервере, а не только восстанавливаемой. Делайте это в окно, когда в кластере никто не работает, и предупредите пользователей заранее.
После восстановления на уровне СУБД имя базы и строка подключения в кластере 1С не меняются — если вы восстановили данные в ту же базу СУБД, 1С подхватит их сама. Регистрировать ничего не нужно.
Если база развёрнута в новой базе СУБД
Иногда дамп разворачивают не поверх старой базы, а в новую (чтобы сравнить или не трогать рабочую). Тогда в кластере 1С появляется «новая» информационная база, которую нужно подключить к восстановленной базе СУБД.
Это делают в консоли администрирования серверов 1С:
- Откройте оснастку
Администрирование серверов 1С Предприятия(или утилитуracдля Linux-сервера). - Разверните узел
Локальный → кластер → Информационные базы. - Добавьте информационную базу и в её свойствах укажите сервер СУБД, имя восстановленной базы данных и логин/пароль СУБД.
- Снимите флажок создания базы, если база СУБД уже существует, — иначе сервер попытается создать пустую поверх.
Для командной строки на Linux порядок тот же через rac; точные параметры смотрите в rac help, подкоманды — rac infobase.
Восстановление из образа диска или виртуальной машины
Образ (.tib, .vhdx, снапшот гипервизора) — это копия всего сервера, а не одной базы. Его откатывают, когда сервер не загружается или нужно вернуть систему целиком.
- Acronis (
.tib) — восстановление через загрузочный носитель Acronis или из работающей системы. Можно развернуть весь диск или достать из образа отдельные файлы (в том числе1Cv8.1CDили каталог данных PostgreSQL). - Снапшот VMware/Hyper-V — откат средствами гипервизора. Возвращает виртуальную машину в состояние на момент снимка вместе с ОС, службами и базой.
.vhdx/.vhd— виртуальный диск можно подмонтировать в Windows (Управление дисками → Присоединить виртуальный жёсткий диск) и скопировать нужные файлы, не разворачивая всё.
Образ хорош как «страховка последней инстанции», но для повседневного восстановления одной базы он избыточен: откатывая весь сервер, вы теряете и другие базы, и настройки, сделанные после снимка. Для штатного бэкапа конкретной базы используйте дамп СУБД или .dt.
Регистрация восстановленной базы в списке
Когда база восстановлена, её нужно открыть. Если вы грузили .dt в уже существующую базу из списка — она открывается как обычно. Если развернули базу в новый каталог или подключили к новой базе СУБД — добавьте её в список.
- В окне запуска 1С нажмите
Добавить…. - Выберите
Добавление в список существующей информационной базы. - Укажите тип:
- для файловой —
На данном компьютере или в локальной сетии путь к каталогу с файлом1Cv8.1CD; - для серверной —
На сервере 1С:Предприятияи реквизитыимя кластера/имя базы.
- для файловой —
- Задайте имя базы в списке и завершите.
Для файловой базы восстановление вообще может свестись к одному шагу: закройте 1С у всех, замените файл 1Cv8.1CD в каталоге базы на копию — и всё. Запись в списке запуска при этом не меняется, потому что путь к каталогу остался прежним.
Типичные ошибки при восстановлении
Большинство проблем — не в самой 1С, а в доступе, версиях и правах. Разберём по симптомам.
Сеансы → удалить), в файловой — закройте 1С на всех компьютерах. Проверьте, не висит ли служба регламентных заданий..cf/.cfe (это конфигурация, а не база) или дамп СУБД. Через Загрузить информационную базу грузится только .dt..dt сделан в более новой версии платформы. Обновите платформу до версии не ниже той, в которой делали выгрузку, и повторите.SINGLE_USER WITH ROLLBACK IMMEDIATE или остановите службу сервера 1С, затем повторите RESTORE.--no-owner.Отдельно про права: при восстановлении из командной строки или на Linux убедитесь, что у учётной записи, от которой работает сервер 1С (usr1cv8) или СУБД, есть доступ на чтение к файлу копии и на запись в каталог базы.
Стратегия резервного копирования
Восстановление начинается задолго до аварии — с того, как настроены копии. Минимальный рабочий набор правил:
Как настроить:
- Файловая база. Задание обслуживания внутри 1С (
Администрирование → Обслуживание → Резервное копирование) делает.dtпо расписанию. Надёжнее — внешний скрипт с ключом/DumpIBплюс копирование файла на другой носитель. - Серверная база. Копии снимает СУБД, а не 1С. В MS SQL — план обслуживания (
Maintenance Plan) с полным и разностным бэкапом. В PostgreSQL — регламентныйpg_dumpили непрерывная архивация WAL для восстановления на точку во времени.
Копия, которую ни разу не разворачивали, — это не копия, а надежда. Раз в квартал восстанавливайте бэкап в отдельную тестовую базу и убеждайтесь, что она открывается и данные на месте.
Главное правило: не держите единственную копию на том же диске, что и база. Выход диска из строя унесёт и базу, и бэкап одновременно.
Частые вопросы
Чем `.dt` отличается от дампа СУБД?
.dt — универсальный формат 1С, его можно перенести между файловой и серверной базой и между разными СУБД. Дамп (.bak, pg_dump) привязан к конкретной СУБД, но снимается без остановки работы и восстанавливается быстрее на больших базах.Можно ли загрузить `.dt` в базу другой конфигурации?
.dt восстанавливает и данные, и конфигурацию целиком, поверх того, что было. Открыть «бухгалтерскую» выгрузку в базе ЗУП не получится — загрузится именно та конфигурация и данные, что внутри файла.Восстановил серверную базу из `.bak` — нужно ли что-то менять в 1С?
Почему при загрузке `.dt` пишет про версию платформы?
Как достать одну базу из образа Acronis, не разворачивая весь диск?
.tib средствами Acronis и скопируйте из него нужные файлы: каталог файловой базы с 1Cv8.1CD или файлы данных СУБД. Полный откат диска для одной базы не нужен.