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.
Nachrichtendetails
| 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, eine der folgenden Aktionen auszuführen: sp_repldone, sp_replcmds oder sp_replshowcmds. Die gespeicherten Prozeduren sp_repldone (Transact-SQL) und sp_replcmds (Transact-SQL) sind gespeicherte Prozeduren, die vom Protokollleser-Agent verwendet werden, um Informationen zu replizierten Transaktionen in einer veröffentlichten Datenbank zu suchen und zu aktualisieren. Die gespeicherte Prozedur sp_replshowcmds (Transact-SQL) wird verwendet, um bestimmte Arten von Problemen mit der Transaktionsreplikation zu beheben.
Dieser Fehler wird unter folgenden Umständen ausgelöst:
Wenn der Protokolllese-Agent für eine veröffentlichte Datenbank ausgeführt wird und ein zweiter Protokolllese-Agent versucht, 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 es scheint, dass es mehrere Agents gibt, ist es möglich, dass einer von ihnen 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 kein Protokolllese-Agent für eine veröffentlichte Datenbank ausgeführt wird und ein Benutzer sp_repldone, sp_replcmds oder sp_replshowcmds ausführt und dann die Verbindung, über die die Prozedur ausgeführt wurde, nicht schließt, wird der Fehler ausgelöst, wenn der Protokollleser-Agent versucht, eine Verbindung mit der Datenbank herzustellen.
Benutzeraktion
Die folgenden Schritte können Ihnen bei der Problembehandlung helfen. Wenn ein Schritt es dem Protokollleser-Agent ermöglicht, ohne Fehler zu starten, müssen sie die verbleibenden Schritte nicht ausführen.
Überprüfen Sie den Verlauf des Protokolllese-Agents auf andere Fehler, die zu diesem Fehler beitragen könnten. Informationen zum Anzeigen von Agentstatus und Fehlerdetails im Replikationsmonitor finden Sie unter Anzeigen von Informationen und Ausführen von Aufgaben mithilfe des Replikationsmonitors.
Ü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, die diese Befehle sp_repldone, sp_replcmds oder sp_replshowcmds ausgeführt haben könnten.
Starten Sie den Protokollleser-Agent neu. Weitere Informationen finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio).
Starten Sie den SQL Server-Agent-Dienst neu (bringen Sie ihn offline oder online in einem Cluster) im Distributor. Wenn es die Möglichkeit gibt, dass ein geplanter Auftrag sp_repldone, sp_replcmds oder sp_replshowcmds von einer anderen SQL Server-Instanz ausgeführt haben könnte, starten Sie den SQL Server-Agent auch für diese Instanzen neu. Weitere Informationen finden Sie unter Starten, Stoppen oder Anhalten des SQL Server-Agent-Dienstes.
Führen Sie sp_replflush (Transact-SQL) in Publisher in der Publikationsdatenbank aus, und starten Sie dann den Protokollleser-Agent neu.
Wenn der Fehler weiterhin auftritt, erhöhen Sie die Protokollierung des Agents, und geben Sie eine Ausgabedatei für das Protokoll an. Je nach Kontext des Fehlers kann dies die Schritte bereitstellen, die zum Fehler und/oder zu weiteren Fehlermeldungen führen.
Siehe auch
Referenz für Fehler und Ereignisse (Replikation)
Replikationsprotokolllese-Agent