Tips for DBA: Быстрое резервирование пакетов планов обслуживания

Вашему вниманию предлагается упрощённый вариант копирования хранящихся на сервере пакетов планов обслуживания.

Суть демонстрации, создать список команд для копирования пакетов. Команды, после анализа кода, нужно скопировать через буфер обмена в окно запроса и выполнить.

USE msdb
SELECT 'EXEC [master].[sys].[xp_cmdshell] ''dtutil /Q /SQL ' + 
CASE f.foldername WHEN '' THEN '"' + p.[name] + '"' ELSE '"' + f.foldername + '\' + p.[name] + '"' END 
+ ' /ENCRYPT FILE;"c:\temp\' + p.[name] + '.dtsx";0 /SOURCESERVER ' + @@SERVERNAME + ''''
FROM msdb.dbo.sysdtspackages90 p 
JOIN msdb.dbo.sysdtspackagefolders90 f
ON p.folderid = f.folderid
WHERE p.folderid <> '00000000-0000-0000-0000-000000000000'
GO

--USE master
--EXEC master.dbo.sp_configure 'show advanced options', 1
--RECONFIGURE
--EXEC master.dbo.sp_configure 'xp_cmdshell', 1
--RECONFIGURE
--GO
-- Тут место для результирующего сценария резервирования Maintenance Plans
--USE master
--EXEC master.dbo.sp_configure 'xp_cmdshell', 0
--RECONFIGURE
--EXEC master.dbo.sp_configure 'show advanced options', 0
--RECONFIGURE
--GO
Published Fri, Dec 5 2008 13:58 by gladchenko
Filed under: ,