December 2008 - Posts

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
Posted by gladchenko | 2 comment(s)
Filed under: ,