{jcomments on}

Важным моментом в работе системы "1С Предприятие" является правильная настройка резервного копирования.

Рассмотрим вариант, когда базы 1С расположены на MS SQL сервере. Резервное копирование будем настраивать штатными средствами данного сервера.

Для настройки используем консоль Microsoft SQL Server Management Studio.

При создании базы данных на сервере MS SQL мы должны задать вариант резервного копирования. Их три: простое резервное копирование, резервное копирование с частичным протоколированием и, наконец, полное резервное копирование.

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

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

После выбора варианта резервного копирования нужно создать задание для агента SQL сервера, которое будет автоматически запускать резервное копирование с заданной нами периодичностью. Делается это в папке агента сервера, которая называется "Задания". Создадим новое задание и назовём его, например, "Резервное копирование". На вкладке "Основное" заполним поля "Пользователь", "Категория", установим флажок "Задание включено".

На вкладке "Шаги" создадим шаг с именем "Резервное копирование". Зададим тип "Скрипт на языке T-SQL". В поле "База данных" выберем системную базу "Мастер", если мы хотим в этом задании делать резервное копирование сразу нескольких пользовательских баз данных. В системной базе "Мастер" регистрируются все пользовательские базы.

В поле команд напишем скрипт для баз данных, резервные копии которых мы будем сохранять.

BACKUP LOG buh_kompaniya TO DISK = 'e:\bkp\buh_kompaniya.bak'
BACKUP DATABASE buh_kompaniya TO DISK = 'e:\bkp\buh_kompaniya.bak'
 
BACKUP LOG ut_kompaniya TO DISK = 'e:\bkp\ut_kompaniya.bak'
BACKUP DATABASE ut_kompaniya TO DISK = 'e:\bkp\ut_kompaniya.bak'
 
go
 

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

DECLARE @path varchar(50)
SET @path =  'e:\bkp\buh_kompaniya_' +  CONVERT(varchar(15),CONVERT(date, GETDATE())) + '.bak'
BACKUP LOG buh_kompaniya TO DISK = @path
BACKUP DATABASE buh_kompaniya TO DISK = @path
 

Команда BACKUP LOG  сохраняет резервную копию журнала транзаций.  Эту команду нужно выполнять до команды BACKUP DATABASE, так как после  BACKUP DATABASE журнал транзакций очищается. Резервная копия журнала транзакций используется для восстановления базы данных SQL на заданный момент времени. Делается это так: сначала восстанавливаем последнюю сохранённую полную копию базы данных, а потом, используя резервную копию журнала транзакций, восстановленную базу "наращиваем" до заданного момента времени.

Команда BACKUP DATABASE сохраняет полную копию базы данных.  

Продолжаем настраивать задание Агента SQL сервера: на вкладке "Прочее" зададим, что нужно делать по окончании шага. Выберем "Сообщить об успешном выполнении задания", если не планируем других шагов. В качестве следующих шагов может быть, например, упаковка резервных копий в архив.

C "Шагами" закончили, вернёмся к вкладкам задания. На вкладке "Планировщик" зададим расписание для резервного копирования.

В целом, наше задание готово. Теперь откроем свойства агента SQL сервера. На вкладке "Основное" установим флажки "Перезапускать агент в случае сбоя" и пропишем путь для файла журнала агента. Настройки на остальных вкладках агента выполняем в зависимости от конкретных потребностей.

Наконец, запустим агент SQL сервера и дождёмся времени, заданного для выполнения резервного копирования. Проверим, что резервные копии баз данных успешно созданы.

Помимо настроек на SQL сервере, нужно перейти в консоль "Управление компьютером" и открыть список служб. Для службы агента SQL сервера необходимо выбрать режим запуска "Авто". Если этого не сделать, то при перезагрузке компьютера агент не запустится.

Вот вроде бы и всё. О том, как восстанавливать базу данных из резервной копии поговорим в следующей статье.