SQL

Как восстановить базу 1С 8.3 из резервной копии SQL BAK

База 1С 8.3 в клиент-серверном варианте может храниться в SQL Server. Если у вас есть файл резервной копии .bak, восстанавливать его нужно средствами SQL Server, чаще всего через SQL Server Management Studio или T-SQL

Самая безопасная логика такая: сначала восстановить базу в тестовое имя, проверить запуск 1С, и только потом принимать решение о замене рабочей базы

Что нужно перед восстановлением

Перед restore проверьте:

  • файл .bak действительно относится к нужной базе
  • есть актуальная копия текущей рабочей базы
  • пользователи 1С завершили работу
  • есть доступ администратора SQL Server
  • известно имя SQL-сервера и имя базы
  • понятно, куда будут восстановлены файлы MDF и LDF
  • версия платформы 1С подходит для запуска восстановленной базы

Не восстанавливайте бэкап поверх рабочей базы, если не уверены в источнике файла. Ошибка в выборе .bak может стереть актуальные данные

Как посмотреть содержимое BAK

Перед восстановлением полезно посмотреть логические имена файлов:

RESTORE FILELISTONLY
FROM DISK = 'D:\Backups\base1c.bak';

В результате вы увидите логические имена data-файла и log-файла. Они понадобятся, если база восстанавливается в новое имя или в другую папку

Восстановление в новую базу через T-SQL

Пример восстановления в новую базу:

USE master;
GO

RESTORE DATABASE base1c_test
FROM DISK = 'D:\Backups\base1c.bak'
WITH
    MOVE 'base1c' TO 'D:\SQLData\base1c_test.mdf',
    MOVE 'base1c_log' TO 'D:\SQLLogs\base1c_test.ldf',
    RECOVERY;
GO

Логические имена base1c и base1c_log нужно заменить на те, которые вернул RESTORE FILELISTONLY

Если путь к файлам указан неверно, SQL Server не сможет восстановить базу

Восстановление через SSMS

В SSMS порядок такой:

  • подключитесь к SQL Server
  • откройте Databases
  • выберите Restore Database
  • в источнике выберите Device
  • укажите файл .bak
  • задайте имя новой базы
  • проверьте вкладку Files
  • убедитесь, что MDF и LDF попадают в правильные папки
  • запустите восстановление

Если восстанавливаете поверх существующей базы, обязательно проверьте опцию замены и убедитесь, что пользователи отключены

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

После восстановления базы в SQL Server нужно добавить или изменить информационную базу в кластере 1С

В форме подключения укажите:

  • сервер 1С
  • имя кластера, если используется
  • SQL Server
  • имя восстановленной базы
  • пользователя SQL Server или Windows-аутентификацию

После подключения откройте базу в режиме 1С:Предприятие или Конфигуратор и проверьте, что данные отображаются корректно

Что делать, если база уже существует

Если вы восстанавливаете поверх существующей базы, сначала переведите пользователей и приложения в режим простоя. Затем можно использовать:

USE master;
GO

ALTER DATABASE base1c
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

RESTORE DATABASE base1c
FROM DISK = 'D:\Backups\base1c.bak'
WITH REPLACE, RECOVERY;
GO

ALTER DATABASE base1c
SET MULTI_USER;
GO

Этот способ жестко отключает активные подключения. Для рабочей базы его используют только после предупреждения пользователей и проверки резервной копии

Мини-практика

На тестовом сервере восстановите .bak не в старое имя, а в имя с суффиксом _test. Затем подключите эту базу в 1С как отдельную информационную базу и проверьте запуск

Так вы потренируетесь без риска для рабочих данных

Частые ошибки

  • Восстановить бэкап поверх рабочей базы без отдельной копии текущего состояния
  • Не проверить логические имена файлов через RESTORE FILELISTONLY
  • Оставить базу в SINGLE_USER
  • Забыть изменить пути MDF и LDF при восстановлении на другой сервер
  • Подключить 1С к старой базе, думая, что она уже смотрит на восстановленную
  • Восстанавливать базу без учета версии платформы 1С

Что почитать дальше по SQL

Если нужен общий маршрут по теме, откройте рубрику SQL. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x