Restore-SqlDatabase Время ожидания операции

Я настроил процесс восстановления баз данных с помощью командлета Restore-SqlDatabase и запланировал его в задание агента SQl. Он работал нормально, пока я не попытался восстановить базу данных объемом 160 ГБ. В основном происходит сбой после 600 с ошибкой "Тайм-аут операции ожидания". Я попытался добавить значение StatementTimeout, равное 0, чтобы посмотреть, обойдется ли оно, а также изменить время ожидания удаленного запроса на SQL Server, но оно по-прежнему вылетает через 10 минут. Кто-нибудь знает, есть ли другой параметр, который я могу изменить, чтобы увеличить время ожидания? Код, который я использую:

# Load Module path! its not loading by default in calls from powershell
$env:PSModulePath=$env:PSModulePath + ";" + "C:\Program Files\Microsoft SQL Server\110\Tools\PowerShell\Modules\SQLPS\"
## Load module and run functions now

#Import SQL Server PowerShell Provider.
Import-Module "sqlps" -DisableNameChecking

#GEt Around Wait Timeout Error with Remote Connection via PoSh
$server = "THESERVER"
$serverConn = new-object ("Microsoft.SqlServer.Management.Smo.Server") $server
$serverConn.ConnectionContext.StatementTimeout = 0


#Restore Latest Copy of Test Database that was copied over
Restore-SqlDatabase -ServerInstance $server -Database "Test" -BackupFile "H:\SQLBACKUP\DATABASE_Refresh\Test_Latest.BAK" -ReplaceDatabase

Появляющаяся ошибка:

Restore-SqlDatabase : The wait operation timed out
At H:\SQLBACKUP\_AutoScripts\5_Test_DBRESTORE.ps1:16 char:1
+ Restore-SqlDatabase -ServerInstance $server -Database "Test ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Restore-SqlDatabase], Win32Exception
    + FullyQualifiedErrorId : ExecutionFailed,Microsoft.SqlServer.Management.PowerShell.RestoreSqlDatabaseCommand

1 ответ

Это выглядит как Restore-SqlDatabase имеет -ConnectionTimeout параметр:

Указывает количество секунд ожидания подключения к серверу до сбоя тайм-аута. Значение времени ожидания должно быть целым числом от 0 до 65534. Если указано значение 0, попытки подключения не прерываются.

Таким образом, ваша команда может стать:

Restore-SqlDatabase `
    -ServerInstance $server `
    -Database "Test" `
    -BackupFile "H:\SQLBACKUP\DATABASE_Refresh\Test_Latest.BAK" `
    -ReplaceDatabase `
    -ConnectionTimeout 0
Другие вопросы по тегам