{jcomments on}

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

В результате появляется необходимость "откатить" базу 1С в прежнее состояние. И желательно, чтобы это состояние было поближе к точке сбоя. В таком деле нам поможет процедура восстановления базы данных из резервной копии. Рассмотрим процедуру на примере клиент-серверной системы 1С, реализованной на MS SQL сервере. О том, как настроить резервное копирование баз данных, можно прочитать в предыдущей статье.

Для того, чтобы иметь возможность восстанавливать базу данных из резервной копии до определённого времени, вариант резервного копирования должен быть "Полный".

Допустим, создание резервных копий у нас происходит по расписанию один раз в сутки в два часа ночи. В три часа дня произошёл сбой в базе 1С, после которого потребовалось восстановить базу на момент времени 14.50.

Для выполнения такой задачи первым делом нужно сохранить резервную копию журнала транзакций базы SQL. Именно журнала транзакций, а не всей базы данных. Это важно. Потому что если создать полную резервную копию базы, то восстановить базу на момент времени "перед сбоем" уже не получится.

Итак, откроем консоль Microsoft SQL Server Management Studio и найдём нужную базу данных. В контестном меню выберем задачу "Резервное копирование". На вкладке "Основное" выберем тип резервного копирования "Журнал транзакций". Далее укажем путь, куда сохранять резервную копию. Компоненты резервной копии: база данных. На вкладке "Опции" задаём вариант сохранения резервной копии. Запускаем резервное копирование.

После того, как резервное копирование закончилось, приступаем к восстановлению базы данных. Переводим базу данных в монопольный режим. Делается это в свойствах базы данных на вкладке "Опции" путём установки параметра "Один пользователь".

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

После того, как восстановление завершится, переходим к следующему шагу. Снова запускаем задание "Восстановление". На этот раз задаём момент времени "перед сбоем", то есть 14.50. Система предложит в качестве источника восстановления уже не полную резервную копию базы, а файл журнала транзакций. Мы выбираем файл, который только что создали, уже после сбоя базы. На вкладке "Опции" флажок "Перезаписывать базу данных" ставить не надо. Запускаем восстановление. База должна восстановиться в состоянии на 14.50, то есть за десять минут до сбоя.