Выполняет отслеживание общего ежедневного времени выполнения для следующих агентов репликации на распространителе: агент распространителя, агент чтения журнала, агент слияния, агент чтения очереди, агент моментальных снимков.
Это предупреждение вычисляет общее время выполнения каждого из агентов репликации за последние 24 часа (по умолчанию) и проверяет, превышает ли общее время выполнения любого из агентов установленное пороговое значение.
Пороговые значения, заданные по умолчанию, предусматривают предупреждение по истечении 3 часов и критическое предупреждение по истечении 4 часов.
ПРИМЕЧАНИЕ. Непрерывные задания не отслеживаются.
При репликации большого числа изменений и команд могут возникнуть узкие места, ограничивающие производительность. К распространенным причинам этого явления относятся следующие:
Низкая производительность запросов на подписчике из-за устаревшей статистики по базе данных или фрагментированных индексов.
Состязание за ресурсы на подписчике: при выполнении запросов на запись агентом репликации могут возникать состязания за ресурсы в связи с запросами на чтение от приложений, подключающихся к базе данных подписки.
Сетевая задержка
Неотслеживаемые ошибки на уровне агента, которые заносятся в журнал, только если включено подробное ведение журнала.
С помощью монитора заданий в SQL Server Management Studio или монитора репликации проверяйте сообщения о ходе выполнения операций агентами репликации.
Выявляйте и анализируйте медленно выполняемые запросы на подписчике.
Убедитесь, что действия агентов репликации не замедляются другими процессами на подписчике. Если это происходит, попробуйте назначить конкурирующие действия на разное время.
Обновите статистические данные, выполнив процедуру sp_updatestats для баз данных распространителя и подписки. ( http://msdn.microsoft.com/library/ms173804.aspx)
Убедитесь, что индексы в базе данных подписки не фрагментированы в значительной степени.
Более подробные сведения об устранении неполадок, связанных с производительностью репликации, см в статье http://technet.microsoft.com/library/ms152522.aspx
Включите подробное ведение журнала, чтобы получать больше сведений о действиях и ошибках определенного агента репликации: http://support.microsoft.com/kb/312292
Имя | Описание | Значение по умолчанию |
Приоритет предупреждения | Определяет приоритет предупреждения. | Обычные |
Серьезность предупреждения | Определяет серьезность предупреждения. | Ошибка |
Включено | Включает или отключает рабочий процесс. | Да |
Порог ошибок | Порог ошибок | 4 |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения. | Да |
Интервал (секунды) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 300 |
Период измерения (часы) | Период времени, используемый для измерения (часы) | 24 |
Время синхронизации | Время синхронизации |
|
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
Порог предупреждений | Порог предупреждений | 3 |
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.DistributorAgentsLoad | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2014.Replication.Monitor.ReplicationAgentsLoad" 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.DistributorAgentsLoad" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Replication.Monitor.ReplicationAgentsLoad.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='LoadHours']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='Message']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<SqlTimeout>15</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<WarningThreshold>3</WarningThreshold>
<ErrorThreshold>4</ErrorThreshold>
<LastHours>24</LastHours>
<CategoryList>Distribution, LogReader, Merge, QueueReader, Snapshot</CategoryList>
<ExcludeCategoryList/>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>