Почему один нисходящий WSUS отказывает в репликации, а другие нет?
Недавно я добавил несколько нисходящих серверов в среду WSUS для клиента. Все серверы работают под управлением WSUS версии 3 с пакетом обновления 2 (3.2.7600.226). Все они, кажется, работают хорошо, за одним исключением.
Местоположение находится в рабочем состоянии, и клиенты зарегистрировались и получают обновления. Тем не менее, каждая синхронизация начиная с начальной не удалась. Консоль управления WSUS отображает следующую ошибку для каждой неудачной синхронизации:
SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
at Microsoft.UpdateServices.DatabaseAccess.DBConnection.ReadOneRow()
at Microsoft.UpdateServices.Internal.DataAccess.HideUpdatesForReplicaSync(String xmlUpdateIds)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ProcessHiddenUpdates(Guid[] hiddenUpdates)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ReplicaSync()
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)
Это происходит в конце синхронизации после того, как сервер уже получил новые обновления от вышестоящего сервера. Изменения, похоже, сохраняются должным образом, так как новые, пересмотренные и просроченные счета не увеличиваются постоянно.
Я также вижу идентификаторы событий 10022
а также 10032
в журнале приложений в Event Viewer во время каждого сбоя.
Я попытался запустить мастер очистки сервера на обоих вышестоящих и последующих серверах, но он зависает на обоих, когда доходит до стадии удаления неиспользуемых обновлений. Я запускал его на восходящем потоке неделю назад или около того, прямо перед настройкой всех нижестоящих серверов, и тогда он работал нормально.
Я также успешно запустил скрипт переиндексации из этого обсуждения на форуме Microsoft на обоих серверах. (Мастер очистки по-прежнему зависает после этого.)
Я выполнил немало поисков в Интернете по этому вопросу, и мне не удалось найти ничего подходящего для этой ситуации. Я должен думать, что проблема специфична для нижестоящего сервера, который выходит из строя, поскольку остальные все работают нормально.
Есть ли способ точно определить, что он делает, когда истекает время ожидания?
1 ответ
Кажется, я нашел решение своей проблемы, хотя я не совсем понимаю, почему это не было проблемой на других машинах. Возможно различия между внутренней базой данных в разных версиях / пакетах обновления Windows Server.
В диспетчере конфигурации SQL Server (входит в состав SQL Server Management Studio) для внутреннего экземпляра базы данных (MICROSOFT##SSEE) были отключены именованные каналы и TCP/IP в разделе "Сетевая конфигурация SQL Server".
После включения обоих синхронизация начала работать правильно. Теперь я запустил несколько синхронизаций, и все они работали нормально.