Этот монитор проверяет состояние агентов распространения для всех публикаций, обслуживаемых данным распространителем.
Произошел сбой одного агента или нескольких агентов распространителя.
Ниже приводятся некоторые причины возникновения сбоев на агентах распространителя:
Подписка не была инициализирована, и моментальный снимок недоступен.
Агент распространения выполняется в другой учетной записи, не имеющей необходимых полномочий.
Время ожидания запроса.
На подписчике был нарушен первичный ключ или произошла ошибка "строка не найдена".
Не удается установить подключение к базам данных распространения или подписчиков.
Нехватка памяти для неинтерактивной кучи рабочего стола. 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 для устранения проблемы.
Агент распространителя не смог прочесть файлы моментального снимка.
Сохраните папку со снимком с использованием UNC-пути. Откройте доступ к папке учетной записи агента распространения и предоставьте разрешения на чтение.
У службы агента SQL отсутствуют необходимые привилегии.
Следуйте инструкциям http://msdn.microsoft.com/library/ms143504.aspx и убедитесь, что SID службы агента SQL имеет следующие права:
Выполнить вход в качестве службы (SeServiceLogonRight).
Заменить токен уровня процесса (SeAssignPrimaryTokenPrivilege).
Обойти проходную проверку (SeChangeNotifyPrivilege).
Настроить квоты памяти для процесса (SeIncreaseQuotaPrivilege).
Команде агента распространения переданы неверные параметры.
Проверить параметры, переданные в командную строку агента распространителя.
Процессу не удалось выполнить массовое копирование в таблицу
Уменьшите значение, передаваемое параметру –BCPBatchSize в задании агента распространения
Повторно запустите агент распространения и добавьте параметр -OutputVerboseLevel 2. В результате этого вы получите более подробные сведения о том, какой оператор вызывает ошибку.
Эту операцию могут выполнять только члены ролей sysadmin и db_owner .
Если база данных распространителя и подписчик находятся в различных доменах и между доменами не существует отношения доверия (в частности, домен подписчика не доверяет домену распространителя), то должна использоваться явным образом указанная учетная запись.
Обратитесь к сведениям об ошибке в агенте SQL Server на подписчике. Имя подписчика будет указано в первой части отображаемой подписки ("Subscription").
На подписчике убедитесь, что для этого агента используется действующая учетная запись для входа.
На подписчике убедитесь, что учетная запись для входа агента включена в роли "sysadmin" или "db_owner" для реплицируемой базы данных.
http://technet.microsoft.com/library/ms147328.aspx
Имя | Описание | Значение по умолчанию |
Приоритет предупреждения | Определяет приоритет предупреждения. | Обычные |
Серьезность предупреждения | Определяет серьезность предупреждения. | Ошибка |
Включено | Включает или отключает рабочий процесс. | Да |
Предполагаемая продолжительность задания | Пороговое значение, которое используется для проверки соответствия расписаниям заданий | 15 |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения. | Да |
Интервал (секунды) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 300 |
Показать задания с неизвестным состоянием | Учитывать задания с неизвестным состоянием в выходных данных монитора и контексте предупреждения. Это повлияет на работоспособность. | Нет |
Время синхронизации | Время синхронизации |
|
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
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>15</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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>