Überwachen des Spiegelungsstatus
Zum Einrichten und Verwalten der Überwachung für eine oder mehrere gespiegelte Datenbanken auf einer Serverinstanz können Sie entweder den Datenbanküberwachungs-Monitor oder die gespeicherten Systemprozeduren von dbmmonitor verwenden. Sie können eine gespiegelte Datenbank während einer Spiegelungssitzung überwachen, um zu überprüfen, ob und auf welche Weise ein Datenfluss stattfindet.
Die Überwachung einer gespiegelten Datenbank ermöglicht Ihnen insbesondere Folgendes:
Überprüfen, ob die Spiegelung funktionsfähig ist.
Aus dem Basisstatus erkennen Sie, ob die zwei Serverinstanzen in Betrieb sind, ob zwischen den Servern eine Verbindung besteht und ob das Protokoll vom Prinzipal auf den Spiegel verschoben wird.
Bestimmen, ob die Spiegeldatenbank mit der Prinzipaldatenbank Schritt hält.
Im Modus für hohe Leistung kann auf einem Prinzipalserver ein Rückstand von nicht gesendeten Protokolldatensätzen entstehen, die vom Prinzipalserver noch an den Spiegelserver gesendet werden müssen. In jedem Betriebsmodus kann zudem auf dem Spiegelserver ein Rückstand an noch nicht wiederhergestellten Protokolldatensätzen entstehen, die zwar bereits in die Protokolldatei geschrieben wurden, aber auf der Spiegeldatenbank noch wiederhergestellt werden müssen.
Das Ausmaß an Datenverlusten bestimmen, wenn die Prinzipalserverinstanz während des Modus für hohe Leistung unverfügbar wird.
Sie können den Datenverlust anhand des evtl. noch nicht gesendeten Transaktionsprotokollanteils und des Zeitintervalls ermitteln, in dem für die verlorenen Transaktionen auf dem Prinzipal ein Commit ausgeführt wurde.
Vergleichen der aktuellen Leistung mit der vergangenen Leistung.
Bei Auftreten von Problemen kann ein Datenbankadministrator einen Verlauf der Spiegelungsleistung anzeigen lassen und dadurch u. U. die Ursache des aktuellen Status feststellen. Ein Blick auf die Verlaufsdaten kann es dem Benutzer ermöglichen, Trends im Leistungsverhalten zu erkennen, Muster von Leistungsproblemen zu identifizieren (z. B. zu welchen Tageszeiten das Netzwerk langsam ist oder zu welchen Zeiten eine große Anzahl von Befehlen in das Protokoll geschrieben werden).
Feststellen der Ursache eines reduzierten Datenflusses zwischen Spiegelungspartnern.
Festlegen von Warnungsschwellenwerten für Schlüsselleistungsmetriken.
Wenn eine neue Statuszeile einen Wert enthält, der einen Schwellenwert überschreitet, wird ein Informationsereignis an das Windows-Ereignisprotokoll gesendet. Ein Systemadministrator kann dann manuell Warnmeldungen basierend auf diesen Ereignissen konfigurieren. Weitere Informationen finden Sie unter Verwenden von Warnungsschwellenwerten und Warnmeldungen für Spiegelungsleistungsmetriken.
Tools zum Überwachen des Datenbank-Spiegelungsstatus
Der Status der Spiegelung kann entweder mithilfe des Datenbanküberwachungs-Monitors oder der gespeicherten Systemprozedur sp_dbmmonitorresults überwacht werden. Mit diesen Tools können sowohl Systemadministratoren, d. h., Mitglieder der festen Serverrolle sysadmin, als auch Benutzer, die von einem Systemadministrator der festen Datenbankrolle dbm_monitor in der msdb-Datenbank hinzugefügt wurden, die Datenbankspiegelung für jede gespiegelte Datenbank auf der lokalen Serverinstanz überwachen. Bei beiden Tools kann ein Systemadministrator den Spiegelungsstatus auch manuell aktualisieren.
Hinweis |
---|
Systemadministratoren können auch Warnungsschwellenwerte für wichtige Leistungsmetriken konfigurieren und anzeigen. Weitere Informationen finden Sie unter Verwenden von Warnungsschwellenwerten und Warnmeldungen für Spiegelungsleistungsmetriken. |
Datenbankspiegelungs-Monitor
Der Datenbankspiegelungs-Monitor verfügt über eine grafische Benutzeroberfläche, mit der Systemadministratoren den Status anzeigen und aktualisieren können und für mehrere Schlüsselleistungsmetriken Warnungsschwellenwerte konfigurieren können. Der Datenbankspiegelungs-Monitor kann auch von Mitgliedern der festen Datenbankrolle dbm_monitor verwendet werden, um die jeweils neueste Zeile der Spiegelungsstatustabelle anzuzeigen. Die Statustabelle kann von diesen Benutzern jedoch nicht aktualisiert werden.
Auf dem Monitor wird der Status einschließlich der Leistungsmetrik für eine ausgewählte Datenbank auf der Seite Status im Registerformat angezeigt. Der Inhalt dieser Seite stammt sowohl von der Prinzipal- als auch von der Spiegelserverinstanz. Die Seite wird mit den Statusinformationen, die über jeweils separate Verbindungen zur Prinzipalserver- und Spiegelserverinstanz gesammelt werden, asynchron gefüllt. Der Monitor versucht, die Statustabelle alle 30 Sekunden zu aktualisieren. Die Aktualisierung ist nur dann erfolgreich, wenn die Tabelle nicht innerhalb von 15 Sekunden aktualisiert worden ist und der Benutzer ein Mitglied der festen Serverrolle sysadmin ist. Eine Zusammenfassung der Informationen, die auf der Seite Status angegeben werden, finden Sie unter Auf dem Datenbankspiegelungs-Monitor angezeigter Status weiter unten in diesem Thema.
Eine Einführung zur Benutzeroberfläche des Datenbankspiegelungs-Monitors finden Sie unter Datenbankspiegelungs-Monitor (Übersicht). Informationen zum Starten des Datenbankspiegelungs-Monitors finden Sie unter Vorgehensweise: Starten des Datenbankspiegelungs-Monitors.
Gespeicherte Systemprozeduren
Sie können den aktuellen Status auch abrufen oder aktualisieren, indem Sie die gespeicherte Systemprozedur sp_dbmmonitorresults ausführen. Andere gespeicherte Prozeduren von dbmmonitor ermöglichen es Ihnen, die Überwachung einzurichten, Überwachungsparameter zu ändern, den aktuellen Aktualisierungszeitraum anzuzeigen sowie die Überwachung auf der Serverinstanz zu entfernen.
In der folgenden Tabelle werden die gespeicherten Prozeduren vorgestellt, mit denen die Datenbankspiegelungsüberwachung unabhängig vom Datenbankspiegelungs-Monitor verwaltet und verwendet werden kann.
Prozedur
Beschreibung
Erstellt einen Auftrag, mit dem in regelmäßigen Abständen die Statusinformationen für jede gespiegelte Datenbank auf der Serverinstanz aktualisiert werden.
Ändert den Wert eines Parameters für die Datenbank-Spiegelungsüberwachung.
Gibt den aktuellen Aktualisierungszeitraum zurück.
Gibt Statuszeilen für eine überwachte Datenbank zurück. Außerdem können Sie damit festlegen, ob die Prozedur den neuesten Status vorzeitig abrufen soll.
Beendet und löscht den Auftrag für den Datenbankspiegelungs-Monitor für alle Datenbanken auf der Serverinstanz.
Die gespeicherten Systemprozeduren von dbmmonitor können als Zusatz zum Datenbankspiegelungs-Monitor verwendet werden So kann z. B. auch dann, wenn die Überwachung mit sp_dbmmonitoraddmonitoring konfiguriert wurde, der Status mithilfe des Datenbankspiegelungs-Monitors angezeigt werden.
Funktionsweise der Überwachung
Dieser Abschnitt enthält Erläuterungen zur Datenbank-Spiegelungsstatustabelle, zum Auftrag für den Datenbankspiegelungs-Monitor sowie zum Datenbankspiegelungs-Monitor. Sie erfahren außerdem, wie Benutzer den Status der Datenbankspiegelung überwachen können und wie der Überwachungsauftrag gelöscht werden kann.
Datenbank-Spiegelungsstatustabelle
Der Datenbank-Spiegelungsstatus wird in einer internen, nicht dokumentierten Datenbank-Spiegelungsstatustabelle in der msdb-Datenbank gespeichert. Diese Statustabelle wird automatisch erstellt, wenn der Spiegelungsstatus zum ersten Mal auf der Serverinstanz aktualisiert wird.
Die Statustabelle kann entweder automatisch aktualisiert werden oder manuell von einem Systemadministrator unter Einhaltung eines Mindestaktualisierungsintervalls von 15 Sekunden. Durch das Minimum von 15 Sekunden wird verhindert, dass Serverinstanzen mit Statusanforderungen überlastet werden.
Die Statustabelle wird automatisch sowohl vom Datenbankspiegelungs-Monitor als auch vom Auftrag für den Datenbankspiegelungs-Monitor aktualisiert, sofern dieser ausgeführt wird. Der Auftrag für den Datenbankspiegelungs-Monitor aktualisiert die Tabelle standardmäßig einmal pro Minute (ein Systemadministrator kann einen Aktualisierungszeitraum zwischen 1 und 120 Minuten angeben). Der Datenbankspiegelungs-Monitor hingegen aktualisiert die Tabelle automatisch alle 30 Sekunden. Für diese Aktualisierungen rufen der Auftrag für den Datenbankspiegelungs-Monitor und der Datenbankspiegelungs-Monitor die Prozedur sp_dbmmonitorupdate auf.
Wenn sp_dbmmonitorupdate zum ersten Mal ausgeführt wird, wird in der msdb-Datenbank die Datenbankspiegelung-Statustabelle und die feste Datenbankrolle dbm_monitor erstellt. Mit sp_dbmmonitorupdate wird der Spiegelungsstatus in der Regel durch Einfügen einer neuen Zeile in die Statustabelle für jede gespiegelte Datenbank auf der Serverinstanz aktualisiert. Weitere Informationen hierzu finden Sie unter "Datenbankspiegelungs-Statustabelle" weiter unten in diesem Thema. Diese Prozedur wertet außerdem die Leistungsmetrik in den neuen Zeilen aus und entfernt Zeilen, die älter sind als die aktuelle Beibehaltungsdauer (die Standardeinstellung ist 7 Tage). Weitere Informationen finden Sie unter sp_dbmmonitorupdate (Transact-SQL).
Hinweis |
---|
Sofern der Datenbankspiegelungs-Monitor nicht aktuell von einem Mitglied der festen Serverrolle sysadmin verwendet wird, erfolgt eine automatische Aktualisierung der Statustabelle nur dann, wenn der Auftrag für den Datenbankspiegelungs-Monitor vorhanden ist und der SQL Server-Agent ausgeführt wird. |
Auftrag für den Datenbankspiegelungs-Monitor
Der als Auftrag für den Datenbankspiegelungs-Monitor bezeichnete Auftrag für die Überwachung der Datenbankspiegelung arbeitet unabhängig vom Datenbankspiegelungs-Monitor. Der Auftrag für den Datenbankspiegelungs-Monitor wird nur dann automatisch erstellt, wenn eine Spiegelungssitzung mithilfe von SQL Server Management Studio gestartet wird. Wenn zum Starten der Spiegelung immer die ALTER DATABASE database_name SET PARTNER-Befehle verwendet werden, ist der Auftrag nur dann vorhanden, wenn der Systemadministrator die gespeicherte Prozedur sp_dbmmonitoraddmonitoring ausführt.
Nachdem der Auftrag für den Datenbankspiegelungs-Monitor erstellt wurde und vorausgesetzt, dass der SQL Server-Agent ausgeführt wird, wird der Auftrag standardmäßig einmal pro Minute aufgerufen. Der Auftrag ruft dann die gespeicherte Systemprozedur sp_dbmmonitorupdate auf.
Der SQL Server-Agent ruft den Auftrag für den Datenbankspiegelungs-Monitor standardmäßig einmal pro Minute auf, und der Auftrag ruft seinerseits sp_dbmmonitorupdate auf, um die Statustabelle zu aktualisieren. Systemadministratoren können den Aktualisierungszeitraum mithilfe der gespeicherten Systemprozedur sp_dbmmonitorchangemonitoring aktualisieren. Sie können außerdem den aktuellen Aktualisierungszeitraum mit der gespeicherten Systemprozedur sp_dbmmonitorchangemonitoring anzeigen lassen. Weitere Informationen finden Sie unter sp_dbmmonitoraddmonitoring (Transact-SQL) und sp_dbmmonitorchangemonitoring (Transact-SQL).
Überwachen des Datenbank-Spiegelungsstatus (durch Systemadministratoren)
Mitglieder der festen Serverrolle sysadmin können die Statustabelle anzeigen und aktualisieren.
Verwenden des Datenbankspiegelungs-Monitors
Mit dem Datenbankspiegelungs-Monitor kann ein Systemadministrator manuell die Seite Status, die Navigationsstruktur oder die Seite Verlauf aktualisieren. Dabei wird auch die Statustabelle aktualisiert, sofern sie nicht innerhalb der vorhergehenden 15 Sekunden bereits aktualisiert wurde.
Der Systemadministrator kann auch über die Schaltfläche Verlauf für eine Serverinstanz (auf der Seite Status) den Verlauf des Spiegelungsstatus auf einer bestimmten Serverinstanz anzeigen. Der Verlauf wird im Dialogfeld Datenbankspiegelungsverlauf angezeigt. Hier kann der Systemadministrator alle oder auch nur einen Teil der Zeilen in der Statustabelle der Serverinstanz einsehen.
Informationen zu den Metriken auf der Seite Status finden Sie unter "Vom Datenbankspiegelungs-Monitor angezeigte Leistungsmetriken" weiter unten in diesem Thema.
Verwenden von sp_dbmmonitorresults
Systemadministratoren können mit der gespeicherten Systemprozedur sp_dbmmonitorresults die Statustabelle anzeigen und bei Bedarf aktualisieren, sofern sie nicht in den vorhergehenden 15 Sekunden aktualisiert wurde. Diese Prozedur ruft die sp_dbmmonitorupdate-Prozedur auf und gibt, abhängig von der im Prozeduraufruf angeforderten Menge, eine oder mehrere Verlaufszeilen zurück. Informationen zu dem im Resultset angezeigten Status finden Sie unter sp_dbmmonitorresults (Transact-SQL).
Überwachen des Datenbankspiegelungs-Status (durch dbm_monitor Members)
Wie bereits erklärt wurde, wird beim ersten Ausführen von sp_dbmmonitorupdate in der msdb-Datenbank die feste Datenbankrolle dbm_monitor erstellt. Mitglieder der festen Datenbankrolle dbm_monitor können den vorhandenen Spiegelungsstatus entweder mithilfe des Datenbankspiegelungs-Monitors oder der gespeicherten Prozedur sp_dbmmonitorresults anzeigen. Diese Benutzer können jedoch nicht die Statustabelle aktualisieren. Welches Alter der angezeigte Status hat, geht aus den in den Beschriftungen Prinzipalprotokoll (<time>) und Spiegelungsprotokoll (<time>) angezeigten Uhrzeiten auf der Seite Status hervor.
Für Mitglieder der festen Datenbankrolle dbm_monitor wird die Statustabelle über den Auftrag für den Datenbankspiegelungs-Monitor in regelmäßigen Intervallen aktualisiert. Wenn der Auftrag nicht vorhanden ist oder der SQL Server-Agent beendet wird, veraltet der Status zunehmend und gibt möglicherweise nicht mehr die Konfiguration der Spiegelungssitzung wieder. So kann z. B. nach einem Failover fälschlicherweise angezeigt werden, dass die Partner dieselbe Rolle haben (Prinzipal oder Spiegel), oder der aktuelle Prinzipalserver wird als Spiegel angezeigt, während der aktuelle Spiegelserver als Prinzipal angezeigt wird.
Löschen des Auftrags für den Datenbankspiegelungs-Monitor
Der als Auftrag für den Datenbankspiegelungs-Monitor bezeichnete Auftrag für die Überwachung der Datenbankspiegelung bleibt so lange bestehen, bis er gelöscht wird. Der Überwachungsauftrag muss vom Systemadministrator verwaltet werden. Der Auftrag für den Datenbankspiegelungs-Monitor kann mit sp_dbmmonitordropmonitoring gelöscht werden. Weitere Informationen finden Sie unter sp_dbmmonitordropmonitoring (Transact-SQL).
Auf dem Datenbankspiegelungs-Monitor angezeigter Status
Auf der Seite Status des Datenbankspiegelungs-Monitors werden die Partner beschrieben sowie der Status der Spiegelungssitzung. Der Status umfasst Werte der Leistungsmetrik, z. B. den Zustand des Transaktionsprotokolls und weitere Informationen, mit denen gegenwärtig die Zeit zum Abschließen eines Failovers und die Gefahr des Datenverlusts abgeschätzt werden kann, wenn die Sitzung nicht synchronisiert wird. Zusätzlich enthält die Seite Status Angaben zum Status der Spiegelungssitzung sowie allgemeine Sitzungsinformationen.
Hinweis |
---|
Eine Einführung zum Datenbankspiegelungs-Monitor und zur Seite Status finden Sie unter Tools zum Überwachen des Datenbank-Spiegelungsstatus weiter oben in diesem Thema. |
Die jeweiligen bereitgestellten Informationen werden in den folgenden Abschnitten zusammengefasst.
Partner
Auf der Seite Status werden für jeden der Partner die folgenden Informationen angezeigt:
Serverinstanz
Name der Serverinstanz, deren Status in der Zeile Status angezeigt wird.
Aktuelle Rolle
Aktuelle Rolle der Serverinstanz. Folgende Statusangaben sind möglich:
Prinzipal
Spiegel
Spiegelungsstatus
Folgende Statusangaben sind möglich:
Unbekannt
Wird synchronisiert
Synchronisiert
Angehalten
Getrennt
Zeugenverbindung
Verbindungsstatus des Zeugen. Folgende Statusangaben sind möglich:
Unbekannt
Verbunden
Getrennt
Protokoll auf dem Prinzipalserver
Auf der Seite Status werden die folgenden Informationen zum Status des Protokolls auf dem Prinzipalserver entsprechend der angegebenen Zeit angezeigt:
Nicht gesendetes Protokoll
Menge der in der Sendewarteschlange wartenden Protokolldaten (in KB).
Älteste, nicht gesendete Transaktion
Alter der ältesten, nicht gesendeten Transaktion in der Sendewarteschlange. Aus dem Alter dieser Transaktion geht hervor, wie viele Minuten an Transaktionen noch nicht an die Spiegelserverinstanz gesendet wurden. Anhand dieses Werts lässt sich das Potenzial an Datenverlusten bezogen auf die Zeit ermitteln.
Zeit zum Senden des Protokolls (geschätzt)
Die geschätzte Anzahl von Minuten, die die Prinzipalserverinstanz benötigt, um das Protokoll, das sich derzeit in der Sendewarteschlange befindet, basierend auf der aktuellen Senderate an die Spiegelserverinstanz zu senden. Die zum Senden des Protokolls tatsächlich erforderliche Zeit wird von der Rate der eintreffenden Transaktionen beeinflusst, die erheblichen Schwankungen unterworfen sein kann. Anhand des Werts Zeit zum Senden des Protokolls (geschätzt) kann jedoch die für ein manuelles Failover erforderliche Zeit grob geschätzt werden.
Aktuelle Senderate
Rate, mit der Transaktionen an die Spiegelserverinstanz gesendet werden (in KB pro Sekunde).
Aktuelle Rate neuer Transaktionen
Rate, mit der eingehende Transaktionen in das Protokoll des Prinzipals eingetragen werden (in KB pro Sekunde). Sie können feststellen, ob die Spiegelung zurück liegt, gleich schnell ist oder aufholt, indem Sie diesen Wert mit dem Wert von Zeit zum Senden des Protokolls (geschätzt) vergleichen.
Protokoll auf dem Spiegelserver
Auf der Seite Status werden die folgenden Informationen zum Status des Protokolls auf dem Spiegelserver entsprechend der angegebenen Zeit angezeigt:
Nicht wiederhergestelltes Protokoll
Menge der in der Wiederholungswarteschlange wartenden Protokolldaten (in KB).
Zeit zum Wiederherstellen des Protokolls (geschätzt)
Die geschätzte Anzahl von Minuten, die erforderlich ist, um das Protokoll, das sich derzeit in der Wiederholungswarteschlange befindet, auf die Spiegeldatenbank anzuwenden.
Aktuelle Wiederherstellungsrate
Rate, mit der Transaktionen in der Spiegelserverinstanz wiederhergestellt werden (in KB pro Sekunde).
Spiegelungssitzung
Zusätzlich werden auf der Seite Status die folgenden Informationen zur Spiegelungssitzung angezeigt:
Spiegelungscommitaufwand
Durchschnittliche Verzögerung pro Transaktion in Millisekunden (nur im Modus für hohe Sicherheit relevant). Hierbei handelt es sich um die Verzögerung, die entsteht, während die Prinzipalserverinstanz darauf wartet, dass die Spiegelserverinstanz den Transaktionsprotokolldatensatz in die Wiederholungswarteschlange schreibt.
Zeit zum Senden und Wiederherstellen aller aktuellen Protokolle (geschätzt)
Geschätzte Zeit, die erforderlich ist, um das gesamte, noch nicht gesendete Protokoll, für das auf dem Prinzipal ein Commit ausgeführt wurde, zu senden, und um das gesamte Protokoll wiederherzustellen, das sich derzeit in der Wiederholungswarteschlange befindet. Der angegebene Zeitaufwand ist u. U. kleiner als die Summe der Werte in den Feldern Zeit zum Senden des Protokolls (geschätzt) und Zeit zum Wiederherstellen des Protokolls (geschätzt), da Sende- und Wiederherstellungsvorgänge parallel ausgeführt werden können.
Zeugenadresse
Netzwerkadresse der Zeugenserverinstanz. Informationen zum Format dieser Adresse finden Sie unter Angeben einer Server-Netzwerkadresse (Datenbankspiegelung).
Betriebsmodus
Der Betriebsmodus der Datenbank-Spiegelungssitzung:
Hohe Leistung (asynchron)
Hohe Sicherheit ohne automatisches Failover (synchron)
Hohe Sicherheit mit automatischem Failover (synchron)
Siehe auch