Dieser Monitor überprüft die Latenz für Befehle in der Verteilungsdatenbank, die auf ihre Übermittlung an Abonnenten warten.
Dieser Monitor erfasst Informationen ähnlich wie der Replikationsmonitor, der die ausstehenden Befehle auf der Registerkarte "Nicht verteilte Befehle" zusammen mit der geschätzten Zeit für die Übermittlung dieser Befehle anzeigt. Wenn die geschätzte Zeit länger als die in einem Schwellenwertzeitraum angegebene Zeit ist, wird eine Benachrichtigung ausgelöst, um die Informationen anzuzeigen.
http://msdn.microsoft.com/library/ms183374.aspx
Der Verteilungs-Agent wurde ggf. beendet.
Ggf. ist eine große Menge ausstehender Transaktionen mit zahlreichen Befehlen, für die ein Commit ausgeführt wurde, für die Verlegerdatenbank vorhanden, die in die Verteilungsdatenbank repliziert werden.
Für den Verteilungs-Agent sind ggf. Leistungsprobleme beim Lesen aus der Verteilungsdatenbank oder beim Schreiben in die Abonnentendatenbank aufgetreten.
Wenn sowohl "-MaxDeliveredTransactions" als auch "-Continuous" angegeben wird, übermittelt der Verteilungs-Agent die angegebene Anzahl von Transaktionen und wird dann beendet (obwohl "-Continuous" angegeben wird). Sie müssen den Verteilungs-Agent neu starten, nachdem der Auftrag abgeschlossen wurde.
Wenn die Benachrichtigung aufgrund eines großen Transaktionsvolumens in der Verlegerdatenbank erfolgt, werten Sie die geschätzte Übermittlungszeit aus. Initialisieren Sie das Abonnement ggf. erneut, wenn die geschätzte Übermittlungszeit länger als das Erstellen und Anwenden einer Momentaufnahme ist.
Wenn für den Verteilungs-Agent Leistungsprobleme beim Lesen der Verteilungsdatenbank auftreten, führen Sie die Aktualisierung der Statistiken mit der Option "Fullscan" für die Verteilungstabellen aus.
Wenn für den Verteilungs-Agent Leistungsprobleme beim Schreiben in den Abonnenten auftreten, überprüfen Sie Blockierungen oder Ressourcenwartevorgänge für die Abonnentendatenbank, und beheben Sie diese.
Testen Sie, ob das Ändern der unten genannten Parameterwerte die Leistung des Verteilungs-Agents verbessern kann:
CommitBatchSize
Die Anzahl der Transaktionen die an den Abonnenten ausgegeben werden müssen, bevor eine COMMIT-Anweisung ausgegeben wird. Der Standardwert ist 100.
QueryTimeOut
Die Anzahl von Sekunden, bevor ein Timeout der Abfrage erfolgt. Der Standardwert sind 1.800 Sekunden.
SubscriptionStreams
Die Anzahl der Verbindungen, die pro Verteilungs-Agent zum parallelen Anwenden von Änderungsbatches auf einen Abonnenten zulässig sind. Für einen SQL Server-Verleger wird ein Wertebereich von 1 bis 64 unterstützt.
https://msdn.microsoft.com/library/ms173804.aspx)
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Schwellenwert | Schwellenwert | 60 |
Generiert Benachrichtigungen. | Definiert, ob der Workflow eine Benachrichtigung generiert. | Ja |
Intervall (Sekunden) | Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll. | 300 |
Timeout (Sekunden) | Timeout (Sekunden) | 300 |
Synchronisierungszeit | Synchronisierungszeit |
|
Target | Microsoft.SQLServer.2012.Replication.Subscription | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.Replication.MonitorType.SubscriptionLongEstimatedTime | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2012.Replication.Monitor.SubscriptionLongEstimatedTimeMonitor" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2012.Replication.Subscription" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Replication.MonitorType.SubscriptionLongEstimatedTime" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Replication.Monitor.SubscriptionLongEstimatedTime.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription']/SubscriptionName$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='EstimatedTime']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/Distributor$</ConnectionString>
<SubscriptionType>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/Type$</SubscriptionType>
<PublisherName>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/Publisher$</PublisherName>
<Subscriber>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/Subscriber$</Subscriber>
<PublisherDb>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/PublicationDatabase$</PublisherDb>
<SubscriberDb>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/SubscriptionDatabase$</SubscriberDb>
<Publication>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/PublicationName$</Publication>
<ReplicationType>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericSubscription"]/ReplicationType$</ReplicationType>
<EstimatedTimeSecondsThreshold>60</EstimatedTimeSecondsThreshold>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>