К стандартному типовому набору планов обслуживания необходимо добавить ещё несколько очень простых планов обслуживания. Их можно создать как отдельными планами, так и одним общим с вложенными планами, у каждого из которых собственные расписания выполнения:
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.
4. ежечасное удаление полного ежечасного бэкапа Зарплаты (с 08:00 до 18:00 ежечасно)
Задача "Очистка после обслуживания"
EXECUTE master.dbo.xp_delete_file 0,N'E:\MSSQL\BACK\hrm\hrm_backup.bak'
Справочная информация (переменные, которые в скриптиках необходимо подменить на собственные):
рабочая база бухгалтерия accounting
рабочая база зарплата hrm
база с развёрнутой копией бухгалтерии на утро для тестов собственных "допилок" accounting_test
база с развёрнутой копией зарплата на утро для тестов собственных "допилок" hrm_test
база с развёрнутой оперативной копией бухгалтерии на каждый час работы для экспериментов в том числе пользователям accounting_copy
база с развёрнутой оперативной копией зарплата на каждый час работы для экспериментов в том числе пользователям hrm_copy
место размещения sql-ных mdf-баз D:\MSSQL\DATA\
место размещения sql-ных логов E:\MSSQL\LOG\
место хранения полных ежечасных бэкапов бухгалтерии E:\MSSQL\BACK\accounting\
место хранения полных ежечасных бэкапов зарплаты E:\MSSQL\BACK\hrm\
регулярно создаваемый и удаляемый файл ежечасного бэкапа бухгалтерии accounting_backup.bak
регулярно создаваемый и удаляемый файл ежечасного бэкапа зарплаты hrm_backup.bak
файл базы данных развёрнутой ежесуточной копией бухгалтерии для тестов accounting_test.mdf
файл лога развёрнутой ежесуточной копией бухгалтерии для тестов accounting_test_log.ldf
файл базы данных развёрнутой ежечасной копией бухгалтерии для экспериментов accounting_copy.mdf
файл лога развёрнутой ежечасной копией бухгалтерии для экспериментов accounting_copy_log.ldf
файл базы данных развёрнутой ежесуточной копией зарплаты для тестов hrm_test.mdf
файл лога развёрнутой ежесуточной копией зарплаты для тестов hrm_test_log.ldf
файл базы данных развёрнутой ежечасной копией зарплаты для экспериментов hrm_copy.mdf
файл лога развёрнутой ежечасной копией зарплаты для экспериментов hrm_copy_log.ldf
Дальше как предлагалось в аналогичных статьях можно настроить, например effector saver, который будет регулярно формировать DT-шники хоть раз в сутки из баз accounting_test или hrm_test хоть ежечасно из баз accounting_copy или hrm_copy.
таким образом, мы имеем оперативно под рукой базы с актуальной информацией для экспериментов, в которых юзеры смогут смело попробывать какую-то последовательность операций и посмотреть результат до реализации в рабочей базе данных, или мы можем накатывать приготовленные собственный CF-ки в конфигураторе и проанализировать их работу на актуальной информации.
Конечно, если база будет открыта хоть в режиме предприятия хоть в режиме конфигуратор бэкап на неё не развернётся. но не более того, это ведь не критично, в следующий час когда база будет закрыта сформируется свеженькая копия для экспериментов.
Возможно, кого-то беспокоит сохранность архивных копий. Для этого оставляем стандартный набор планов обслуживания:
01. еждневное резервное копирование базы данных полное (например в 06:05)
02. ежечасный резервное копирование базы данных разностное (например с 08:20 до 19:00 каждый час)
03. ежечасный резервное копирование базы данных журнал транзакций (например с 08:25 до 19:00 каждый час)
Таким образом, имеется возможность восстановить в случае краха рабочую базу данных с горизонтом актуальности в пределах часа.
04. еженедельный план Задача "Очистка после обслуживания" (например, в воскресенье в 05:00)
Удаление всех архивных копий старше (например) двух недель
Конечно же, не пренебрегаем планами, рекомендуемыми на ресурсе http://kb.1c.ru/articleView.jsp?id=13