Sottoscrizioni non sincronizzate nel server di distribuzione

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

Questo monitoraggio rileva le sottoscrizioni non sincronizzate per server di distribuzione specifici. Si noti che questo monitoraggio è disabilitato per le sottoscrizioni di tipo merge.

Knowledge Base article:

Riepilogo

Questo monitoraggio rileva le sottoscrizioni non sincronizzate per un server di distribuzione specifico. Si noti che questo monitoraggio è disabilitato per le sottoscrizioni di tipo merge.

Se il numero di sottoscrizioni non sincronizzate supera la soglia, viene generato un avviso con il formato seguente:

Il server di distribuzione (nome: '{0}', server: '{1}') ha rilevato {2} sottoscrizioni non sincronizzate.

Cause

Cause comuni del problema: l'agente di distribuzione non è in esecuzione o ha riscontrato problemi di prestazioni.

Risoluzioni

Verificare che l'agente di distribuzione sia in esecuzione.

Eseguire l'istruzione UPDATE STATISTICS con la clausola FULLSCAN sulle tabelle nel database di distribuzione.

Se una pubblicazione specifica registra un numero elevato di transazioni durante il periodo, provare a inizializzare di nuovo la sottoscrizione corrispondente. Se viene usato uno snapshot per recapitare i comandi non distribuiti correlati, la pulizia delle tabelle di distribuzione risulterà utile anche alle altre sottoscrizioni.

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Priorità avviso

Definisce la priorità dell'avviso.

Normale

Gravità avviso

Definisce la gravità dell'avviso.

Avviso

Abilitato

Abilita o disabilita il flusso di lavoro.

Genera avvisi

Definisce se il flusso di lavoro genera un avviso.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

300

Numero di campioni

Indica quante volte un valore misurato deve violare una soglia prima che venga modificato lo stato.

12

Soglia per sottoscrizione

Soglia per sottoscrizione

0

Ora di sincronizzazione

Ora di sincronizzazione

 

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

200

Timeout per la connessione di database (secondi)

Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato.

15

Soglia del numero di sottoscrizioni non integre

Soglia del numero di sottoscrizioni non integre

0

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Distributor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.DistributorUnsyncSubscriptions
RemotableTrue
AccessibilityPublic
Alert Message
Replica di MSSQL per Windows: Sono state rilevate sottoscrizioni non sincronizzate.
Il server di distribuzione (nome: '{0}', server: '{1}') ha rilevato {2} sottoscrizioni non sincronizzate.
{3}
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.UnsyncSubscriptions" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.DistributorUnsyncSubscriptions" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.DistributorUnsyncSubscriptions.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='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>
<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>
<ThresholdPendingCommandForSubscription>0</ThresholdPendingCommandForSubscription>
<ThresholdUnhealthySubscriptionsCount>0</ThresholdUnhealthySubscriptionsCount>
<NumSamples>12</NumSamples>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
</Configuration>
</UnitMonitor>