Tuesday, May 5, 2009

Powershell script for SQL Backup

Full Backup
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") out-null[System.IO.Directory]::CreateDirectory("C:\test") out-null
$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "ServerName"
$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"
$bck.Action = 'Database'
$fil=new-object "Microsoft.SqlServer.Management.Smo.BackupDeviceItem"
$fil.DeviceType='File'
$today = Get-Date
$fil.Name=[System.IO.Path]::Combine("C:\test", "TEST" +".bak")
$bck.Devices.Add($fil)
$bck.Database="DBName"
$bck.SqlBackup($srv)
write-host "Backup of MyDatabase done"

** For checking("C:\test", "mydatabasebackup-$($today.toString('yyyy-MM-dd HH-mm-ss ')).bak")


Transaction log backup

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") out-null[System.IO.Directory]::CreateDirectory("C:\test") out-null
$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "ServerName"
$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"
$bck.Action = 'Log'
$fil=new-object "Microsoft.SqlServer.Management.Smo.BackupDeviceItem"
$fil.DeviceType='File'
$today = Get-Date
$fil.Name=[System.IO.Path]::Combine("C:\test", "TEST" +".trn")
$bck.Devices.Add($fil)
$bck.Database="DBName"
$bck.SqlBackup($srv)
write-host "Log Backup of MyDatabase done"

Differential backup

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") out-null[System.IO.Directory]::CreateDirectory("C:\test") out-null
$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "ServerName"
$bck=new-object "Microsoft.SqlServer.Management.Smo.Backup"
$bck.Incremental = 1
$fil=new-object "Microsoft.SqlServer.Management.Smo.BackupDeviceItem"
$fil.DeviceType='File'
$today = Get-Date
$fil.Name=[System.IO.Path]::Combine("C:\test", "TEST" +".diff")
$bck.Devices.Add($fil)
$bck.Database="DBName"
$bck.SqlBackup($srv)
write-host "Differential Backup of MyDatabase done"