Carga de agentes de Replicação no Assinante.

Microsoft.SQLServer.2012.Replication.Monitor.SubscriberAgentsLoad (UnitMonitor)

Carga de Agentes de Replicação (Distribuição e Mesclagem) no Assinante

Knowledge Base article:

Resumo

Este Monitoramento calcula o tempo total de execução de cada agente de replicação (Distribuição, Mesclagem) em um assinante durante o período de tempo definido pelo limite. Se o total de um agente exceder o limite definido, um alerta é acionado no formato

O Assinante (Nome: '{0}', Servidor: '{1}') detectou a utilização de {2}%.

Causas

Resoluções

Abra o histórico de trabalho do agente tentando novamente e busque mensagens de erro, e investigue e resolva os erros corretamente.

Execute sp_who2 quando o Trabalho for executado, e verifique se ele está bloqueado por alguma outra sessão. Se estiver bloqueado, resolva o bloqueio ou aguarde a outra sessão ser completada.

Verifique se a latência de rede entre o distribuidor e o assinante (agente de distribuição) não está muito alta.

Identificar e investigar consultas de execução lenta.

Certifique-se de que as estatísticas estão atualizadas executando sp_updatestats nos bancos de dados de assinatura. ( http://msdn.microsoft.com/library/ms173804.aspx)

Certifique-se de que os índices no banco de dados assinante não estão extremamente fragmentados.

Parâmetros Substituíveis

Nome

Descrição

Valor Padrão

Habilitado

Habilita ou desabilita o fluxo de trabalho

Sim

Limite de erros

Limite de erros

4

Gera alertas

Define se o fluxo de trabalho gera um Alerta

Sim

Intervalo (segundos)

O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho.

300

Período de medição (horas)

Período de tempo usado para medição (horas)

24

Tempo limite (segundos)

Tempo limite (segundos)

300

Tempo de Sincronização

Tempo de Sincronização

 

Limite de alerta

Limite de alerta

3

Element properties:

TargetMicrosoft.SQLServer.2012.Replication.Subscriber
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.Replication.MonitorType.DistributorAgentsLoad
RemotableTrue
AccessibilityPublic
Alert Message
Replicação do MSSQL2012: Os agentes de replicação no Assinante estão sendo executados sob carga pesada.
O Assinante (Nome: '{0}', Servidor: '{1}') teve uma carga pesada por {2} horas nas últimas 24 horas.
{3}
RunAsMicrosoft.SQLServer.Replication.Monitoring.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Replication.Monitor.SubscriberAgentsLoad" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2012.Replication.Subscriber" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Replication.MonitorType.DistributorAgentsLoad" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Replication.Monitor.SubscriberAgentsLoad.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscriber']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscriber']/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>300</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscriber']/ConnectionString$</ConnectionString>
<WarningThreshold>3</WarningThreshold>
<ErrorThreshold>4</ErrorThreshold>
<LastHours>24</LastHours>
<CategoryList>Distribution, Merge</CategoryList>
<ExcludeCategoryList/>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>