Estado das assinaturas para o Publicador

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

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

Knowledge Base article:

Resumo

Assinaturas poderão ser desativadas ou poderão 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 deverá ser reinicializada.

Mesclar:

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 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 expirará 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

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 ou não um Alerta.

Sim

Intervalo (segundos)

O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho.

900

Tempo de Sincronização

Tempo de Sincronização

 

Tempo limite (segundos)

Especifica a quantidade de tempo que o fluxo de trabalho tem permissão para executar 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

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.PublisherSubscriptionsMonitor" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Publisher" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.PublisherSubscriptionsMonitor" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.PublisherSubscriptions.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/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>
<MachineName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericPublisher']/Distributor$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<DistributorDbName>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericPublisher']/DistributorDatabaseName$</DistributorDbName>
<PublisherServerName>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericPublisher']/ConnectionString$</PublisherServerName>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>