MSSQL_ENG018752

Gilt für:SQL ServerAzure SQL Managed Instance

Meldungsdetails

attribute Wert
Produktname SQL Server
Ereignis-ID 18752
Ereignisquelle MSSQLSERVER
Komponente SQL Server-Datenbank-Engine
Symbolischer Name
Meldungstext Nur jeweils ein Protokolllese-Agent oder eine protokollbezogene Prozedur (sp_repldone, sp_replcmds oder sp_replshowcmds) kann eine Verbindung mit einer Datenbank herstellen. Falls Sie eine protokollbezogene Prozedur ausgeführt haben, löschen Sie vor dem Starten des Protokolllese-Agents oder dem Ausführen einer weiteren protokollbezogenen Prozedur die Verbindung, über die sie ausgeführt wurde, oder führen Sie 'sp_replflush' über diese Verbindung aus.

Erklärung

Mehrere aktuelle Verbindungen versuchen, sp_repldone, sp_replcmdsoder sp_replshowcmdsauszuführen. Die gespeicherten Prozeduren sp_repldone (Transact-SQL) und sp_replcmds (Transact-SQL) sind gespeicherte Prozeduren, die vom Protokolllese-Agent zum Suchen und Aktualisieren von Informationen zu replizierten Transaktionen in einer veröffentlichten Datenbank verwendet werden. Die gespeicherte Prozedur sp_replshowcmds (Transact-SQL) wird verwendet, um bestimmte Arten von Problemen bei der Transaktionsreplikation zu beheben.

Dieser Fehler wird in folgenden Situationen ausgelöst:

  • Wenn der Protokolllese-Agent für eine veröffentlichte Datenbank ausgeführt und versucht wird, einen zweiten Protokolllese-Agent für dieselbe Datenbank auszuführen, wird der Fehler für den zweiten Agent ausgelöst und im Agentverlauf angezeigt.

    In einer Situation, in der offenbar mehrere Agents vorhanden sind, kann es sein, dass einer dieser Agents das Ergebnis eines verwaisten Prozesses ist.

  • Wenn der Protokolllese-Agent für eine veröffentlichte Datenbank gestartet wird und ein Benutzer sp_repldone, sp_replcmdsoder sp_replshowcmds für dieselbe Datenbank ausführt, wird der Fehler in der Anwendung ausgelöst, in der die gespeicherte Prozedur ausgeführt wurde (z. B. sqlcmd).

  • Wenn für eine veröffentlichte Datenbank kein Protokolllese-Agent ausgeführt wird und ein Benutzer sp_repldone, sp_replcmdsoder sp_replshowcmds ausführt, ohne anschließend die Verbindung zu schließen, über die die Prozedur ausgeführt wurde, wird der Fehler ausgelöst, wenn der Protokolllese-Agent versucht, eine Verbindung mit der Datenbank herzustellen.

Benutzeraktion

Folgende Schritte können Ihnen bei der Problembehandlung behilflich sein. Wenn der Protokolllese-Agent in einem beliebigen Schritt ohne Fehler gestartet werden kann, müssen die verbleibenden Schritte nicht mehr ausgeführt werden.

  • Überprüfen Sie den Verlauf des Protokolllese-Agents für alle anderen Fehler, die möglicherweise zu diesem Fehler beitragen. Informationen zum Anzeigen des Agent-Status und der Fehlerinformationen im Replikationsmonitor finden Sie unter View information and perform tasks using Replication Monitor (Anzeigen von Informationen und Ausführen von Aufgaben mit dem Replikationsmonitor).

  • Überprüfen Sie die Ausgabe von sp_who (Transact-SQL) auf bestimmte Prozessidentifikationsnummern (SPIDs), die mit der veröffentlichten Datenbank verbunden sind. Schließen Sie alle Verbindungen, mit denen sp_repldone, sp_replcmdsoder sp_replshowcmdsmöglicherweise ausgeführt wurden.

  • Starten Sie den Protokolllese-Agent neu. Weitere Informationen finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio).

  • Starten Sie den SQL Server Agent-Dienst auf dem Verteiler neu (schalten Sie ihn in einem Cluster offline oder online). Wenn die Möglichkeit besteht, dass sp_repldone, sp_replcmdsoder sp_replshowcmds durch einen geplanten Auftrag von einer anderen Instanz von SQL Server ausgeführt wurde, starten Sie den SQL Server -Agent für die betreffenden Instanzen ebenfalls neu. Weitere Informationen finden Sie unter Starten, Beenden oder Anhalten des SQL Server-Agent-Dienstes.

  • Führen Sie sp_replflush (Transact-SQL) auf dem Verleger in der Veröffentlichungsdatenbank aus, und starten Sie dann den Protokolllese-Agent neu.

  • Wenn der Fehler weiterhin auftritt, erhöhen Sie die Protokollierungsstufe des Agents, und geben Sie eine Ausgabedatei für das Protokoll an. Je nach Zusammenhang, in dem der Fehler auftritt, finden Sie hier möglicherweise die Schritte, die zum Fehler führen, und/oder weitere Fehlermeldungen.

Weitere Informationen

Fehler- und Ereignisreferenz (Replikation)
Replikationsprotokolllese-Agent