DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 828339 - Geändert am: Dienstag, 5. Juni 2007 - Version: 2.1

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
828339  (http://support.microsoft.com/kb/828339/EN-US/ ) Error message 823 may indicate hardware problems or system problems in SQL Server
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Auf dieser Seite

Problembeschreibung

Wenn Ihnen die folgende Fehlermeldung angezeigt wird, kann dies darauf hinweisen, dass Microsoft SQL Server 2000 Hardware- oder Systemprobleme festgestellt hat, beim Versuch aus Datenbankdateien zu lesen oder in diese zu schreiben.
Fehler 823
E/A-Fehler <Fehler> ist während <Vorgang> bei Offset <Offset> in Datei '<Datei>' aufgetreten.
Hinweis: Das Format der Fehlermeldung unterscheidet sich leicht in Microsoft SQL Server 2005 und Microsoft SQL Server 7.0. Trotzdem sind auf SQL Server 2005 und SQL Server 7.0 die gleichen Konzepte und Argumentationspunkte anwendbar.

Weitere Informationen zu den einzelnen Teilen der Nachricht, beispielsweise <Fehler> und <Vorgang>, sowie Informationen zur Verwendung von Microsoft Windows API-Abfragen durch SQL Server 2000, finden Sie im Abschnitt "Weitere Informationen".

Lösung

SQL Server 2000 meldet den im Abschnitt "Problembeschreibung" dieses Artikels genannten Fehler, wenn die folgenden Bedingungen zutreffen:
  • Betriebssystemfehler: Ein Windows API-Leseaufruf oder Windows API-Schreibaufruf ist nicht erfolgreich, und SQL Server stößt auf einen Betriebssystemfehler, der in Zusammenhang mit der Windows API-Abfrage steht. Die folgende Fehlermeldung ist ein Beispiel für einen Fehler 823 eines Betriebssystems.
    2003-07-28 09:01:27.38 spid75 Fehler: 823, Schweregrad: 24,
    Status: 2
    28.07.2003 09:01:27.38 spid75 E/A-Fehler 1117 (Die Anforderung konnte wegen eines E/A-Gerätefehlers nicht ausgeführt werden.) ist beim Lesen von Offset 0x0000002d460000 in Datei 'e:\Programme\Microsoft SQL Server\mssql\data\mydb.MDF' aufgetreten.
    Abgesehen vom Betriebssystemfehler 6 (Das Handle ist ungültig) stehen berichtete Betriebssystemfehler meist in Zusammenhang mit zugrundeliegenden System- oder Hardwareproblemen. Wenn ein Betriebssystemfehler auftritt, selbst wenn die Anweisung "DBCC CHECKDB" kein Problem meldet, müssen Sie eventuell mit dem Hardwarehersteller, dem Systemadministrator oder Microsoft Product Support Services zusammenarbeiten, um dieses Problem zu beheben.

    Hinweis: Möglicherweise werden Sie keine Fehler aus der DBCC CHECKDB-Anweisung für die Datenbank erhalten, die mit der Datei in der Fehlermeldung verknüpft sind. Sie können die DBCC CHECKDB-Anweisung ausführen, wenn Sie einen Fehler 823 sehen. Wenn die DBCC CHECKDB-Anweisung keine Fehler meldet, besteht wahrscheinlich ein zeitweiliges Systemproblem oder ein Laufwerkproblem.
  • E/A logischer Überprüfungsfehler: Wenn ein Windows API-Leseaufruf oder Windows API-Schreibaufruf für die Datenbank erfolgreich ist, aber bestimmte logische Überprüfungen der Daten nicht (eine abgerissene Seite zum Beispiel), wird ein Fehler 823 gemeldet. Die folgende Fehlermeldung ist ein Beispiel eines Fehlers 823 für einen logischen E/A-Überprüfungsfehler.
    2003-09-05 16:51:18.90 spid17 Fehler: 823, Schweregrad: 24,
    Status: 2
    2003-09-05 16:51:18.90 spid17 E/A-Fehler (Abgerissene Seite) ist beim Lesen von Offset 0x00000094004000 in Datei 'F:\SQLData\mydb.MDF' aufgetreten ...
    Um dieses Problem zu beheben, führen Sie als erstes die Anweisung "DBCC CHECKDB" auf der Datenbank aus, die mit der Datei in der Fehlermeldung verknüpft ist. Wenn die Anweisung "DBCC CHECKDB" Fehler meldet, korrigieren Sie diese Fehler, bevor Sie das Problem beheben. Wenn das Problem weiterhin besteht, auch nachdem Sie die "DBCC CHECKDB"-Fehler behoben haben, oder die Anweisung "DBCC CHECKDB" keine Fehler meldet, überprüfen Sie das Systemereignisprotokoll von Windows NT auf Systemfehler oder Fehler in Zusammenhang mit den Festplatten. Sie können sich auch mit Ihrem Hardwareverkäufer in Verbindung setzen, um entsprechende Diagnosen durchzuführen.

Weitere Informationen

Fehlermeldungs-Details

Die Einzelteile der folgenden Fehlermeldung 823 werden hier detaillierter beschrieben:
Fehler 823
E/A-Fehler <Fehler> ist während <Vorgang> bei Offset <Offset> in Datei '<Datei>' aufgetreten.
Die Informationen der Fehlermeldung 823 können detaillierter beschrieben werden:
  • <Fehler>: Dies kann ein Betriebssystemfehler oder ein logischer E/A-Überprüfungsfehler sein. Bei einem Betriebssystemfehler folgt der Betriebssystemfehlernummer "E/A-Fehler". Der Text des Betriebssystemfehlers wird in Klammern nach "E/A-Fehler Fehlernummer" dargestellt.

    Bei einem logischen E/A-Überprüfungsfehler befindet sich die Fehlermeldung in Klammern und kann eine der folgenden sein:
    • (abgerissene Seite): Weitere Informationen zu korrupten Seiten finden Sie in der SQL Server 2000-Onlinedokumentation.
    • (falsche Seiten-ID): Diese Nachricht bedeutet, dass die Seiten-ID in der Kopfzeile nicht die erwartete Seite ist, die von der Festplatte gelesen wurde. Beispiel: Wenn SQL Server 2000 einen Datei-Offset für Datenbankdatei 1 liefert, der für die logische Seite 100 ist, sollte die Seiten-ID auf der Kopfzeile für diese Seite mit 8 KB 1:100 lauten. Wenn nicht, ist die falsche Seiten-ID in der logischen E/A-Überprüfungsfehlermeldung enthalten.
    • (Nicht genügend Bytes übertragen): Dieses Problem gibt an, dass der Windows API-Leseaufruf erfolgreich war, aber die übertragenen Bytes nicht die erwarteten waren.
  • <Operation>: Dies bezieht sich entweder auf Lesen oder Schreiben.
  • <Offset>: Dies ist das physikalische Byte-Offset vom Beginn der Datei. Wenn Sie diese Zahl durch 8192 teilen, erhalten Sie die logische Seitenzahl, die von diesem Fehler betroffen ist.
  • <Datei>: Dies ist die Datei, die mit dem E/A-Problem verknüpft ist. Diese enthält den kompletten physischen Pfad.

SQL Server E/A und Windows API

SQL Server 2000 verwendet standardmäßige Windows-API-Schreibaufrufe wie ReadFile, ReadFileScatter, WriteFile, und WriteFileGather, um E/A mit seinen Datenbankdateien durchzuführen. Wenn SQL Server 2000 Windows API-Schreibaufrufe verwendet, ist die Datei bereits erfolgreich geöffnet worden, ansonsten würde SQL Server 2000 nicht versuchen, daraus zu lesen oder zu schreiben. Wenn daher ein Windows API-Schreibaufruf nicht erfolgreich ist, und der Fehler ein anderer als der Betriebssystemfehler 6 ist ("Ungültiges Handle") ist, wird der Fehler wahrscheinlich in Windows oder einer Softwarekomponente niedrigerer Ebene gemeldet, wie beispielsweise einem Gerätetreiber. Da der Betriebssystemfehler 6 ein ungültiges Handle ist, kann das Problem auftreten, wenn SQL Server ein ungültiges Handle verwendet, um einen Windows API-Schreibaufruf durchzuführen. Trotzdessen könnte dies immer noch ein Systemproblem sein.

Wenn Sie beispielsweise die folgende Fehlermeldung in der SQL Server-Fehlerprotokolldatei entdecken, hat SQL Server beim Versuch einen Windows API-Schreibaufruf in die primäre Datenbankdatei tempdb durchzuführen, einen Betriebssystemfehler 2 entdeckt.
Fehler: 823, Schweregrad: 24, Status: 4
E/A Fehler 2 (Die angegebene Datei wurde nicht gefunden.) ist beim Lesen von Offset 0x00000000284000 in Datei D:\Programme\Microsoft SQL Server\MSSQL\data\tempdb.mdf' aufgetreten.
Da SQL Server die Datei bereits erfolgreich geöffnet und dabei keinen Fehler "Ungültiges Handle" erhalten hat, wird der Fehler wahrscheinlich in einer Softwarekomponente niedrigerer Ebene gemeldet, wie beispielsweise dem Dateisystem oder einem Gerätetreiber. Dieses Problem weist nicht auf ein Problem in SQL Server hin. Es muss als Problem mit dem Dateisystem oder dem Gerätetreiber, der mit der Datei verknüpft ist, behandelt werden.

Informationsquellen

Zusätzliche Diagnoseinformationen für Fehler 823 werden eventuell in die SQL Server-Fehlerprotokolldatei geschrieben, wenn Sie Ablaufverfolgungsflag 818 verwenden. Weitere Informationen zu diesen Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
826433  (http://support.microsoft.com/kb/826433/DE/ ) PRB: Zusätzliche SQL Server-Diagnose hinzugefügt, um nicht berichtete E/A-Probleme aufzuspüren

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Keywords: 
kbprb KB828339
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store