Trasferire i jobs tra 2 istanze di SQL Server

Nelle attività di migrazione dei database da un server ad un altro ci si pone la necessità di traferire anche i job relativi ai database che si intende spostare. Quando i job sono pochi è semplice generarne lo script da SSMS ed eseguirlo nel server di destinazione ma se i job da spostare sono molti potrebbe diventare una attività onerosa.

In questo caso potrebbe essere utile utilizzare SSIS ed in particolare il Transfer Jobs Task che permette di spostare tutti i job oppure solo una parte di quelli presenti in una istanza.

Bye

 

Published giovedì 6 settembre 2007 9.54 by lbianchi

Comments

# re: Trasferire i jobs tra 2 istanze di SQL Server

venerdì 7 settembre 2007 10.26 by dmauri

Un'altra possibilità - che all'inizio ha una curva di apprendimento più alta, ma che alla lunga da mooooolte soddisfazioni - è quella di usare Powershell è SMO:

#Necessita di PowerSMO (www.pluralsight.com/.../PowerSMO.zip)

c:\Demo\PowerSMO\InitPowerSMO.ps1

#Crea l'instanza all'oggetto Server

$srv = Get-SMO_Server

# Collagati al job server

$jobsrv = $srv.JobServer

# Scripta tutti i job

$jobsrv.Jobs | % { $filename = $_.Name + ".sql"; $_.Script() > $filename }

# Filtra e scripta solo i job di interesse

$jobsrv.Jobs | ? { $_.Name -like "Test*"} | % { $filename = $_.Name + ".sql"; $_.Script() > $filename }

$jobsrv.Jobs | ? { $_.Category -eq "Category2"} | % { $filename = $_.Name + ".sql"; $_.Script() > $filename }