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 novas tentativas de trabalhos do agente, busque mensagens de erro, 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

Prioridade do Alerta

Define a Prioridade do Alerta.

Normal

Severidade do Alerta

Define a Severidade do Alerta.

Erro

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 de Sincronização

Tempo de Sincronização

 

Tempo limite (segundos)

Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha.

300

Tempo limite da conexão de banco de dados (segundos)

O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado.

15

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>15</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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>