Estado das assinaturas para o Publicador

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

Este monitoramento verifica se há assinaturas inativas para alguma publicação.

Knowledge Base article:

Resumo

Assinaturas podem ser desativadas ou podem expirar se não forem sincronizadas dentro de um período de retenção especificado. As ações que ocorrem dependem do tipo de replicação e o período de retenção excedido.

Causas

A sincronização da Assinatura não foi bem sucedida dentro do período de retenção.

Transacional:

Se uma assinatura não for sincronizada dentro do período máximo de retenção da distribuição (padrão de 72 horas) e houver alterações no banco de dados de distribuição que não tiverem sido entregues ao Assinante, a assinatura será marcada como desativada pelo trabalho de limpeza de Distribuição executado no Distribuidor. A assinatura deve ser reinicializada.

Mesclagem:

Se uma publicação tiver um período de retenção de 14 dias, uma assinatura poderá expirar se não tiver sido sincronizada dentro de 14 dias. Se o Publicador está executando o SQL Server 2005 ou uma versão mais recente e o agente para a assinatura for do SQL Server 2005 ou uma versão mais recente, uma assinatura irá expirar apenas se não houver alteração aos dados na partição daquela assinatura. Por exemplo, na hipótese em que um Assinante receba dados de clientes apenas para clientes da Alemanha. Se o período de retenção for configurado como 14 dias, a assinatura expira no dia 14 apenas se houver alterações nos dados dos clientes da Alemanha nos últimos 14 dias.

Resoluções

Verifique se o agente de Distribuição/Mesclagem falhou com um erro. Verifique o histórico de Trabalho e obtenha mais detalhes.

Para assinaturas que se tornaram inativas, verifique a tabela Msrepl_errors no banco de dados de Distribuição por erros. Repare o erro e reinicialize a Assinatura.

Se não houver erros para replicação transacional, verifique a tabela Msrepl_errors para o que causou a inatividade da assinatura. Se não houver erros para replicação de Mesclagem, verifique a tabela msmerge_history para o que causou a inatividade da Assinatura.

Parâmetros Substituíveis

Nome

Descrição

Valor Padrão

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.

900

Tempo limite (segundos)

Tempo limite (segundos)

300

Tempo de Sincronização

Tempo de Sincronização

 

Element properties:

TargetMicrosoft.SQLServer.2014.Replication.Publisher
Parent MonitorSystem.Health.ConfigurationState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.Replication.MonitorType.PublisherSubscriptionsMonitor
RemotableTrue
AccessibilityPublic
Alert Message
Replicação do MSSQL2014: assinatura(s) inativa(s) detectada(s) para Publicador.
O Publicador (Nome: '{0}', Servidor: '{1}') detectou assinatura(s) inativa(s).
Informações:
{2}
RunAsMicrosoft.SQLServer.Replication.Monitoring.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Replication.Monitor.PublisherSubscriptionsMonitor" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Publisher" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.Replication.MonitorType.PublisherSubscriptionsMonitor" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Replication.Monitor.PublisherSubscriptions.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericPublisher']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericPublisher']/ConnectionString$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericPublisher']/Distributor$</ConnectionString>
<DistributorDbName>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericPublisher']/DistributorDatabaseName$</DistributorDbName>
<PublisherServerName>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericPublisher']/ConnectionString$</PublisherServerName>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>