Verwenden von Warnungen für Replikations-Agentereignisse
Gilt für:SQL ServerAzure SQL Managed Instance
SQL Server Management Studio und Microsoft SQL Server-Agent bieten eine Möglichkeit, Ereignisse wie Replikations-Agent-Ereignisse mithilfe von Warnungen zu überwachen. SQL Server-Agent überwacht das Windows-Anwendungsprotokoll auf Ereignisse, die Warnungen zugeordnet sind. Wenn ein solches Ereignis auftritt, antwortet SQL Server-Agent automatisch, indem eine Aufgabe ausgeführt wird, die Sie definiert haben und/oder E-Mail oder eine Pagernachricht an einen angegebenen Operator senden. SQL Server enthält eine Reihe vordefinierter Warnungen für Replikations-Agents, die Sie konfigurieren können, um eine Aufgabe auszuführen und/oder einen Operator zu benachrichtigen. Weitere Informationen zum Definieren eines auszuführenden Tasks finden Sie im Abschnitt zum Automatisieren einer Antwort auf eine Warnung in diesem Thema.
Die folgenden Warnungen werden installiert, wenn ein Computer als Verteiler konfiguriert wird:
Meldungs-ID | Vordefinierte Warnung | Bedingung, die die Warnung auslöst | Zusätzlich eingegebene Informationen in msdb..sysreplicationalerts |
---|---|---|---|
14150 | Replikation: Der Agent war erfolgreich. | Agent wird erfolgreich heruntergefahren. | Ja |
14151 | Replikation: Fehler beim Agent. | Agent wird mit einem Fehler heruntergefahren. | Ja |
14152 | Replikation: Wiederholung des Agents. | Der Agent wird nach dem erfolglosen erneuten Versuch einer Operation beendet (der Agent stellt einen Fehler fest, wie z. B. einen nicht verfügbaren Server, einen Deadlock, einen Verbindungsfehler oder einen Timeoutfehler). | Ja |
14157 | Replikation: Abgelaufenes Abonnement wurde gelöscht. | Ein abgelaufenes Abonnement wurde gelöscht. | Nein |
20572 | Replikation: Das Abonnement wurde nach einem Überprüfungsfehler neu initialisiert. | Antwortauftrag 'Abonnements bei Datenüberprüfungsfehler erneut initialisieren' initialisiert ein Abonnement erfolgreich erneut. | Nein |
20574 | Replikation: Fehler bei der Datenüberprüfung auf dem Abonnenten. | Datenüberprüfung durch Verteilungs- oder Merge-Agent fehlgeschlagen. | Ja |
20575 | Replikation: Der Abonnent hat die Datenüberprüfung erfolgreich durchlaufen. | Verteilungs- oder Merge-Agent durchläuft eine Datenüberprüfung. | Ja |
20578 | Replikation: Der Agent wurde benutzerdefiniert heruntergefahren. | Wenn die Datenüberprüfung über sp_publication_validation aufgerufen und @shutdown_agent auf " 1 Festgelegt" festgelegt ist, wird der Verteilungs-Agent nach Abschluss der Überprüfung heruntergefahren. |
Ja |
22815 | Peer-zu-Peer-Konflikterkennungswarnung | Der Verteilungs-Agent hat bei dem Versuch, eine Änderung an einem Peer-zu-Peer-Knoten vorzunehmen, einen Konflikt erkannt. | Ja |
Zusätzlich zu diesen Warnungen bietet der Replikationsmonitor eine Reihe von status- und leistungsbezogenen Warnungen. Weitere Informationen finden Sie unter Set Thresholds and Warnings in Replication Monitor. Sie können auch Warnungen für andere Replikationsereignisse mithilfe der SQL Server-Warnungsinfrastruktur definieren. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Ereignisses.
So konfigurieren Sie vordefinierte Replikationswarnungen
- SQL Server Management Studio: Konfigurieren vordefinierter Replikationsbenachrichtigungen (SQL Server Management Studio)
Direktes Anzeigen des Anwendungsprotokolls
Verwenden Sie zum Anzeigen des Windows-Anwendungsprotokolls die Microsoft Windows-Ereignisanzeige. Das Anwendungsprotokoll enthält SQL Server-Fehlermeldungen sowie Meldungen für viele andere Aktivitäten auf dem Computer. Im Gegensatz zum SQL Server-Fehlerprotokoll wird bei jedem Starten von SQL Server kein neues Anwendungsprotokoll erstellt (jede SQL Server-Sitzung schreibt neue Ereignisse in ein vorhandenes Anwendungsprotokoll); Sie können jedoch angeben, wie lange protokollierte Ereignisse aufbewahrt werden sollen. Wenn Sie das Windows-Anwendungsprotokoll anzeigen, können Sie das Protokoll nach bestimmten Ereignissen filtern. Weitere Informationen finden Sie in der Windows-Dokumentation.
Automatisieren einer Antwort auf eine Warnung
Die Replikation stellt einen Antwortauftrag für Abonnements bereit, deren Überprüfung fehlgeschlagen ist, und bietet außerdem ein Framework zum Erstellen weiterer automatischer Antworten auf Warnungen. Der Antwortauftrag lautet "Abonnements für Datenüberprüfungsfehler erneut initialisieren" und wird im Ordner "SQL Server-Agent Aufträge" in SQL Server Management Studio gespeichert. Informationen zum Aktivieren dieses Antwortauftrags finden Sie unter Konfigurieren vordefinierter Replikationsbenachrichtigungen (SQL Server Management Studio).For information about enabling this response job, see Configure Predefined Replication Alerts (SQL Server Management Studio). Wenn die Überprüfung bei Artikeln in einer Transaktionsveröffentlichung einen Fehler erzeugt, werden nur die fehlerhaften Artikel vom Antwortauftrag erneut initialisiert. Schlägt die Überprüfung in einer Mergeveröffentlichung fehl, werden alle Artikel vom Antwortauftrag erneut initialisiert.
Framework für automatische Antworten
Wenn eine Warnung auftritt, sind in der Regel die einzigen Informationen, mit deren Hilfe Sie verstehen können, was die Warnung auslöste und welche entsprechende Maßnahme ergriffen werden sollte, in der Warnmeldung enthalten. Eine Analyse dieser Informationen kann sich als fehleranfällig und zeitraubend erweisen. Die Replikation vereinfacht automatische Antworten, da in der sysreplicationalerts -Systemtabelle zusätzliche Informationen zur Warnung bereitgestellt werden. Diese Informationen sind bereits so analysiert, dass sie einfach in benutzerdefinierten Programmen verwendet werden können.
Wenn beispielsweise die Daten in der Tabelle "Sales.SalesOrderHeader " bei Subscriber A die Überprüfung fehlschlägt, kann SQL Server die Meldung 20574 auslösen und Sie über diesen Fehler benachrichtigen. Sie empfangen die folgende Meldung: "Fehler bei der Datenüberprüfung für das Abonnement des Abonnenten 'A', für den 'SalesOrderHeader'-Artikel in der in der 'MyPublication'-Veröffentlichung."
Wenn Sie eine Antwort basierend auf dieser Meldung erstellen, müssen Sie den Namen des Abonnenten, den Artikelnamen, den Veröffentlichungsnamen und den Fehler aus der Meldung manuell analysieren. Da der Verteilungs-Agent und der Merge-Agent aber die gleichen Informationen in sysreplicationalerts schreiben, zusammen mit Details wie Agenttyp, Zeitpunkt der Warnung, Veröffentlichungsdatenbank und Veröffentlichungstyp, kann der Antwortauftrag die relevanten Informationen direkt aus der Tabelle abfragen. Obwohl die genaue Zeile nicht einer spezifischen Warnungsinstanz zugeordnet werden kann, kann die status -Spalte in der Tabelle zum Nachverfolgen der Diensteinträge verwendet werden. Die Einträge in dieser Tabelle werden während der Beibehaltungsdauer für den Verlauf beibehalten.
Wenn Sie z. B. einen Antwortauftrag in Transact-SQL erstellen möchten, der die Warnmeldung 20574 dienstt, können Sie die folgende Logik verwenden:
declare @publisher sysname, @publisher_db sysname, @publication sysname, @publication_type int, @article sysname, @subscriber sysname, @subscriber_db sysname, @alert_id int
declare hc cursor local for select publisher, publisher_db, publication, publication_type, article, subscriber,
subscriber_db, alert_id from
msdb..sysreplicationalerts where
alert_error_code = 20574 and status = 0
for read only
open hc
fetch hc into @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
while (@@fetch_status <> -1)
begin
/* Do custom work */
/* Update status to 1, which means the alert has been serviced. This prevents subsequent runs of this job from doing this again */
update msdb..sysreplicationalerts set status = 1 where alert_id = @alert_id
fetch hc into @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
end
close hc
deallocate hc
Weitere Informationen
Verwaltung des Replikations-Agents
Best Practices for Replication Administration
Überwachen (Replikation)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für