gpt4 book ai didi

sql-server - Backup-SQLDatabase cmdlet 中的超时问题

转载 作者:行者123 更新时间:2023-12-03 01:53:57 24 4
gpt4 key购买 nike

我尝试使用以下语句使用“Backup-SQLDatabase”cmdlet 备份大型数据库,但 10 分钟后出现超时错误。

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

这是执行 600 秒后的错误:

详细:已处理 60%。详细:备份或恢复已中止。等待操作超时 + CategoryInfo : InvalidOperation: (:) [备份-SqlDatabase],Win3 2异常 + FullQualifiedErrorId:执行失败,Microsoft.SqlServer.Management.P owerShell.BackupSqlDatabaseCommand + PS 计算机名称:本地主机

我查了一下互联网,发现了一个错误 here 。但是,该问题在 SQL Server 2012 (11.0.339) 中仍然存在。

我还尝试将“远程查询超时”重新配置为 0,如给定 here ,但问题仍然存在。

这实际上是一个很奇怪的问题。 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 对象并在设置所需属性后使用它。

希望对你有帮助!

关于sql-server - Backup-SQLDatabase cmdlet 中的超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19275530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com