Problème de timeout d'attente dans la cmdlet Backup-SQLDatabase

J'essaie de prendre en charge une grande database en utilisant la cmdlet "Backup-SQLDatabase" en utilisant l'instruction suivante, mais je reçois une erreur de timeout après 10 minutes.

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

Voici l'erreur exactement après 600 secondes d'exécution:

VERBOSE: 60 pour cent traités. VERBOSE: La sauvegarde ou la restauration a été annulée. L'opération d'attente a expiré + CategoryInfo: InvalidOperation: (:) [Backup-SqlDatabase], Win3 2Exception + FullyQualifiedErrorId: ExecutionFailed, Microsoft.SqlServer.Management.P owerShell.BackupSqlDatabaseCommand + PSComputerName: localhost

J'ai regardé internet et trouvé un bug rempli ici . Toutefois, le problème existe toujours dans SQL Server 2012 (11.0.339).

J'ai également essayé de reconfigurer "remote query timeout" à 0 comme indiqué ici , mais le problème persiste.

C'est en fait une question très étrange. PowerShell est pour l'automation et les scripts prennent plus de 10 minutes à s'exécuter. "Backup-SQLDatabase" aurait dû prendre cela en count.

S'il vous plaît suggérer une solution de contournement par laquelle je peux résoudre ce problème tout en utilisant cette cmdlet. Sinon, je dois réécrire le code en utilisant des classs SMO ou T-SQL de base.

J'ai fait quelques searchs à ce sujet et suis venu autour de la solution de contournement suivante:

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

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

Lorsque nous passons le nom du server en tant que string, il essaie de créer sa propre connection et nous n'avons pas la possibilité de changer QueryTimeout de 600 à 0.

Cependant, nous pouvons créer un object SMO.Server et l'utiliser après avoir défini les propriétés souhaitées.

J'espère que cela aide!