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.
Gilt für:SQL Server
Einzelheiten
| attribute | Wert |
|---|---|
| Produktname | SQL Server |
| Ereignis-ID | 823 |
| Ereignisquelle | MSSQLSERVER |
| Komponente | SQLEngine |
| Symbolischer Name | B_HARDERR |
| Meldungstext | Das Betriebssystem hat während eines %S_MSG bei Offset %#016I64x in der Datei '%4!s!' den Fehler '%ls' an SQL Server zurückgegeben. Weitere Informationen finden Sie möglicherweise in zusätzlichen Meldungen im SQL Server-Fehlerprotokoll und im Systemereignisprotokoll. Dieser Fehler kann die Datenbankintegrität beeinträchtigen und muss behoben werden. Führen Sie eine vollständige Datenbankkonsistenzprüfung (DBCC CHECKDB) aus. Dieser Fehler kann viele Ursachen haben. Weitere Informationen finden Sie in der SQL Server-Onlinedokumentation. |
Erklärung
SQL Server verwendet Windows-APIs wie ReadFile, WriteFile, ReadFileScatter und WriteFileGather, um Datei-E/A-Vorgänge auszuführen. Nachdem SQL Server diese E/A-Vorgänge ausgeführt hat, wird nach allen Fehlerbedingungen gesucht, die diesen API-Aufrufen zugeordnet sind. Wenn die API-Aufrufe mit einem Betriebssystemfehler (OS) fehlschlagen, meldet SQL Server Fehler 823.
Die 823-Fehlermeldung enthält folgende Informationen:
Die Datenbankdatei, für die der E/A-Vorgang ausgeführt wurde.
Das Offset in der Datei, an dem versucht wurde, den E/A-Vorgang durchzuführen. Dieser Offset ist der physische Byte-Offset vom Anfang der Datei. Wenn Sie diese Zahl durch 8.192 dividieren, erhalten Sie die logische Seitenzahl, die sich auf den Fehler auswirkt.
Gibt an, ob der E/A-Vorgang eine Lese- oder Schreibanforderung ist.
Der Fehlercode und die Fehlerbeschreibung des Betriebssystems in Klammern.
Vom Betriebssystem generierte Fehler
Ein Betriebssystemfehler tritt auf, wenn ein Windows-API-Aufruf mit Lese- oder Schreibzugriff nicht erfolgreich ist, und SQL Server tritt auf einen Betriebssystemfehler im Zusammenhang mit dem Windows-API-Aufruf hin. In der folgenden Beispielmeldung wird ein 823-Fehler veranschaulicht:
Error: 823, Severity: 24, State: 2.
The operating system returned error 1117 (The request could not be performed because of an I/O device error.) to SQL Server during a read at offset 0x0000002d460000 in file 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Von DBCC CHECKDB generierte Fehler
Möglicherweise werden Fehler aus der Anweisung in der DBCC CHECKDB Datenbank angezeigt, die der Datei in der Fehlermeldung zugeordnet ist. Sie können die DBCC CHECKDB Anweisung ausführen, wenn ein Fehler von 823 angezeigt wird. Wenn die DBCC CHECKDB Anweisung keine Fehler meldet, liegt wahrscheinlich ein zeitweiliges Systemproblem oder ein Datenträgerproblem vor.
Weitere Diagnoseinformationen für 823 Fehler in der SQL Server-Fehlerprotokolldatei finden Sie unter Verwendung des Ablaufverfolgungskennzeichnungs 818. Weitere Informationen finden Sie in der SQL Server-Diagnose, bei der aufgrund veralteter Lesevorgänge oder verlorener Schreibvorgänge nicht gemeldete E/A-Probleme erkannt werden.
Ursache
Die Fehlermeldung 823 weist in der Regel darauf hin, dass ein Problem mit dem zugrunde liegenden Speichersystem vorliegt, oder die Hardware oder ein Treiber, der sich im Pfad der E/A-Anforderung befindet. Dieser Fehler kann auftreten, wenn Inkonsistenzen im Dateisystem vorliegen oder wenn die Datenbankdatei beschädigt ist. Bei einem Dateilesevorgang wiederholt SQL Server die Leseanforderung viermal, bevor sie 823 zurückgibt. Wenn der Wiederholungsvorgang erfolgreich ist, schlägt die Abfrage nicht fehl, aber die Meldung MSSQLSERVER_825 wird in das ERRORLOG- und Ereignisprotokoll geschrieben.
Benutzeraktion
Überprüfen Sie die suspect_pages Tabelle
msdbauf anderen Seiten, die auf dieses Problem stoßen (in derselben Datenbank oder in unterschiedlichen Datenbanken).Überprüfen Sie die Konsistenz von Datenbanken auf demselben Volume (wie in der 823-Nachricht gemeldet), indem Sie den
DBCC CHECKDBBefehl verwenden. Wenn Sie Inkonsistenzen aus demDBCC CHECKDBBefehl finden, verwenden Sie die Anleitungen zum Beheben von Datenbankkonsistenzfehlern, die von DBCC CHECKB gemeldet wurden.Überprüfen Sie die Windows-Ereignisprotokolle auf Fehler oder Meldungen, die vom Betriebssystem, einem Speichergerät oder einem Gerätetreiber gemeldet wurden. Wenn sie auf irgendeine Weise mit diesem Fehler zusammenhängen, beheben Sie diese Fehler zuerst. Abgesehen von der 823-Meldung können Sie beispielsweise auch ein Ereignis wie "Der Treiber hat einen Controllerfehler auf \Device\Harddisk4\DR4" feststellen, der von der Datenträgerquelle im Ereignisprotokoll gemeldet wurde. In diesem Fall müssen Sie auswerten, ob diese Datei auf diesem Gerät vorhanden ist, und diese Datenträgerfehler beheben.
Verwenden Sie das SQLIOSim-Hilfsprogramm , um herauszufinden, ob diese 823 Fehler außerhalb regulärer SQL Server-E/A-Anforderungen reproduziert werden können. Das SQLIOSim-Hilfsprogramm wird mit SQL Server 2008 und höheren Versionen ausgeliefert, sodass kein separater Download erforderlich ist. Normalerweise befindet es sich im Ordner
C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn.Arbeiten Sie mit Ihrem Hardwareanbieter oder Gerätehersteller zusammen, um Folgendes sicherzustellen:
- Die Hardwaregeräte und -konfiguration entsprechen den E/A-Anforderungen von SQL Server.
- Die Gerätetreiber und andere unterstützende Softwarekomponenten aller Geräte im E/A-Pfad sind auf dem neuesten Stand.
Wenn Der Hardwareanbieter oder Gerätehersteller Ihnen diagnosehilfsprogramme zur Verfügung gestellt hat, verwenden Sie diese, um den Status des E/A-Systems zu bewerten.
Ermitteln Sie, ob Filtertreiber im Pfad der E/A-Anforderungen enthalten sind, bei denen Probleme auftreten.
Überprüfen Sie, ob Updates für diese Filtertreiber vorhanden sind.
Können Sie diese Filtertreiber entfernen oder deaktivieren, um festzustellen, ob das Problem, das zu dem Fehler 823 führt, abläuft?
Beispiel mit Betriebssystemfehler 21
In diesem Fall gibt der zugrunde liegende Betriebssystemfehler 21 an, dass das Datenträgergerät offline ist und für das Betriebssystem und sql Server nicht verfügbar ist.
Error: 823, Severity: 24, State: 2.
The operating system returned error 21 (The device is not ready.) to SQL Server during a read at offset 0x0000002d460000 in file 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Resolution
Wenn ein ähnliches Szenario auftritt, beheben Sie den zugrunde liegenden Betriebssystemfehler. Arbeiten Sie in diesem Fall mit Ihrem Systemadministrator und Hardwareanbieter zusammen, um sicherzustellen, dass das Datenträgergerät online ist und ordnungsgemäß funktioniert. Stellen Sie sicher, dass keine Fehler oder Schäden gemeldet werden.
Eine instabile Netzwerkverbindung kann diesen Fehler auch verursachen, z. B. wenn Datenbankdateien auf einem netzwerkgebundenen Speicher (NAS) oder einem SAN-Gerät gespeichert werden, auf das über das Netzwerk zugegriffen wird. In solchen Fällen müssen Sie möglicherweise die physische Integrität der Datenbanken überprüfen, sobald das Datenträgergerät wiederhergestellt wird, indem Sie DBCC CHECKDB ausführen. Wenn Datenbankschäden gemeldet werden, stellen Sie eine zuletzt bekannte gute Datenbanksicherung wieder her.