Assinaturas Não Sincronizadas no Distribuidor

Microsoft.SQLServer.2014.Replication.Monitor.UnsyncSubscriptions (UnitMonitor)

Este monitoramento detecta assinaturas não sincronizadas para Distribuidores específicos.

Knowledge Base article:

Resumo

Este monitoramento detecta assinaturas não sincronizadas para determinado Distribuidor.

Se o número de assinaturas não sincronizadas exceder o limite, será disparado um alerta no seguinte formato:

O Distribuidor (Nome: '{0}', Servidor: '{1}') detectou {2} assinatura(s) não sincronizada(s).

Causas

A causa mais comum do problema é o agente de Distribuição não estar em execução ou estar com problemas de desempenho.

Resoluções

Verifique se o agente de Distribuição está em execução.

Execute atualização de estatísticas com fullscan nas tabelas no banco de dados de Distribuição.

Se alguma publicação específica possuir um grande número de transações no período, considere reinicializar a assinatura correspondente. Se um instantâneo estiver sendo usado para entregar os comandos não distribuídos relacionados, limpar as tabelas de distribuição ajudará outras assinaturas.

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.

Aviso

Habilitado

Habilita ou desabilita o fluxo de trabalho.

Sim

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

Número de amostras

Indica quantas vezes um valor medido deve violar um limite antes do estado ser alterado.

12

Limite por assinatura

Limite por assinatura

0

Tempo de Sincronização

Tempo de Sincronização

 

Tempo limite (segundos)

Especifica o tempo durante o qual o fluxo de trabalho pode ser executado 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 contagem de assinaturas não íntegras

Limite de contagem de assinaturas não íntegras

0

Element properties:

TargetMicrosoft.SQLServer.2014.Replication.Distributor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.Replication.MonitorType.DistributorUnsyncSubscriptions
RemotableTrue
AccessibilityPublic
Alert Message
Replicação do MSSQL2014: Assinaturas Não Sincronizadas detectadas.
O Distribuidor (Nome: '{0}', Servidor: '{1}') detectou {2} assinatura(s) não sincronizada(s).
{3}
RunAsMicrosoft.SQLServer.Replication.Monitoring.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Replication.Monitor.UnsyncSubscriptions" 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.DistributorUnsyncSubscriptions" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Replication.Monitor.DistributorUnsyncSubscriptions.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</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='DistributorUnsyncSubscriptions']$</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"/>
</OperationalStates>
<Configuration>
<SqlTimeout>15</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<ThresholdPendingCommandForSubscription>0</ThresholdPendingCommandForSubscription>
<ThresholdUnhealthySubscriptionsCount>0</ThresholdUnhealthySubscriptionsCount>
<NumSamples>12</NumSamples>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>