Percentual de Assinaturas Expiradas

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

Monitoramento de Percentual de Assinaturas Expiradas

Knowledge Base article:

Resumo

Mede o percentual de assinaturas expiradas.

O monitoramento não dá suporte para replicação de mesclagem.

Causas

Uma assinatura irá expirar se não tiver sido sincronizada dentro do período de retenção especificado.

Para replicação transacional, se uma assinatura não for sincronizada dentro do período de retenção de publicação, a assinatura expirará e será removida pelo trabalho de limpeza de assinatura expirada, executado no Publicador.

Resoluções

Para replicação transacional, a assinatura deve ser recriada e sincronizada. Se uma assinatura push expirar, será completamente removida, mas isso não ocorrerá com assinaturas push. Assinaturas Pull devem ser limpadas no Assinante.

Pode ser que o período de retenção precise ser ajustado para permitir uma duração ampliada entre as sincronizações do Assinante. Esteja ciente de que, ao ampliar esse valor, a quantidade de dados de replicação retidos também crescerá, com potencial de impacto negativo no desempenho da replicação.

Externo

Mais informações sobre o gerenciamento de expiração de assinatura podem ser encontradas no seguinte local:

http://technet.microsoft.com/library/ms151188.aspx

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

10

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.

300

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.

200

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 Aviso

Limite de Aviso

0

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Distributor
Parent MonitorSystem.Health.ConfigurationState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.DistributorPercentOfExpiredSubscriptions
RemotableTrue
AccessibilityPublic
Alert Message
Replicação do MSSQL no Windows: um percentual alto de assinaturas expiradas foi detectado no Distribuidor.
O Distribuidor (Nome: '{0}', Servidor: '{1}') detectou uma alta porcentagem de assinaturas expiradas.
Porcentagem de assinaturas expiradas: {2}\%
Assinaturas:
{3}
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.PercentOfExpiredSubscriptions" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.DistributorPercentOfExpiredSubscriptions" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.DistributorPercentOfExpiredSubscriptions.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</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='DistributorPercentOfExpiredSubscriptions']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='Message']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<WarningThreshold>0</WarningThreshold>
<ErrorThreshold>10</ErrorThreshold>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
</Configuration>
</UnitMonitor>