Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Managed Instance
Der Replikationsmonitor ist ein grafisches Tool, mit dem Sie eine Replikationstopologie überwachen können. Mithilfe von gespeicherten Transact-SQL-Replikationsprozeduren oder Replikationsverwaltungsobjekten (RMO) können Sie programmgesteuert auf diese Überwachungsdaten zugreifen. Diese Objekte ermöglichen das Programmieren der folgenden Tasks:
Überwachen des Status von Verlegern, Veröffentlichungen und Abonnements.
Sitzungen des Merge-Agents auf einem oder mehreren Abonnenten überwachen.
Überwachen von Transaktionsbefehlen, die darauf warten, auf mindestens einem Abonnenten angewendet zu werden.
Definieren von Schwellenwertmetriken, um bestimmen zu können, wann eine Veröffentlichung einen Eingriff erfordert.
Überwachen Sie den Status von Tracer-Token.
Transact-SQL
Überwachen von Publishern, Publikationen und Abonnements im Distributor
Führen Sie in der Verteilungsdatenbank auf dem Verteiler sp_replmonitorhelppublisher aus. Dadurch werden Überwachungsinformationen zu allen Verlegern zurückgegeben, die diesen Verteiler verwenden. Um das Resultset auf nur einen Verleger zu beschränken, geben Sie @publisheran.
Führen Sie beim Verteiler in der Verteilungsdatenbank sp_replmonitorhelppublication aus. Dadurch werden Überwachungsinformationen zu allen Veröffentlichungen zurückgegeben, die diesen Verteiler verwenden. Um das Resultset auf nur einen Verleger, eine Veröffentlichung oder eine veröffentlichte Datenbank zu beschränken, geben Sie @publisher, @publicationbzw. @publisher_dban.
Führen Sie auf dem Verteiler in der Verteilungsdatenbank sp_replmonitorhelpsubscription aus. Dadurch werden Überwachungsinformationen zu allen Abonnements zurückgegeben, die diesen Verteiler verwenden. Um das Resultset auf Abonnements zu beschränken, die nur zu einem Verleger, einer Veröffentlichung oder einer veröffentlichten Datenbank gehören, geben Sie @publisher, @publicationbzw. @publisher_dban.
Überwachen von Transaktionsbefehlen, die darauf warten, beim Abonnenten angewendet zu werden
- Führen Sie in der Verteilerdatenbank auf dem Verteiler sp_replmonitorsubscriptionpendingcmds aus. Dies gibt Überwachungsinformationen für alle ausstehenden Befehle aller Abonnements zurück, die diesen Distributor verwenden. Um die Ergebnismenge auf ausstehende Befehle für Abonnements zu beschränken, die zu genau einem Publisher, Subscriber, einer Publikation oder einer Publisherdatenbank gehören, geben Sie entsprechend @publisher, @subscriber, @publication bzw. @publisher_db an.
Zum Überwachen von Änderungen bei Zusammenführungen, die hoch- oder heruntergeladen werden sollen
Führen Sie auf dem Publisher in der Veröffentlichungsdatenbank sp_showpendingchanges aus. Dies gibt eine Ergebnismenge zurück, die Informationen zu Änderungen enthält, die noch auf die Replikation an Abonnenten warten. Um die Ergebnismenge auf Änderungen zu beschränken, die zu genau einer Veröffentlichung bzw. einem Artikel gehören, geben Sie @publication bzw. @article an.
Führen Sie beim Abonnenten in der Abonnementdatenbank sp_showpendingchanges aus. Dies gibt eine Ergebnismenge zurück, die Informationen zu Änderungen enthält, die darauf warten, an den Publisher repliziert zu werden. Um die Ergebnismenge auf Änderungen zu beschränken, die zu einer einzelnen Veröffentlichung oder einem einzelnen Artikel gehören, geben Sie jeweils @publication oder @article an.
Sitzungen des Merge-Agents überwachen
Führen Sie auf dem Verteiler in der Verteilungsdatenbank sp_replmonitorhelpmergesession aus. Hiermit werden Überwachungsinformationen, einschließlich Session_id, zu allen Merge-Agent-Sitzungen für alle Abonnements zurückgegeben, die diesen Verteiler verwenden. Sie können Session_id auch ermitteln, indem Sie eine Abfrage der MSmerge_sessions -Systemtabelle ausführen.
Führen Sie auf dem Verteiler in der Verteilungsdatenbank sp_replmonitorhelpmergesessiondetail aus. Geben Sie einen Wert Session_id aus Schritt 1 für @session_idan. Dadurch werden ausführliche Überwachungsinformationen zu der Sitzung angezeigt.
Wiederholen Sie Schritt 2 für jede Sitzung, die von Interesse ist.
So überwachen Sie Sitzungen des Merge-Agents für Pullabonnements des Abonnenten
Führen Sie beim Abonnenten in der Abonnementdatenbank sp_replmonitorhelpmergesession aus. Geben Sie für ein bestimmtes Abonnement @publisher, @publicationund den Namen der Veröffentlichungsdatenbank für @publisher_dban. Hiermit werden Überwachungsinformationen für die letzten fünf Sitzungen des Merge-Agents für dieses Abonnement zurückgegeben. Beachten Sie im Resultset den Wert Session_id für Sitzungen, die von Interesse sind.
Führen Sie beim Abonnenten in der Abonnementdatenbank sp_replmonitorhelpmergesessiondetail aus. Geben Sie einen Wert Session_id aus Schritt 1 für @session_idan. Dadurch werden ausführliche Überwachungsinformationen zu der Sitzung angezeigt.
Wiederholen Sie Schritt 2 für jede Sitzung, die von Interesse ist.
Anzeigen und Ändern der Überwachungsschwellenwerte für eine Veröffentlichung
Führen Sie beim Verteiler in der Verteilungsdatenbank sp_replmonitorhelppublicationthresholds aus. Dadurch werden Überwachungsschwellenwerte zurückgegeben, die für alle Veröffentlichungen festgelegt wurden, die diesen Verteiler verwenden. Um das Resultset auf Monitorschwellenwerte für Publikationen zu beschränken, die zu genau einem Publisher, einer Publikationsdatenbank oder genau einer Publikation gehören, geben Sie jeweils @publisher, @publisher_db bzw. @publication an. Beachten Sie den Wert Metric_id für alle Schwellenwerte, die geändert werden müssen. Weitere Informationen finden Sie unter Schwellenwerte und Warnungen im Replikationsmonitor festlegen.
Führen Sie auf dem Verteiler in der Verteilerdatenbank sp_replmonitorchangepublicationthreshold aus. Geben Sie bei Bedarf Folgendes an:
Den in Schritt 1 ermittelten Metric_id -Wert für @metric_id.
Einen neuen Wert für die Metrik für den Überwachungsschwellenwert für @value.
Einen Wert 1 für @shouldalert für eine Warnung, die protokolliert wird, wenn dieser Schwellenwert erreicht wird, oder einen Wert 0 , wenn keine Warnung erforderlich ist.
Der Wert 1 für @mode , um die Schwellenwertmetrik für die Überwachung zu aktivieren, oder der Wert 2 , um diese zu deaktivieren.
Replikationsverwaltungsobjekte (RMO)
Ein Abonnement einer Mergeveröffentlichung beim Abonnenten überwachen
Erstellen Sie eine Verbindung mit dem Abonnenten, indem Sie die ServerConnection -Klasse verwenden.
Erstellen Sie eine Instanz der MergeSubscriberMonitor -Klasse, und legen Sie die Eigenschaften Publisher, Publication, PublisherDBund SubscriberDB für das Abonnement fest, und legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte ServerConnection fest.
Rufen Sie eine der folgenden Methoden auf, um Informationen zu den Sitzungen des Merge-Agents für dieses Abonnement abzurufen:
GetSessionsSummary - gibt ein Array von MergeSessionSummary-Objekten mit Informationen zu bis zu den letzten fünf Sitzungen des Merge-Agents zurück. Beachten Sie den SessionId -Wert für alle Sitzungen, die von Interesse sind.
GetSessionsSummary – gibt ein Array von MergeSessionSummary-Objekten mit Informationen zu Merge-Agent-Sitzungen zurück, die in der Anzahl der vergangenen Stunden aufgetreten sind, die als Parameter hours übergeben wurde (bis zu den letzten fünf Sitzungen). Beachten Sie den SessionId -Wert für alle Sitzungen, die von Interesse sind.
GetLastSessionSummary - gibt ein MergeSessionSummary-Objekt mit Informationen zur letzten Sitzung des Merge-Agents zurück. Beachten Sie den SessionId -Wert für diese Sitzung.
GetSessionsSummaryDataSet - gibt ein DataSet -Objekt mit Informationen zu maximal den letzten fünf Merge-Agentsitzungen zurück (eine pro Zeile). Beachten Sie den Wert der Session_id -Spalte für alle Sitzungen, die von Interesse sind.
GetLastSessionSummaryDataRow – gibt ein DataRow-Objekt mit Informationen zur letzten Sitzung des Merge-Agents zurück. Beachten Sie den Wert der Session_id -Spalte für diese Sitzung.
(Optional) Rufen Sie RefreshSessionSummary auf, um die Daten für das MergeSessionSummary-Objekt zu aktualisieren, das als mss, übergeben wurde, oder rufen Sie RefreshSessionSummary auf, um die Daten im DataRow-Objekt zu aktualisieren, das als drRefresh übergeben wurde.
Rufen Sie mithilfe der in Schritt 3 abgerufenen Sitzungs-ID eine der folgenden Methoden auf, um Informationen zu den Details einer bestimmten Sitzung zurückzugeben:
GetSessionDetails - gibt ein Array von MergeSessionDetail -Objekten für die angegebene SessionIdaus.
GetSessionDetailsDataSet - gibt ein DataSet -Objekt mit Informationen für die angegebene SessionIdaus.
Replikationseigenschaften für alle Publikationen bei einem Verteiler überwachen
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Erstellen Sie eine Instanz der ReplicationMonitor-Klasse.
Setzen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte ServerConnection.
Rufen Sie die LoadProperties -Methode auf, um die Eigenschaften des Objekts abzurufen.
Führen Sie mindestens eine der folgenden Methoden aus, um Replikationsinformationen für alle Verleger zurückzugeben, die diesen Verteiler verwenden:
EnumDistributionAgents - gibt ein DataSet -Objekt zurück, das Informationen zu allen Verteilungs-Agents auf diesem Verteiler enthält.
EnumErrorRecords - gibt ein DataSet -Objekt zurück, das Informationen zu auf dem Verteiler gespeicherten Fehlern enthält.
EnumLogReaderAgents - gibt ein DataSet -Objekt zurück, das Informationen zu allen Protokolllese-Agents auf dem Verteiler enthält.
EnumMergeAgents – gibt ein DataSet-Objekt zurück, das Informationen über alle Merge Agents auf dem Verteiler enthält.
EnumMiscellaneousAgents - gibt ein DataSet -Objekt zurück, das Informationen zu allen anderen Replikations-Agents auf dem Verteiler enthält.
EnumPublishers - gibt ein DataSet -Objekt zurück, das Informationen zu allen Verlegern auf diesem Verteiler enthält.
EnumPublishers2 - gibt ein DataSet -Objekt zurück, das die Verleger zurückgibt, von denen dieser Verteiler verwendet wird.
EnumQueueReaderAgents – gibt ein DataSet-Objekt zurück, das Informationen über alle Queue Reader-Agents beim Verteiler enthält.
EnumQueueReaderAgentSessionDetails - gibt ein DataSet -Objekt zurück, das Details zu dem angegebenen Warteschlangenlese-Agent und der angegebenen Sitzung enthält.
EnumQueueReaderAgentSessions - gibt ein DataSet -Objekt zurück, das Sitzungsinformationen zu dem angegebenen Warteschlangenlese-Agent enthält.
EnumSnapshotAgents - gibt ein DataSet-Objekt zurück, das Informationen über alle Momentaufnahme-Agenten beim Verteiler enthält.
Publikationseigenschaften für einen bestimmten Herausgeber beim Distributor überwachen
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Rufen Sie ein PublisherMonitor-Objekt auf eine der folgenden Arten ab.
Erstellen Sie eine Instanz der PublisherMonitor-Klasse. Legen Sie die Name -Eigenschaft für den Verleger fest, und legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte ServerConnection fest. Rufen Sie die LoadProperties -Methode auf, um die Eigenschaften des Objekts abzurufen. Wenn diese Methode falsezurückgibt, ist der Verlegername falsch definiert, oder die Veröffentlichung ist nicht vorhanden.
Aus der PublisherMonitorCollection, auf die über die PublisherMonitors-Eigenschaft eines vorhandenen ReplicationMonitor-Objekts zugegriffen wird.
Führen Sie mindestens eine der folgenden Methoden aus, um Replikationsinformationen für alle Veröffentlichungen zurückzugeben, die zu diesem Verleger gehören.
EnumDistributionAgentSessionDetails - gibt ein DataSet -Objekt zurück, das Details zu dem angegebenen Verteilungs-Agent und der angegebenen Sitzung enthält.
EnumDistributionAgentSessions - gibt ein DataSet -Objekt zurück, das Sitzungsinformationen zu dem angegebenen Verteilungs-Agent enthält.
EnumErrorRecords - gibt ein DataSet -Objekt zurück, das Fehlereintragsinformationen zu dem angegebenen Fehler enthält.
EnumLogReaderAgentSessionDetails - gibt ein DataSet -Objekt zurück, das Details für den angegebenen Protokolllese-Agent und die angegebene Sitzung enthält.
EnumLogReaderAgentSessions - gibt ein DataSet -Objekt zurück, das Sitzungsinformationen für den angegebenen Protokolllese-Agent enthält.
EnumMergeAgentSessionDetails - gibt ein DataSet -Objekt zurück, das Details zu dem angegebenen Merge-Agent und der angegebenen Sitzung enthält.
EnumMergeAgentSessionDetails2 - gibt ein DataSet -Objekt zurück, das zusätzliche Details zu dem angegebenen Merge-Agent und der angegebenen Sitzung enthält.
EnumMergeAgentSessions - gibt ein DataSet -Objekt zurück, das Sitzungsinformationen für den angegebenen Merge-Agent enthält.
EnumMergeAgentSessions2 - gibt ein DataSet -Objekt zurück, das zusätzliche Sitzungsinformationen für den angegebenen Merge-Agent enthält.
EnumPublications - gibt ein DataSet -Objekt zurück, das Informationen zu allen Veröffentlichungen auf diesem Verteiler enthält.
EnumPublications2 - gibt ein DataSet-Objekt zurück, das zusätzliche Informationen zu allen Veröffentlichungen bei diesem Distributor enthält.
EnumSnapshotAgentSessionDetails - gibt ein DataSet -Objekt zurück, das Details zu dem angegebenen Momentaufnahme-Agent und der angegebenen Sitzung enthält.
EnumSnapshotAgentSessions - gibt ein DataSet -Objekt zurück, das Sitzungsinformationen für den angegebenen Momentaufnahme-Agent enthält.
EnumSubscriptions – gibt ein DataSet-Objekt zurück, das Informationen zu allen Abonnements von Veröffentlichungen bei diesem Distributor enthält.
Eigenschaften für eine bestimmte Publikation beim Distributor überwachen
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Rufen Sie ein PublicationMonitor-Objekt auf eine der folgenden Arten ab.
Erstellen Sie eine Instanz der PublicationMonitor-Klasse. Legen Sie die Eigenschaften DistributionDBName, PublisherName, PublicationDBNameund Name für die Veröffentlichung fest, und legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte ServerConnection fest. Rufen Sie die LoadProperties -Methode auf, um die Eigenschaften des Objekts abzurufen. Wenn diese Methode falsezurückgibt, sind die Veröffentlichungseigenschaften falsch definiert, oder die Veröffentlichung ist nicht vorhanden.
Aus der PublicationMonitorCollection, auf die über die PublicationMonitors-Eigenschaft eines vorhandenen PublisherMonitor-Objekts zugegriffen wird.
Führen Sie mindestens eine der folgenden Methoden aus, um Informationen zu dieser Veröffentlichung zurückzugeben.
EnumErrorRecords - gibt ein DataSet -Objekt zurück, das Fehlereinträge zu dem angegebenen Fehler enthält.
EnumLogReaderAgent - gibt ein DataSet-Objekt zurück, das Informationen über den Log Reader-Agent für diese Veröffentlichung enthält.
EnumMonitorThresholds – gibt ein DataSet-Objekt zurück, das Informationen über die für diese Veröffentlichung festgelegten Warnschwellenwerte für den Monitor enthält.
EnumQueueReaderAgent - gibt ein DataSet -Objekt zurück, das Informationen zu dem von dieser Veröffentlichung verwendeten Warteschlangenlese-Agent enthält.
EnumSnapshotAgent - gibt ein DataSet -Objekt zurück, das Informationen zu dem Momentaufnahme-Agent für diese Veröffentlichung enthält.
EnumSubscriptions - gibt ein DataSet -Objekt zurück, das Informationen zu Abonnements für diese Veröffentlichung enthält.
EnumSubscriptions2 - gibt ein DataSet -Objekt zurück, das basierend auf der angegebenen SubscriptionResultOptionzusätzliche Informationen zu Abonnements für diese Veröffentlichung enthält.
EnumTracerTokenHistory - gibt ein DataSet -Objekt zurück, das Latenzzeitinformationen für das angegebene Überwachungstoken enthält.
EnumTracerTokens – gibt ein DataSet-Objekt zurück, das Informationen über alle in diese Veröffentlichung eingefügten Tracer-Token enthält.
So überwachen Sie Transaktionsbefehle, die darauf warten, beim Abonnenten angewendet zu werden
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Beziehen Sie ein PublicationMonitor-Objekt auf eine der folgenden Arten.
Erstellen Sie eine Instanz der PublicationMonitor-Klasse. Legen Sie die Eigenschaften DistributionDBName, PublisherName, PublicationDBNameund Name für die Veröffentlichung fest, und legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte ServerConnection fest. Rufen Sie die LoadProperties -Methode auf, um die Eigenschaften des Objekts abzurufen. Wenn diese Methode falsezurückgibt, sind die Veröffentlichungseigenschaften falsch definiert, oder die Veröffentlichung ist nicht vorhanden.
Von der PublicationMonitorCollection, auf die über die PublicationMonitors-Eigenschaft eines vorhandenen PublisherMonitor-Objekts zugegriffen wird.
Führen Sie die TransPendingCommandInfo -Methode aus, die ein PendingCommandInfo -Objekt zurückgibt.
Verwenden Sie die Eigenschaften dieses PendingCommandInfo -Objekts, um die geschätzte Anzahl von ausstehenden Befehlen und die Dauer für das Abschließen der Übermittlung dieser Befehle zu bestimmen.
So legen Sie die Warnschwellen für die Überwachung einer Veröffentlichung fest
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Beziehen Sie ein PublicationMonitor-Objekt auf eine der folgenden Arten.
Erstellen Sie eine Instanz der PublicationMonitor-Klasse. Legen Sie die Eigenschaften DistributionDBName, PublisherName, PublicationDBNameund Name für die Veröffentlichung fest, und legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte ServerConnection fest. Rufen Sie die LoadProperties -Methode auf, um die Eigenschaften des Objekts abzurufen. Wenn diese Methode falsezurückgibt, sind die Veröffentlichungseigenschaften falsch definiert, oder die Veröffentlichung ist nicht vorhanden.
Von der PublicationMonitorCollection, auf die über die PublicationMonitors-Eigenschaft eines vorhandenen PublisherMonitor-Objekts zugegriffen wird.
Führen Sie die EnumMonitorThresholds -Methode aus. Beachten Sie die aktuellen Einstellungen für die Schwellenwerte in dem zurückgegebenen ArrayList von MonitorThreshold-Objekten.
Führen Sie die ChangeMonitorThreshold -Methode aus. Übergeben Sie die folgenden Parameter:
metricID - ein Int32 -Wert, der die Schwellenwertmetrik für die Überwachung aus der folgenden Tabelle darstellt:
Wert Beschreibung 1 expiration - überwacht den bevorstehenden Ablauf von Abonnements für Transaktionspublikationen. 2 latency - überwacht die Leistung von Abonnements für transaktionale Veröffentlichungen. 4 mergeexpiration - überwacht den bevorstehenden Ablauf von Abonnements für Mergeveröffentlichungen. 5 mergeslowrunduration - überwacht die Dauer von Mergesynchronisierungen über Verbindungen mit niedriger Bandbreite (DFÜ-Verbindungen). 6 mergefastrunduration - überwacht die Dauer von Merge-Synchronisierungen bei Verbindungen mit hoher Bandbreite (LAN-Verbindungen). 7 mergefastrunspeed - Überwachung der Synchronisierungsgeschwindigkeit von Mergesynchronisierungen über Verbindungen mit hoher Bandbreite (LAN-Verbindungen). 8 mergeslowrunspeed – überwacht die Synchronisierungsgeschwindigkeit von Mergesynchronisierungen über Verbindungen mit geringer Bandbreite (DFÜ-Verbindungen). enable - Boolean -Wert, der angibt, ob die Metrik für die Veröffentlichung aktiviert ist.
thresholdValue - ganzzahliger Wert, der den Schwellenwert festlegt.
shouldAlert - ganze Zahl, die angibt, ob dieser Schwellenwert eine Warnung generieren soll.