25.4.23

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

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

Идея взята из статьи: Using dtutil to copy SSIS packages stored in SQL Server

Дополнительная информация тут: Программа dtutil

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

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


Комментариев нет:

Отправить комментарий