Freigeben über


MSSQL_ENG018752

Meldungsdetails

Produktname

SQL Server

Produktversion

10.0

Buildnummer des Produkts

 

Ereignis-ID

18752

Ereignisquelle

MSSQLSERVER

Komponente

SQL Server Database Engine (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 Anzeigen von Informationen und Ausführen von Aufgaben für die einer Veröffentlichung 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 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 oder Anhalten des SQL Server-Agent-Dienstes.

  • Führen Sie auf dem Verleger in der Veröffentlichungsdatenbank 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.

Siehe auch

Verweis

Replikationsprotokolllese-Agent

Konzepte

Fehler- und Ereignisreferenz (Replikation)