Восстановление архива базы 1С SQL из full бэкапа (Restore Database)

В этой статье рассмотрим такое простое действие, как восстановление архива SQL базы 1с из бэкапа (Restore Database). Также научимся формировать скрипт выполняемого действия.

В качестве примеров будут рассмотрены две версии SQL сервера: Server 2012 (рус.) и Server 2008 R2 (англ.).

На практике очень часто встречаю, что программисты 1с практически не работают с SQL, перекладывая этот функционал на системных администраторов. В результате чего что бы обновить свою базу разработки на актуальную, или для пользователя актуализировать тестовую базу приходится обращаться с данным вопросом к админу, который всегда занят, и это простое и быстрое действие растягивается на неопределенный промежуток времени. На мой взгляд любой программист 1с должен сам уметь выполнять и понимать данный процесс.

Сама по себе физически база 1с на “скуле” представляет собой два файла: база данных (*.MDF) и файлы журнала транзакций (*.LDF). В свойствах базы мы это можем увидеть:

Допустим у нас есть полный (full) архив 1с базы (*существует также и разностный архив, но в данной статье не будем рассматривать его, так как на практике редко встречал работу с ним).

Заходим на “скуль” сервер где находится наша база и запускаем SQL Server Management Studio. В обозревателе объектов выбираем нашу базу данных и через контекстное меню переходим: “Задачи/Восстановить/База данных” (рус.) или “Tasks/Restore/Database” (англ.):

SQL Server 2012 (рус.)

Далее выбираем пункт “Устройство” и указываем путь к нашему архиву. В поле “База данных” автоматически появится наименование восстанавливаемой базы. Затем указываем базу данных, куда мы собираемся заливать наш архив и устанавливаем флажок в табличной части “Восстановление” = “Истина”:

SQL Server 2012 – указываем что и куда восстанавливаем

На разных версиях интерфейс может отличаться, но действия в основном будут одни и те же. Ниже приведен пример для SQL Server 2008 R2:

SQL Server 2008 R2 – указываем что и куда восстанавливаем

Внимание! На закладке “Файлы” или “Options” в табличной части в колонке “Восстановить как” или “Restore As” должны быть указаны пути к файлам базы, в которую мы собираемся восстанавливать архив. Данные пути при выборе файла с архивом автоматически могут заполниться параметрами из архива. Если не проконтролировать эти параметры, то мы можем затереть действующую боевую базу старым архивом, если на данный момент в ней не будет пользователей.

SQL Server 2012 – конечные файлы восстановления
SQL Server 2008 R2 – конечные файлы восстановления

О параметрах восстановления говорить много не будем, о них более подробно можно почитать на сайте документации Майкрософт по ссылке https://technet.microsoft.com/ru-ru/ms188223(v=sql.15).

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

На практике я использую 1 и последний параметр:

SQL Server 2012 – устанавливаем параметры

Теперь осталось только выгнать из базы активных пользователей и завершить фоновые задания, что бы начать процесс восстановления.

Данный способ можно упростить – для этого SQL предоставил возможность формирования скриптов выполняемых действий. Указав все необходимые параметры восстановления просто нажимаем на меню “Скрипты” и получаем готовый запрос:

SQL Server 2012 – формируем скрипт

RESTORE DATABASE [Test1]
FROM DISK = N’C:\BackUp\Test\Test_backup_2019_02_06_220003_2065310.bak’
WITH FILE = 1,
MOVE N’Test’ TO N’D:\BASES\Test1.mdf’,
MOVE N’Test _log’ TO N’D:\BASES\Test1_log.LDF’,
NOUNLOAD, REPLACE, STATS = 10
GO

Теперь что бы восстановить архив в данную базу, достаточно просто поменять путь в параметре FROM DISK: ” C:\BackUp\Test\Test_backup_2019_02_06_220003_2065310.bak’ ” и запустить выполнение скрипта, что в разы быстрее вышеописанного процесса.

0

1 комментарий

  1. Матвей

    Про скрипты интересно, не знал!

    1+

Оставить комментарий

Ваш адрес email не будет опубликован.