Die Auslastung der Replikations-Agents auf dem Abonnenten.

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

Die Last von Replikations-Agents (Verteilung und Merge) auf dem Abonnenten. Beachten Sie, dass der SQL Server-Agent für SQL Server Express-Editionen nicht verfügbar ist. Daher ist dieser Monitor für Instanzen dieser Editionen deaktiviert.

Knowledge Base article:

Zusammenfassung

Dieser Monitor berechnet die Gesamtausführungszeit jedes Replikations-Agents (Verteilung, Merge) auf einem Abonnenten für den durch den Schwellenwert definierten Zeitraum. Wenn die Gesamtausführungszeit eines Agents den definierten Schwellenwert überschreitet, wird eine Benachrichtigung im folgenden Format ausgelöst:

Der Abonnent (Name: "{0}", Server: "{1}") hat {2} % Auslastung ermittelt.

Beachten Sie, dass der SQL Server-Agent für SQL Server Express-Editionen nicht verfügbar ist. Daher ist dieser Monitor für Instanzen dieser Editionen deaktiviert.

Ursachen

Lösungen

Öffnen Sie den Auftragsverlauf des Wiederholungsversuch-Agents für jede Fehlermeldung, und untersuchen und beheben Sie dann die Fehler entsprechend.

Führen Sie "sp_who2" aus, wenn der Auftrag ausgeführt wird, und überprüfen Sie, ob er durch eine andere Sitzung blockiert wird. Wenn er blockiert wird, lösen Sie die Blockierung auf, oder warten Sie, bis die andere Sitzung abgeschlossen ist.

Stellen Sie sicher, dass die Netzwerklatenz zwischen dem Verteiler und dem Abonnenten (Verteilungs-Agent) nicht zu hoch ist.

Identifizieren und untersuchen Sie alle Abfragen mit langer Ausführungszeit.

Stellen Sie sicher, dass die Statistiken aktuell sind, indem Sie "sp_updatestats" für die abonnierenden Datenbanken ausführen.

( http://msdn.microsoft.com/library/ms173804.aspx)

Stellen Sie sicher, dass die Indizes für die abonnierende Datenbank nicht stark fragmentiert sind.

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Warnungspriorität

Definiert die Warnungspriorität.

Normal

Warnungsschweregrad

Definiert den Warnungsschweregrad.

Fehler

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Fehlerschwellenwert

Fehlerschwellenwert

4

Generiert Warnungen

Definiert, ob der Workflow eine Warnung generiert.

Ja

Intervall (Sekunden)

Gibt das Wiederholungsintervall in Sekunden für die Ausführung des Workflows an.

300

Messzeitraum (Stunden)

Für Messung verwendeter Zeitraum (Stunden)

24

Synchronisierungszeit

Synchronisierungszeit

 

Timeout (Sekunden)

Gibt an, wie lange der Workflow ausgeführt werden kann, bevor er geschlossen und als fehlerhaft markiert wird.

200

Timeout für Datenbankverbindung (Sekunden)

Es tritt ein Fehler beim Workflow auf, und ein Ereignis wird registriert, wenn der Workflow nicht innerhalb des angegebenen Zeitraums auf die Datenbank zugreifen kann.

15

Warnungsschwellenwert

Warnungsschwellenwert

3

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Subscriber
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.DistributorAgentsLoad
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL unter Windows-Replikation: Die Replikations-Agents auf dem Abonnenten werden mit hoher Auslastung ausgeführt
Hohe Auslastung für den Abonnenten (Name: "{0}", Server: "{1}") innerhalb der letzten 24 Stunden für {2} Stunden.
{3}
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriberAgentsLoad" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Subscriber" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.DistributorAgentsLoad" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriberAgentsLoad.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='LoadHours']$</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"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</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>3</WarningThreshold>
<ErrorThreshold>4</ErrorThreshold>
<LastHours>24</LastHours>
<CategoryList>Distribution, Merge</CategoryList>
<ExcludeCategoryList/>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
</Configuration>
</UnitMonitor>