Этот монитор проверяет состояние агентов распространения для всех публикаций, обслуживаемых данным распространителем.
Произошел сбой одного агента или нескольких агентов распространителя.
Ниже приводятся некоторые причины возникновения сбоев агентов распространения.
Подписка не была инициализирована, и снимок недоступен.
Агент распространения выполняется в другой учетной записи, не имеющей необходимых полномочий.
Время ожидания запроса.
На подписчике был нарушен первичный ключ или произошла ошибка "строка не найдена".
Не удается установить подключение к базам данных распространения или подписчиков.
Нехватка памяти для неинтерактивной кучи рабочего стола. http://support.microsoft.com/kb/949296
Агенту распространения не удалось создать временные файлы в каталоге 'C:\Program Files\Microsoft SQL Server\100\COM' (применимо к SQL 2008 и SQL 2008 R2) http://support.microsoft.com/kb/956032
Агенту распространения не удалось обнаружить файлы снимка
Требуемые права отсутствуют у службы агента SQL Server.
В агент распространителя переданы неверные параметры.
Агент распространения выполняется в учетной записи, не имеющей необходимых полномочий.
Если в топологии репликации присутствует несколько серверов, агенты SQL Server должны выполняться в учетной записи домена.
Учетная запись агента распространения должна являться членом фиксированной роли [db_owner] в базах данных распространения и подписки.
Время ожидания запроса.
Проверьте наличие блокировки на распространителе и подписчике и выясните, заблокирован ли агент распространения. Устраните блокировку и перезапустите агент.
Увеличьте время ожидания выполнения запроса агента распространения.
На подписчике произошло нарушение первичного ключа или возникла ошибка "строка не найдена".
Проверьте свойства статьи и убедитесь, что все вставки надлежащим образом реплицируются, и команды обновления и удаления не пропускаются.
Убедитесь, что у пользователей нет доступа к базе данных подписчиков с правом записи.
Настройте агент распространения на использование параметра -skiperrors, чтобы игнорировать данные ошибки (используйте этот способ в качестве временной меры, чтобы устранить причину проблемы).
Не удается установить подключение к базе данных распространения или базе данных подписчиков.
Учетная запись агента распространения должна являться членом фиксированной роли [db_owner] в базах данных распространения и подписчиков. Убедитесь, что из SQL Server Management Studio может быть установлено подключение как к базе данных подписчиков, так и к базе данных распространения.
В брандмауэре на распространителе и издателе включите порты TCP и UDP, используемые SQL Server.
Нехватка памяти для неинтерактивной кучи рабочего стола.
Используйте любой из указанных здесь способов KB для устранения проблемы.
Агенту распространения не удалось создать временные файлы в каталоге 'C:\Program Files\Microsoft SQL Server\100\COM' (применимо к SQL 2008 и SQL 2008 R2)
Используйте описанный здесь способ KB для устранения проблемы.
The DistributionAgent is unable to readSnapshot files
Сохраните папку со снимком с использованием UNC-пути. Откройте доступ к папке учетной записи агента распространения и предоставьте разрешения на чтение.
Required privilegesare not held by SQL Agent Service.
Следуйте инструкциям http://msdn.microsoft.com/library/ms143504.aspx и убедитесь, что SID службы агента SQL имеет следующие права:
Выполнить вход в качестве службы (SeServiceLogonRight).
Заменить токен уровня процесса (SeAssignPrimaryTokenPrivilege).
Обойти проходную проверку (SeChangeNotifyPrivilege).
Настроить квоты памяти для процесса (SeIncreaseQuotaPrivilege).
Команде агента распространения переданы неверные параметры.
Проверить параметры, переданные в командную строку агента распространителя.
Процессу не удалось выполнить массовое копирование в таблицу
Уменьшите значение, передаваемое параметру –BCPBatchSize в задании агента распространения
Повторно запустите агент распространения и добавьте параметр -OutputVerboseLevel 2. В результате этого вы получите более подробные сведения о том, какой оператор вызывает ошибку.
Эту операцию могут выполнять только члены ролей sysadmin и db_owner .
Если база данных распространения и подписчик находятся в различных доменах, и между доменами не существует доверия (в частности, домен подписчика не доверяет домену распространителя), то должна использоваться указанная учетная запись.
См. сведения об ошибках агента SQL Server на подписчике. Имя подписчика будет указано в первой части отображаемого имени подписки.
Убедитесь, что на подписчике для данного агента используется действующая учетная запись.
Проверьте, что учетная запись агента на подписчике включена в роли "sysadmin" или "db_owner" для реплицируемой базы данных.
http://technet.microsoft.com/library/ms147328.aspx
Имя | Описание | Значение по умолчанию |
Включено | Включает или отключает рабочий процесс | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждение | Да |
Интервал (секунды) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 300 |
Показать задания с неизвестным состоянием | Учитывать задания с неизвестным состоянием в показаниях монитора и контексте оповещения. Это повлияет на работоспособность | Нет |
Время ожидания (секунды) | Время ожидания (секунды) | 300 |
Время синхронизации | Время синхронизации |
|
Target | Microsoft.SQLServer.2014.Replication.Distributor | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.Replication.MonitorType.ReplicationAgentState | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2014.Replication.Monitor.DistributionAgentState" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.Replication.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Replication.Monitor.DistributionAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<XPathName>Distribution$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>