Этот монитор проверяет состояние служб агента распространения репликаций для подписки. Обратите внимание, что служба Windows агента SQL Server не поддерживается ни в одном из выпусков SQL Server Express. Поэтому этот монитор нельзя использовать с SQL Server Express.
Агент распространения репликаций — это исполняемый файл, используемый при репликации моментальных снимков и транзакций. Агент перемещает снимки и транзакции из таблиц базы данных распространителя в целевые таблицы подписчиков. Обратите внимание, что служба Windows агента SQL Server не поддерживается ни в одном из выпусков SQL Server Express. Поэтому этот монитор не подходит для применения с SQL Server Express.
Агент распространения выполняется в другой учетной записи, не имеющей необходимых полномочий.
Время ожидания запроса.
Имеются нарушения первичного ключа или ошибки "строка не найдена" на подписчике.
Агенту не удалось подключиться к базе данных распространителя или подписчика.
Нехватка памяти для неинтерактивной кучи рабочего стола. http://support.microsoft.com/kb/949296
Агенту распространения не удалось создать временные файлы в каталоге ":\\Program Files\\Microsoft SQL Server\\100\\COM" (применимо к SQL 2008 и SQL 2008 R2) http://support.microsoft.com/kb/956032
Агенту распространителя не удалось найти файлы моментальных снимков.
У агента распространителя нет необходимых прав.
В команду агента распространителя переданы неверные параметры.
Процессу не удалось выполнить массовое копирование в таблицу.
Убедитесь, что агент распространения использует учетную запись с необходимыми разрешениями. Их список см. в статье здесь.
Если в топологии репликации присутствует несколько серверов, агенты SQL Server должны выполняться в учетной записи домена.
Учетная запись агента распространения должна являться членом фиксированной роли [db_owner] в базах данных распространения и подписчиков.
Время ожидания запроса истекает.
Проверьте наличие блокировки на распространителе и подписчике и выясните, заблокирован ли агент распространителя. Устраните блокировку и перезапустите агент.
Увеличьте время ожидания для выполнения запроса для агента распространителя или укажите 0 (неограниченное ожидание)
На подписчике был нарушен первичный ключ или произошла ошибка "строка не найдена".
Проверьте свойства статьи, чтобы убедиться, что все команды вставки, изменения и удаления реплицируются.
Убедитесь, что у пользователей нет доступа к базе данных подписчиков с правом записи.
Чтобы пропускать эти ошибки, настройте для агента распространителя параметр -skiperrors (используйте этот способ в качестве временной меры, чтобы устранить основную причину проблемы)
Не удалось подключиться к базе данных распространителя или подписчика.
Учетная запись агента распространения должна являться членом фиксированной роли [db_owner] в базах данных распространения и подписчика. Проверьте подключение из Management Studio к базам данных подписчика и распространения.
В брандмауэре на распространителе и издателе включите TCP- и UDP-порты, используемые SQL Server (по умолчанию 1433).
Нехватка памяти для неинтерактивной кучи рабочего стола.
Используйте любой из указанных здесь способов KB для устранения проблемы.
Агенту распространителя не удалось создать временные файлы в каталоге "C:\Program Files\Microsoft SQL Server\100\COM" (применимо к SQL 2008 и SQL 2008 R2). Для решения проблемы воспользуйтесь этой статьей базы знаний.
Агенту распространителя не удалось найти файлы моментальных снимков. Используйте UNC-пути для указания папки моментальных снимков. Откройте доступ к папке и предоставьте разрешения на чтение для учетной записи агента распространителя.
У клиента нет требуемых привилегий. Следуйте инструкциям в статье http://msdn.microsoft.com/library/ms143504.aspx и убедитесь, что у идентификатора безопасности службы агента SQL есть следующие права:
Выполнить вход в качестве службы (SeServiceLogonRight).
Заменить токен уровня процесса (SeAssignPrimaryTokenPrivilege).
Обойти проходную проверку (SeChangeNotifyPrivilege).
Настроить квоты памяти для процесса (SeIncreaseQuotaPrivilege).
В команду агента распространителя переданы неверные параметры. Проверьте параметры, переданные в команду агента распространителя.
Уменьшите значение, передаваемое параметру –BCPBatchSize в задании агента распространения
Повторно запустите агент распространения и добавьте параметр -OutputVerboseLevel 2. В результате этого вы получите более подробные сведения о том, какой оператор вызывает ошибку.
Инициализировать подписчика с помощью резервной копии.
http://technet.microsoft.com/library/ms151868.aspx
Имя | Описание | Значение по умолчанию |
Приоритет предупреждения | Определяет приоритет предупреждения. | Обычные |
Серьезность предупреждения | Определяет серьезность предупреждения. | Ошибка |
Включено | Включает или отключает рабочий процесс. | Да |
Предполагаемая продолжительность задания | Пороговое значение, которое используется для проверки соответствия расписаниям заданий | 15 |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения. | Да |
Интервал (секунды) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 300 |
Показать задания с неизвестным состоянием | Учитывать задания с неизвестным состоянием в выходных данных монитора и контексте предупреждения. Это повлияет на работоспособность. | Нет |
Время синхронизации | Время синхронизации |
|
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
Target | Microsoft.SQLServer.2014.Replication.Subscription | ||
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.SubscriptionDistributionAgentState" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Subscription" 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.SubscriptionDistributionAgentState.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.GenericSubscription']/Distributor$</ConnectionString>
<XPathName>Distribution$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription']/Distributor$$Target/Host/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscriber']/ConnectionString$$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription']/SubscriptionName$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>