Monitoramento de Percentual de Assinaturas Expiradas
Mede o percentual de assinaturas expiradas.
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 tiver sido sincronizada dentro do período de retenção de publicação, a assinatura irá expirar e será removida pelo trabalho de limpeza da assinatura expirada executado no Publicador.
Para replicação de mesclagem, os parâmetros @retention e @retention_period_unit de sp_addmergepublication são usados para determinar o período de retenção. Uma assinatura expira apenas se a assinatura não tiver sincronizado com sucesso no período de retenção, e houver alteração de dados na partição do assinante.
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.
Quando uma assinatura de mesclagem expirar, os metadados para a assinatura são removidos. A assinatura pode ser reinicializada para dobrar o período de retenção desde a última sincronização bem sucedida. Após passar o valor dobrado do período de retenção, será completamente removida e deve ser recriada e sincronizada. A assinatura é removida automaticamente para assinaturas push pelo trabalho de limpeza da assinatura Expirada. Assinaturas pull não são excluídas e devem ser limpadas no assinante.
Pode ser que o período de retenção precise ser ajustado para permitir uma duração ampliada entre sincronizações de assinante. Esteja ciente de que, ao ampliar esse valor, consequentemente a quantidade de dados de replicação também crescerá, com potencial de impacto negativo no desempenho de replicação.
Mais informações sobre o gerenciamento de expiração de assinatura podem ser encontradas no seguinte local:
http://technet.microsoft.com/library/ms151188.aspx
Nome | Descrição | Valor Padrão |
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 um Alerta | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho. | 300 |
Tempo limite (segundos) | Tempo limite (segundos) | 300 |
Tempo de Sincronização | Tempo de Sincronização |
|
Limite de alerta | Limite de alerta | 0 |
Target | Microsoft.SQLServer.2014.Replication.Distributor | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.Replication.MonitorType.DistributorPercentOfDeactivatedSubscriptions | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2014.Replication.Monitor.PercentOfExpiredSubscriptions" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Distributor" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.Replication.MonitorType.DistributorPercentOfDeactivatedSubscriptions" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Replication.Monitor.DistributorPercentOfExpiredSubscriptions.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</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='DistributorPercentOfDeactivatedSubscriptions']$</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>
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<MeasuredStateId>0</MeasuredStateId>
<WarningThreshold>0</WarningThreshold>
<ErrorThreshold>10</ErrorThreshold>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>