我有以下脚本来备份SQL实例中的所有数据库
这完全可以从我的本地PC上运行,但是当我在外部服务器上运行它时会失败并显示以下内容:
主备份失败。
使用“1”参数调用“SqlBackup”的异常:“服务器'SERVER2016'的备份失败。”
$SQLInstance = "Localhost"
$BackupFolder = "D:\Backups\"
$timeStamp = Get-Date -Format yyyy_MM_dd_HHmmss
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
$srv = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $SQLInstance
$dbs = New-Object Microsoft.SqlServer.Management.Smo.Database
$dbs = $srv.Databases
foreach ($Database in $dbs) {
$Database.Name
$bk = New-Object ("Microsoft.SqlServer.Management.Smo.Backup")
$bk.Action = [Microsoft.SqlServer.Management.Smo.BackupActionType]::Database
$bk.BackupSetName = $Database.Name + "_backup_" + $timeStamp
$bk.Database = $Database.Name
$bk.CompressionOption = 1
$bk.MediaDescription = "Disk"
$bk.Devices.AddDevice($BackupFolder + "\" + $Database.Name + "_" + $timeStamp + ".bak", "File")
try {
$bk.SqlBackup($srv)
} catch {
$Database.Name + " backup failed."
$_.Exception.Message
}
}