Ошибка таймаута в командлете Backup-SQLDatabase

Я пытаюсь взять резервную копию большой базы данных с помощью командлета Backup-SQLDatabase, используя следующий оператор, но я получаю ошибку тайм-аута через 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» следовало бы рассмотреть это.

Пожалуйста, предложите обходной путь, с помощью которого я могу исправить это, используя этот командлет. Кроме того, я должен переписать код с помощью классов 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 и использовать его после установки желаемых свойств.

Надеюсь, поможет!

  • Свернуть все активные подключения к базе данных не удалось для Сервера при выполнении KillAllProcesses
  • Как использовать Powershell Where-Object как оператор IN
  • Получение надежного списка экземпляров сервера
  • совместимость с предыдущей версией
  • Добавление пользователя и пользователя на SQL Server без использования SMO
  • Как получить возвращаемое значение из сообщения системы Sql Server?
  • Почему sqlConnection.Close () не закрывает логин?
  • Установка sql-сервера с использованием программных средств C #
  • Фиксирование осиротевших пользователей SQL SMO?
  • Использование SMO для изменения местоположений базы данных базы данных SQL Server
  • Как мне отображать текущие запущенные хранимые процедуры с SMO?
  • Interesting Posts

    Разрешения, предоставленные пользователю 'servername / iusr-username', недостаточны для выполнения этой операции. (rsAccessDenied)

    Фактор общности (групповое сжатие, дедупликация) записей в базе данных

    Конкатенация строк в SQL не работает

    SSIS-Разделить вывод на несколько файлов

    получать минимальные значения в группе данных

    Проблема с использованием моей хранимой процедуры

    Создание столбцов по умолчанию в SQL 2008 с использованием управления политикой (DMF)

    Entity Framework Два запроса с одинаковыми результатами, но один быстрее

    SqlCommand Если существует – обновить, если не существует – вставить в

    Проверка утверждений UPDATE и INSERT для всей таблицы

    Отношения в SQL в одной таблице

    Как драйвер JDBC реализует метод setMaxRows

    Посмотрите, являются ли все записи в одной группе допустимыми типами

    Как регистрировать данные, измененные в таблицах sql-сервера. Какой подход лучше

    Как установить идентификатор / имя раздела для разделов строк в SQL Server?

    Давайте будем гением компьютера.