簡體   English   中英

Backup-SQLDatabase cmdlet中的超時問題

[英]Timeout issue in Backup-SQLDatabase cmdlet

我正在嘗試使用以下語句使用“Backup-SQLDatabase”cmdlet備份大型數據庫,但是我在10分鍾后收到超時錯誤。

{Backup-SqlDatabase -ServerInstance $Server -Database $DatabaseName -BackupFile $BackUpFile -CompressionOption On -ConnectionTimeout 0 -Initialize -Verbose -ea Stop}

這是600秒執行后的錯誤:

VERBOSE:60%已處理。 VERBOSE:備份或恢復已中止。 等待操作超時+ CategoryInfo:InvalidOperation:(:) [Backup-SqlDatabase],Win3 2Exception + FullyQualifiedErrorId:ExecutionFailed,Microsoft.SqlServer.Management.P owerShell.BackupSqlDatabaseCommand + PSComputerName:localhost

我抬頭看着互聯網,發現這里有一個錯誤。 但是,SQL Server 2012(11.0.339)中仍存在此問題。

我也嘗試將“遠程查詢超時”重新配置為0,如此處所示 ,但問題仍然存在。

這實際上是非常奇怪的問題。 PowerShell用於自動化,腳本運行需要10分鍾以上。 “Backup-SQLDatabase”應該考慮到這一點。

請提供一種解決方法,以便在使用此cmdlet時解決此問題。 否則,我將使用SMO類或基本T-SQL重新編寫代碼。

我對此做了一些研究,並圍繞以下解決方法:

$serverConn = new-object ("Microsoft.SqlServer.Management.Smo.Server") $server $serverConn.ConnectionContext.StatementTimeout = 0

Backup-SqlDatabase -InputObject $serverConn -Database abc -BackupFile "L:\123\abc.bak" 

當我們將服務器名稱作為字符串傳遞時,它會嘗試創建自己的連接,並且我們沒有將QueryTimeout從600更改為0的選項。

但是,我們可以創建一個SMO.Server對象,並在設置所需的屬性后使用它。

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM