Share via


Beheben von Fehler 3313, 3314, 3414 oder 3456 (SQL Server)

Durch einen Fehler beim Rückgängigmachen oder während eines Wiederholungs- oder Wiederherstellungsvorgangs für eine SQL Server-Datenbank wird die Datenbank in den SUSPECT-Status geschaltet. Hierzu zählen die Fehler 3313 (Fehler beim Wiederholen eines protokollierten Vorgangs), 3314 (Fehler beim Rückgängigmachen eines protokollierten Vorgangs), 3414 (Wiederherstellungsfehler, der den Neustart der Datenbank verhindert) und Fehler 3456 (Fehler beim Wiederholen einer protokollierten Transaktion).

Erklärung

Durch einen Fehler beim Wiederholen, Rückgängigmachen oder Wiederherstellen wird die Datenbank in den SUSPECT-Status geschaltet, da die primäre Dateigruppe und möglicherweise weitere Dateigruppen fehlerverdächtig sind und beschädigt sein können. Die Datenbank ist nicht verfügbar, und es ist eine Benutzeraktion erforderlich, um das Problem zu beheben.

HinweisHinweis

Falls dieser Fehler für tempdb auftritt, wird die SQL Server-Instanz heruntergefahren.

Benutzeraktion

Ein Fehler beim Wiederholen, Rückgängigmachen oder Wiederherstellen kann durch eine vorübergehende Bedingung oder einen dauerhaften Fehler verursacht werden, der bei jedem Versuch, die Datenbank zu starten, auftritt.

Um Informationen zur Ursache eines bestimmten Auftretens von Fehler 3313, 3314, 3414 oder 3456 zu erhalten, überprüfen Sie das Windows-Ereignisprotokoll auf einen vorangehenden Fehler, der Aufschluss über den aktuellen Fehler geben könnte. Die entsprechenden Benutzeraktionen hängen davon ab, ob die Informationen im Windows-Ereignisprotokoll angeben, dass der SQL Server-Fehler durch eine vorübergehende Bedingung oder einen dauerhaften Fehler verursacht wurde.

HinweisHinweis

Bei Auftreten eines entsprechenden Fehlerzustands generiert SQL Server in der Regel drei Dateien im Ordner LOG von SQL Server. Die Datei SQLDumpnnnn.txt enthält weiterführende Diagnoseinformationen zu den Fehlern, einschließlich Details zur Transaktion und zur Seite, auf der das Problem aufgetreten ist. Diese Informationen werden in der Regel vom Produktsupportteam genutzt, um die Fehlerursache zu analysieren.

Vorübergehendes Problem:

  1. Versuchen Sie, die Datenbank durch Ausführen der folgenden ALTER DATABASETransact-SQL-Anweisung online zu schalten:

    ALTER DATABASE <database name> SET ONLINE;
    
  2. Um festzustellen, ob die Wiederherstellung erfolgreich abgeschlossen und die Datenbank wieder online geschaltet wurde, überprüfen Sie das SQL Server-Fehlerprotokoll sowie die sys.databases-Katalogsicht.

  3. Wenn die Datenbank online ist, überprüfen Sie diese mithilfe der DBCC CHECKDBTransact-SQL-Anweisung auf ihre Konsistenz.

Dauerhafter Fehler:

Suchen Sie im SQL Server-Fehlerprotokoll den Fehler, den Sie beheben (3313, 3314, 3414 oder 3456), und überprüfen Sie die Meldungen, die ihm vorausgehen, um zu ermitteln, ob er manuell behoben werden kann. Falls die vorher aufgetretenen Fehler behoben werden können, führen Sie eines der folgenden Verfahren aus:

  • Wiederherstellen und Überprüfen der Datenbank auf folgende Weise (empfohlenes Verfahren):

    1. Versuchen Sie, eine Sicherung des Protokollfragments auszuführen.

    2. Stellen Sie die Datenbank mithilfe der Transact-SQL-Anweisung RESTORE …WITH NORECOVERY von einer vollständigen Datenbanksicherung und einer nachfolgenden (optionalen) differenziellen Datenbanksicherung wieder her.

    3. Wenn die Datenbank das vollständige Wiederherstellungsmodell verwendet, wenden Sie mithilfe von RESTORE LOG … WITH NORECOVERY alle Transaktionsprotokollsicherungen an, die nach der vollständigen oder differenziellen Sicherung bis zum Zeitpunkt des Fehlers ausgeführt wurden.

    4. Wenn Sie die Datenbank möglichst zeitnah zum Fehlerzeitpunkt wiederhergestellt haben, stellen Sie die Datenbank mit RESTORE DATABASE <database_name> WITH RECOVERY wieder her.

    5. Nachdem die Datenbank online geschaltet wurde, überprüfen Sie sie mithilfe der Transact-SQL-Anweisung DBCC CHECKDB auf ihre Konsistenz.

  • Versuchen Sie, die Datenbank mit den Schritten, die weiter oben in diesem Abschnitt für ein vorübergehendes Problem beschrieben wurden, wieder online zu schalten.

  • Verwenden Sie den Notfallmodus wie folgt:

    1. Versetzen Sie die Datenbank mit der folgenden Transact-SQL-Anweisung ALTER DATABASE in den EMERGENCY-Status:

      ALTER DATABASE <database_name> SET EMERGENCY; 
      
    2. Überprüfen Sie die Ausgabe der ALTER DATABASE-Anweisung und des SQL Server-Fehlerprotokolls.

    3. Überprüfen Sie den Status der Datenbank in der sys.databases-Katalogsicht.

    4. Führen Sie mit der DBCC CHECKDB-Anweisung eine Konsistenzüberprüfung für die Datenbank aus, um Ursache und Ausmaß der Beschädigung einzuschätzen.

    5. Nachdem Sie die Ausgabe von DBCC CHECKDB ausgewertet haben, können Sie DBCC CHECKDB zusätzlich mit der REPAIR_ALLOW_DATA_LOSS-Option ausführen.

      VorsichtshinweisVorsicht

      Vor Verwendung der Option sollten Sie sich im Thema DBCC CHECKDB (Transact-SQL) der SQL Server-Onlinedokumentation eingehend über das Beheben von Fehlern im Datenbank-Notfallmodus informieren.

HinweisHinweis

Informationen zum Behandeln von Hardwareproblemen in Zusammenhang mit Fehler 3313, 3314, 3414 oder 3456 finden Sie unter MSSQLSERVER_824.

So kann dieser Fehler vermieden werden

Um zu vermeiden, dass diese Situation erneut auftritt, gehen Sie wie folgt vor:

  1. Überprüfen Sie das SQL Server-Fehlerprotokoll und die Windows-Ereignisprotokolle auf systemweite Probleme, die zu diesem Fehler beitragen können.

  2. Um bekannte Probleme im Zusammenhang mit dem Produkt auszuschließen, die zu dieser Bedingung führen, wenden Sie das neueste kumulative Update auf Ihre SQL Server-Version an.