我正在编写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
答案 0 :(得分:1)
很容易解决...只是告诉它等待。在Copy-Item
放弃之前:
While(!(Test-Path $sourcePathUNC)){Start-Sleep -M 500}
这样,只要它看不到文件就等了半秒钟,然后再试一次。