Регулярные оперативные копии рабочих баз 1С с помощью MS SQL 2008

Административные скрипты MS SQL > Регулярные оперативные копии рабочих баз 1С с помощью MS SQL 2008
10.04.2013 16:37:14



Статья:


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

К стандартному типовому набору планов обслуживания необходимо добавить ещё несколько очень простых планов обслуживания. Их можно создать как отдельными планами, так и одним общим с вложенными планами, у каждого из которых собственные расписания выполнения:

1. создание ежечасных резервных копий рабочих баз данных (с 07:30 до 18:00 каждый час)

Задача "Выполнение инструкции T-SQL"

BACKUP DATABASE [accounting] TO DISK = N'E:\MSSQL\BACK\accounting\accounting_backup.bak' WITH NOFORMAT, NOINIT, NAME = N'accounting-Полная База данных Резервное копирование Бухгалтерия', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
BACKUP DATABASE [hrm] TO DISK = N'E:\MSSQL\BACK\hrm\hrm_backup.bak' WITH NOFORMAT, NOINIT, NAME = N'zup_aes-Полная База данных Резервное копирование Зарплата', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

2. разворачивание на тестовые копии рабочих баз утреннего бэкапа (один раз в день в 07:40)

Задача "Выполнение инструкции T-SQL"

RESTORE DATABASE [accounting_test] FROM DISK = N'E:\MSSQL\BACK\accounting\accounting_backup.bak' WITH FILE = 1, MOVE N'accounting' TO N'D:\MSSQL\DATA\accounting_test.mdf', MOVE N'accounting_log' TO N'E:\MSSQL\LOG\accounting_test_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [accounting_test] FROM DISK = N'E:\MSSQL\BACK\accounting\accounting_backup.bak' WITH FILE = 1, MOVE N'accounting' TO N'D:\MSSQL\DATA\accounting_test.mdf', MOVE N'accounting_log' TO N'E:\MSSQL\LOG\accounting_test_log.LDF', NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [hrm_test] FROM DISK = N'E:\MSSQL\BACK\hrm\hrm_backup.bak' WITH FILE = 1, MOVE N'zup_aes' TO N'D:\MSSQL\DATA\hrm_test.mdf', MOVE N'hrm_log' TO N'E:\MSSQL\LOG\hrm_test_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [hrm_test] FROM DISK = N'E:\MSSQL\BACK\hrm\hrm_backup.bak' WITH FILE = 1, MOVE N'hrm' TO N'D:\MSSQL\DATA\hrm_test.mdf', MOVE N'hrm_log' TO N'E:\MSSQL\LOG\hrm_test_log.LDF', NOUNLOAD, REPLACE, STATS = 10
GO

3. ежечасное разворачивание на "теневые" копии рабочих баз ежечасного бэкапа (с 07:50 до 18:00 ежечасно)

Задача "Выполнение инструкции T-SQL"

 

RESTORE DATABASE [accounting_copy] FROM DISK = N'E:\MSSQL\BACK\accounting\accounting_backup.bak' WITH FILE = 1, MOVE N'accounting' TO N'D:\MSSQL\DATA\accounting_copy.mdf', MOVE N'accounting_log' TO N'E:\MSSQL\LOG\accounting_copy_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [accounting_copy] FROM DISK = N'E:\MSSQL\BACK\accounting\accounting_backup.bak' WITH FILE = 1, MOVE N'accounting' TO N'D:\MSSQL\DATA\accounting_copy.mdf', MOVE N'accounting_log' TO N'E:\MSSQL\LOG\accounting_copy_log.LDF', NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [hrm_copy] FROM DISK = N'E:\MSSQL\BACK\hrm\hrm_backup.bak' WITH FILE = 1, MOVE N'zup_aes' TO N'D:\MSSQL\DATA\hrm_copy.mdf', MOVE N'hrm_log' TO N'E:\MSSQL\LOG\hrm_copy_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [hrm_copy] FROM DISK = N'E:\MSSQL\BACK\hrm\hrm_backup.bak' WITH FILE = 1, MOVE N'zup_aes' TO N'D:\MSSQL\DATA\hrm_copy.mdf', MOVE N'hrm_log' TO N'E:\MSSQL\LOG\hrm_copy_log.LDF', NOUNLOAD, REPLACE, STATS = 10
GO

4. ежечасное удаление полного ежечасного бэкапа Бухгалтерии (с 08:00 до 18:00 ежечасно)

Задача "Очистка после обслуживания"

EXECUTE master.dbo.xp_delete_file 0,N'E:\MSSQL\BACK\accounting\accounting_backup.bak'

5. ежечасное удаление полного ежечасного бэкапа Зарплаты (с 08:00 до 18:00 ежечасно)

Задача "Очистка после обслуживания"

EXECUTE master.dbo.xp_delete_file 0,N'E:\MSSQL\BACK\hrm\hrm_backup.bak'