Die Benachrichtigungsregel "Fehler der Wartungsaufträge für den Verteiler".
Die Replikation verwendet die folgenden Aufträge, um geplante und bedarfsgesteuerte Wartung auszuführen.
Bereinigungsauftrag | Beschreibung | Standardzeitplan |
Bereinigung des Agent-Verlaufs: Verteilung | Entfernt den Verlauf des Replikations-Agents aus der Verteilungsdatenbank. | Wird alle zehn Minuten ausgeführt. |
Verteilungsbereinigung: Verteilung | Entfernt replizierte Transaktionen aus der Verteilungsdatenbank. Deaktiviert Abonnements, die nicht innerhalb des maximalen Zeitraums für Verteilungsbeibehaltung synchronisiert wurden. | Wird alle zehn Minuten ausgeführt. |
Bereinigung abgelaufener Abonnements | Ermittelt und entfernt abgelaufene Abonnements aus Veröffentlichungsdatenbanken. | Wird täglich um 1:00 Uhr ausgeführt. |
Abonnements mit Datenüberprüfungsfehlern erneut initialisieren | Ermittelt alle Abonnements, die Datenüberprüfungsfehler aufweisen, und markiert diese für die erneute Initialisierung. Bei der nächsten Ausführung des Merge-Agents oder Verteilungs-Agents wird eine neue Momentaufnahme bei den Abonnenten angewendet. | Kein Standardzeitplan (nicht standardmäßig aktiviert). |
Überprüfung der Replikations-Agents | Ermittelt Replikations-Agents, die nicht aktiv den Verlauf protokollieren. Bei einem Fehler eines Auftragsschritts wird ein Eintrag in das Microsoft Windows-Ereignisprotokoll geschrieben. | Wird alle zehn Minuten ausgeführt. |
Aktualisierung der Replikationsüberwachung für die Verteilung | Aktualisiert zwischengespeicherte Abfragen, die vom Replikationsmonitor verwendet werden. | Wird fortlaufend ausgeführt. |
Ein Fehler der Replikationswartungsaufträge kann zahlreiche Ursachen besitzen:
Konfigurationsprobleme des SQL Server-Agents
Probleme des Replikationswartungsauftrags, z. B. nicht ordnungsgemäße Parameterwerte.
Datenintegritätsfehler
Abfragetimeouts
Versuchen Sie Folgendes, um das Problem zu beheben:
Untersuchen Sie den SQL Server-Agent-Verlauf, um die Ursache des Agent-Fehlers zu ermitteln.
Untersuchen Sie die genannten Elemente in einer Benachrichtigung und den Verlauf des Replikationswartungsauftrags auf Fehlermeldungen, und analysieren/beheben Sie die Fehler entsprechend. Verwenden Sie den folgenden Link, um den Auftragsverlauf anzuzeigen: KB.
Aktivieren Sie ausführliche Protokollierung, und führen Sie den Auftrag erneut aus, um ausführliche Fehlerinformationen abzurufen.
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Intervall (Sekunden) | Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll. | 300 |
Priorität | Definiert die Benachrichtigungspriorität. | 2 |
Schweregrad | Definiert den Benachrichtigungschweregrad. | 2 |
Timeout (Sekunden) | Timeout (Sekunden) | 300 |
Synchronisierungszeit | Synchronisierungszeit |
|
Target | Microsoft.SQLServer.2014.Replication.Distributor | ||
Category | Alert | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | High | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.SQLServer.2014.Replication.DataSource.DistributorFailJobsMonitor | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
CDMaintenanceJobsCountNotNull | ConditionDetection | System.ExpressionFilter | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2014.Replication.DistributorFailedMaintenanceJobsAlertRule" ConfirmDelivery="true" DiscardLevel="100" Enabled="true" Priority="Normal" Remotable="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Distributor">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2014.Replication.DataSource.DistributorFailJobsMonitor" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor"]/ConnectionString$</ConnectionString>
<NumberOfConsecutiveFails>1</NumberOfConsecutiveFails>
<CategoryList/>
<ExcludeCategoryList>Distribution, LogReader, Merge, QueueReader, Snapshot</ExcludeCategoryList>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</DataSource>
</DataSources>
<ConditionDetection ID="CDMaintenanceJobsCountNotNull" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='DistributorFailJobs']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.Replication.DistributorFailedMaintenanceJobsAlertRule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/Property[@Name="Message"]$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>