MSSQL_ENG018752
Details zur Fehlermeldung
Produktname |
SQL Server |
Produktversion |
9.0 |
Buildnummer des Produkts |
9.00.1399.60 |
Ereignis-ID |
18752 |
Ereignisquelle |
MSSQLSERVER |
Komponente |
SQL Server-Datenbankmodul |
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_replcmds oder sp_replshowcmds auszuführen. Die gespeicherten Prozeduren sp_repldone (Transact-SQL) und sp_replcmds (Transact-SQL) werden vom Protokolllese-Agent verwendet, um Informationen zu replizierten Transaktionen in einer veröffentlichten Datenbank zu finden und zu aktualisieren. Die gespeicherte sp_replshowcmds (Transact-SQL)-Prozedur wird für die Behandlung bestimmter Probleme einer Transaktionsreplikation verwendet.
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_replcmds oder 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_replcmds oder 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 Agentstatus und der Fehlerinformationen im Replikationsmonitor finden Sie unter Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einer Publikation zugeordneten Agents (Replikationsmonitor).
- Überprüfen Sie die Ausgabe von sp_who (Transact-SQL) für spezielle SPIDs, die mit der veröffentlichten Datenbank verbunden sind. Schließen Sie alle Verbindungen, mit denen sp_repldone, sp_replcmds oder sp_replshowcmds möglicherweise ausgeführt wurden.
- Starten Sie den Protokolllese-Agent neu. Weitere Informationen finden Sie unter Vorgehensweise: 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_replcmds oder 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 und Anhalten des SQL Server-Agent-Dienstes.
- Führen Sie auf dem Verleger in der Publikationsdatenbank sp_replflush (Transact-SQL) aus, und starten Sie den Protokolllese-Agent anschließend 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 finden Sie unter Replikations-Agents (Problembehandlung).
Siehe auch
Konzepte
Ursachen und Lösungen für Replikationsfehler