Оцените, пожалуйста, статью, мы стараемся:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Автоматическое резервное копирование и автоматическое восстановление резервных копий базы данных средствами MS SQL Server

В некоторых случаях, кроме обычной настройки резервного копирования рабочей базы данных, бывает полезно автоматически разворачивать созданные копии «в сторонке» для анализа, например, действий пользователей. В некоторых случаях это бывает удобнее, чем использование механизма версионирования объектов в базах 1С.

Часть 1. Автоматическое создание резервной копии

Рассмотрим пример, когда рабочая база данных имеет пять автоматически создаваемых регулярно обновляемых копий по дням недели с понедельника по пятницу. С помощью такого механизма программист, анализирующий работу пользователей, может в любую секунду зайти в базу данных недельной давности.
Рассмотрим пример настройки этого механизма в MS SQL Server 2008 R2.
Зайдем в среду Microsoft SQL Management Studio: Управление – Планы обслуживания – Мастер планов обслуживания.

06052016-1

На первой странице открывшегося мастера нажмем Далее, на следующей странице дадим имя плану обслуживания Четверг и нажмем на кнопку Изменить в поле расписания:

06052016-2

Настроим расписание как показано на рисунке:

06052016-3

Нажмем на кнопу ОК и затем на кнопку Далее в мастере.
На следующей странице мастера выберем Резервное копирование базы данных (полное) и затем два раза жмем на кнопку Далее:

06052016-4

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

06052016-5

Остальные настройки смотри на рисунке ниже:
Переключатель в «Создать резервную копию базы данных в одном или нескольких файлах» — кнопка «Добавить» — указываем путь к файлу, в котором у нас будет копия базы за четверг:

06052016-6

У имени файла не забудьте указать расширение “bak”

06052016-7

Затем указываем Перезаписать в поле Если файлы резервной копии существуют.
Ставим галочку Проверять целостность резервной копии.
В поле Сжимать резервные копии явно задаем параметр Не сжимать резервные копии и затем жмем на кнопку Далее:

06052016-8

В следующем окне указываем где хранить отчет о работе плана обслуживания:

06052016-9

В последнем окне жмем Готово:

06052016-10

Наблюдаем за успешным ходом мастера и закрываем окно:

06052016-11

Теперь можно проверить работоспособность, запустив создание копии вручную (и заодно создав копию за четверг в нужном нам месте – дальше мы этот файл будем использовать при восстановлении):

06052016-12

Таким образом мы настроили еженедельное создание копии рабочей базы по четвергам в 23:30 в отдельно лежащий на диске файл с именем Четверг.bak
Аналогично настраиваем создание копий в пятницу, понедельник, вторник и среду – каждая копия в своем файле, который будет еженедельно перезаписываться, каждый в свой день.

Часть 2. Автоматическое восстановление базы данных

Теперь нужно настроить автоматическое восстановление из этих копий в базы данных, названные для примера Понедельник, Вторник, Среда, Четверг, Пятница (создание баз данных см. в руководстве администратора по созданию баз данных 1С – лучше всего создавать SQL базы через стандартный ярлык запуска 1С, не нужно мудрить и идти на сервер, создавать там базу вручную в среде MS SQL).
Рассмотрим настройку автоматического восстановления базы данных из созданного ранее бэкапа, снова на примере Четверга.
В среде MS SQL Management Studio выбираем пункт Агент SQL Server – Задание – Создать задание:

06052016-13

В открывшемся окне на закладке Общие в поле Имя даем название, например, Восстановление Четверга, остальные поля в окне не трогаем:

06052016-14

Переходим на вкладку Шаги и жмем Создать:

06052016-15

В открывшемся окне даем имя шагу, например, RESTORE DATABASE.
В поле для скрипта пишем следующий код:

IF EXISTS (SELECT name FROM sys.databases WHERE Name = N’Четверг’)
ALTER DATABASE [Четверг] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
IF EXISTS (SELECT name FROM sys.databases WHERE Name = N’Четверг’)
DROP DATABASE [Четверг]
GO
RESTORE DATABASE [Четверг] from disk = ‘D:BuckupЧетвергЧетверг.bak’
with
move ‘zup30k’ to ‘F:MSSQLЧетверг.mdf’,
move ‘zup30k_log’ to ‘E:MSSQLЧетверг_log.ldf’,
RECOVERY, REPLACE, STATS=10

06052016-16

В первых строках этого скрипта мы блокируем существующую базу Четверга для работы (вдруг там фоновое задание крутится…), чтобы наш дальнейший скрипт получил базу в монопольное владение и перезаписал ее новым четвергом, созданным час назад (см дальше на расписание) .
Обратите внимание на пути:
‘D:BuckupПонедельникЧетверг.bak’ – сюда мы настроили резервное копирование в первой половине этой статьи.
F:MSSQLЧетверг.mdf и ‘E:MSSQLЧетверг_log.ldf’ — здесь наш сервер SQL хранит файлы базы и логов Четверга. У вас это может быть путь по умолчанию, что-то вроде C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAЧетверг.mdf – смотрите в свойствах своей базы Четверга на пути:

06052016-17

Все, с путями разобрались, вернемся к нашему созданию задания, скрипт написан, осталось только задать расписание, для этого перейдем на вкладку Расписания, нажмем Создать:

06052016-18

И настроим расписание в открывшемся окне:

06052016-19

Обратите внимание, что резервную копию за четверг, созданную в 23:30 четверга, мы по расписанию запускаем на восстановление в базу Четверга но в пятницу, в 00:30:00
Все. Жмем ОК и снова ОК.
Можно проверить работоспособность скрипта, запустив задание вручную:

06052016-20

Автор

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Next Post

Как в отчете, строящемся на схеме компоновки данных (в СКД) задать параметры выводимого заголовка (1С СКД пользователю и программисту)

Ср Окт 19 , 2016
В пользовательском режиме Чтобы задать текст, выводимый в заголовке, можно в пользовательском режиме, открыв отчет, ввести свой заголовок: нажать кнопку «Еще» — «Прочее»- «Изменить вариант отчета» — «Дополнительные настройки» — «Заголовок» — ввести текст в графе «Значение». Чтобы изменить формат заголовка, например, шрифт или цвет текста и т.п. , можно […]

Вам может понравиться