备份所有数据库在外部服务器上失败

时间:2017-05-23 07:03:53

标签: sql-server powershell

我有以下脚本来备份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
  }
}

0 个答案:

没有答案