powershell sqlbackup和复制文件

时间:2014-04-23 21:50:21

标签: sql-server powershell

我正在编写PS脚本来备份数据库并将.bak复制到其他服务器。但是,备份似乎是异步发生的。有时它会提前到达复制命令。

我已尝试过这些建议here,但它并没有完成任务。

sqlbackup.Wait() documentation here ......似乎完全符合我的目标(至少在纸面上),但它似乎无法发挥作用。在生成文件之前,它仍然会到达我的复制命令。任何想法如何让这个工作......这就是我正在做的事情。

$smoBackup = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Backup
$smoBackup.Action = "Database"
$smoBackup.BackupSetDescription = "Full Backup of " + $dbName
$smoBackup.BackupSetName = $dbName + " Backup"
$smoBackup.Database = $dbName
$smoBackup.MediaDescription = "Disk"
$smoBackup.Devices.AddDevice($sourcePath, "File")
$smoBackup.CopyOnly = "true"
$smoBackup.SqlBackup($SourceSrv)

Copy-Item -Path $sourcePathUNC -Destination $destinationPathUNC

1 个答案:

答案 0 :(得分:1)

很容易解决...只是告诉它等待。在Copy-Item放弃之前:

While(!(Test-Path $sourcePathUNC)){Start-Sleep -M 500}

这样,只要它看不到文件就等了半秒钟,然后再试一次。