MSSQLSERVER_824
Gilt für:SQL Server
Details
attribute | Wert |
---|---|
Produktname | SQL Server |
Ereignis-ID | 824 |
Ereignisquelle | MSSQLSERVER |
Komponente | SQLEngine |
Symbolischer Name | B_HARDSSERR |
Meldungstext | SQL Server hat einen logischen, konsistenzbasierten E/A-Fehler gefunden: %ls Der Fehler ist beim %S_MSG von Seite %S_PGID in der Datenbank mit der ID %d bei Offset %#016I64x in der Datei '%ls' aufgetreten. Weitere Meldungen im SQL Server-Fehlerprotokoll oder Betriebssystemfehlerprotokoll enthalten möglicherweise weitere Details. Dies ist ein schwerer Fehler, der die Datenbankintegrität bedroht und sofort behoben werden muss. Führen Sie eine vollständige Datenbankkonsistenzprüfung (DBCC CHECKDB) aus. Dieser Fehler kann durch viele Faktoren verursacht werden; weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=2252374. |
Symptom
Möglicherweise tritt die folgende Fehlermeldung im SQL Server-Fehlerprotokoll oder dem Windows-Anwendungsereignisprotokoll auf, wenn eine logische Konsistenzprüfung fehlschlägt, nachdem eine Datenbankseite gelesen oder geschrieben wurde:
2022-11-02 15:46:42.90 spid51 Error: 824, Severity: 24, State: 2.
2022-11-02 15:46:42.90 spid51 SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:43686; actual 0:0). It occurred during a read of page (1:43686) in database ID 23 at offset 0x0000001554c000 in file 'H:\MSSQL16.MSSQLSERVER\MSSQL\DATA\my_db.mdf'. Additional messages in the SQL Server error log or operating system error log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see https://go.microsoft.com/fwlink/?linkid=2252374.
Wenn eine SELECT- oder DML-Abfrage in dieser Meldung ausgeführt wird, wird die Fehlermeldung an die Anwendung zurückgegeben, und die Datenbankverbindung wird beendet.
Ursache
Dieser Fehler gibt an, dass Windows meldet, dass die Seite erfolgreich vom Datenträger gelesen wurde, aber SQL Server hat festgestellt, dass bei der Seite ein Fehler aufgetreten ist. Dieser Fehler ähnelt Fehler 823, mit der Ausnahme, dass Windows den Fehler nicht erkannt hat. Fehler 824 weist in der Regel auf ein Problem im E/A-Subsystem hin, z. B. fehlerhafte Datenträgerlaufwerke, Firmwareprobleme, fehlerhafte Gerätetreiber usw. Weitere Informationen zu E/A-Fehlern finden Sie unter Microsoft SQL Server I/O Basics, Chapter 2 (E/A-Grundlagen von Microsoft SQL Server, Kapitel 2).
SQL Server verwendet die folgenden Windows-APIs zum Ausführen der E/A-Vorgänge: ReadFile
, , WriteFile
, ReadFileScatter
und WriteFileGather
. Nach Abschluss dieser E/A-Vorgänge sucht SQL Server nach fehlern, die diesen API-Aufrufen zugeordnet sind. Wenn diese API-Aufrufe mit einem Betriebssystemfehler fehlschlagen, meldet SQL Server Fehler 823. Es kann Situationen geben, in denen der Windows-API-Aufruf tatsächlich erfolgreich ist, aber die vom E/A-Vorgang übertragenen Daten haben möglicherweise ein logisches Konsistenzproblem verursacht. Solche logischen Konsistenzprobleme werden von Fehler 824 gemeldet.
Der Fehler 824 enthält die folgenden Informationen:
- Die Datenbankdatei, für die der E/A-Vorgang durchgeführt wurde
- Das Offset mit der Datei, in der der E/A-Vorgang versucht wurde
- Die Datenbank, zu der die Datei gehört
- Die Seitenzahl, die am E/A-Vorgang beteiligt war
- Ob es sich bei dem Vorgang um einen Lese- oder Schreibvorgang handelte
- Details zur logischen Konsistenzüberprüfung, die fehlgeschlagen ist (der Typ der Überprüfung, der tatsächliche Wert und der erwartete Wert, der für diese Überprüfung verwendet wird)
Diese logischen Konsistenzüberprüfungen sind Integritätsprüfungen, die von SQL Server durchgeführt werden, um sicherzustellen, dass wichtige Elemente der Daten, die an der erneuten E/A-Übertragung beteiligt waren Standard während des gesamten E/A-Vorgangs intakt sind. Zu den Prüfungen gehören Checksum, Torn Page, Short transfer, Bad Page ID, Stale Read und Page Audit Failure. Die Art der durchgeführten Prüfungen variiert abhängig von den verschiedenen Konfigurationsoptionen auf Datenbank- und Serverebene.
Die Fehlermeldung 824 weist in der Regel darauf hin, dass ein Problem mit dem zugrunde liegenden Speichersystem oder der Hardware oder einem Treiber vorliegt, 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.
Lösung
Wenn bei Ihnen der Fehler 824 auftritt, können Sie die folgenden Lösungen ausprobieren:
Überprüfen Sie die suspect_pages Tabelle,
msdb
um zu überprüfen, ob auf anderen Seiten (in derselben Datenbank oder unterschiedlichen Datenbanken) dieses Problem auftritt.SELECT * FROM msdb..suspect_pages WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
Überprüfen Sie die Konsistenz der Datenbanken, die sich in demselben Volume befinden (wie die in der 824-Nachricht gemeldete), mithilfe des DBCC CHECKDB-Befehls. Wenn Sie Inkonsistenzen aus dem Befehl finden, verwenden Sie die Anleitungen aus dem
DBCC CHECKDB
Knowledge Base-Artikel Zur Problembehandlung von Datenbankkonsistenzfehlern, die von DBCC CHECKDB gemeldet wurden.DBCC CHECKDB;
Wenn die Datenbank, bei der diese 824 Fehler auftreten, nicht die
PAGE_VERIFY CHECKSUM
Datenbankoption aktiviert ist, aktivieren Sie die Option sofort. Für 824-Fehler können andere Gründe als für Prüfsummenfehler vorliegen, jedoch bietet CHECKSUM die beste Option zum Überprüfen der Konsistenz der Seite, nachdem sie auf den Datenträger geschrieben wurde. Verwenden Sie dieses Skript, um Datenbanken zu identifizieren, bei denen die CHECKUM-Option nicht aktiviert ist:SELECT * FROM sys.databases WHERE page_verify_option_desc != 'CHECKSUM';
Überprüfen Sie das Windows-Ereignisprotokoll auf Fehler und Meldungen vom Betriebssystem, einem Speichergerät oder einem Gerätetreiber. Wenn sie auf irgendeine Weise mit diesem Fehler zusammenhängen, sollten Sie diese Fehler zuerst beheben. Abgesehen von der 824-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 ermitteln, ob sich diese Datei auf dem Gerät befindet, und zuerst diese Datenträgerfehler beheben.
Verwenden Sie das Hilfsprogramm SQLIOSim, um herauszufinden, ob die 824-Fehler außerhalb der regulären E/A-Anforderungen von SQL Server reproduziert werden können. SQLIOSim wird mit SQL Server 2008 (10.0.x) und höheren Versionen ausgeliefert, sodass kein separater Download erforderlich ist.
Wenden Sie sich an Ihren Hardware- oder Gerätehersteller, 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 Hardware- oder Gerätehersteller Ihnen Diagnoseprogramme bereitgestellt hat, verwenden Sie diese, um die Integrität des E/A-Systems auszuwerten.
Bewerten Sie, ob Filtertreiber vorhanden sind, die im E/A-Pfad dieser Anforderungen vorhanden sind. Sie können die folgenden Befehle ausführen, um alle Filtertreiber auf dem System auflisten zu können:
fltmc filters fltmc instances
- Schließen Sie Datenbank- und Protokolldateien von der Überprüfung durch solche Filtertreiber aus. Weitere Informationen finden Sie unter Verzeichnisse und Dateinamenerweiterungen, die vom Virenscan ausgeschlossen werden sollen
- Überprüfen Sie, ob es Updates für diese Filtertreiber gibt.
- Können diese Filtertreiber entfernt oder deaktiviert werden, um festzustellen, ob das Problem, das zu dem Fehler 824 führt, wegfällt?
Wenn Sie einen virtuellen Computer ausführen, stellen Sie sicher, dass alle Virtualisierungstreiber aktualisiert werden, oder wenden Sie sich an den Virtualisierungsanbieter, um weitere Informationen zu erhalten.
Wenn das Problem nicht hardwarebezogen ist und eine bekannte sauber Sicherung verfügbar ist, stellen Sie die Datenbank aus der Sicherung wieder her.
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für