Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Bijzonderheden
| Eigenschap | Waarde |
|---|---|
| Productnaam | SQL Server |
| Gebeurtenis-id | 823 |
| Bron van gebeurtenis | MSSQLSERVER |
| Onderdeel | SQLEngine |
| Symbolische naam | B_HARDERR |
| Berichttekst | Het besturingssysteem heeft een fout %ls doorgegeven aan SQL Server tijdens een %S_MSG bij offset %#016I64x in bestand '%ls'. Aanvullende berichten in het SQL Server-foutenlogboek en het gebeurtenislogboek van het systeem kunnen meer details bieden. Dit is een ernstige fouttoestand op systeemniveau die de database-integriteit bedreigt en onmiddellijk moet worden gecorrigeerd. Voltooi een volledige databaseconsistentiecontrole (DBCC CHECKDB). Deze fout kan worden veroorzaakt door veel factoren; Zie SQL Server Books Online voor meer informatie. |
Uitleg
SQL Server maakt gebruik van Windows-API's, zoals ReadFile, WriteFile, ReadFileScatter en WriteFileGather, om I/O-bewerkingen voor bestanden uit te voeren. Nadat SQL Server deze I/O-bewerkingen heeft uitgevoerd, wordt gecontroleerd op eventuele foutvoorwaarden die zijn gekoppeld aan deze API-aanroepen. Als de API-aanroepen mislukken met een besturingssysteemfout, meldt SQL Server fout 823.
Het foutbericht 823 bevat de volgende informatie:
Het databasebestand waarop de I/O-bewerking is uitgevoerd.
De offset in het bestand waarin de I/O-bewerking is geprobeerd. Deze offset is de fysieke byte offset vanaf het begin van het bestand. Als u dit getal met 8.192 wilt delen, krijgt u het logische paginanummer dat de fout beïnvloedt.
Of de I/O-bewerking een lees- of schrijfaanvraag is.
De foutcode en de beschrijving van het besturingssysteem tussen haakjes.
Fouten gegenereerd door het besturingssysteem
Er treedt een besturingssysteemfout op wanneer een Windows API-aanroep voor lezen of schrijven niet lukt en SQL Server een besturingssysteemfout ondervindt met betrekking tot de Windows API-aanroep. Het volgende bericht is een voorbeeld van een 823-fout:
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.
Fouten gegenereerd door DBCC CHECKDB
Mogelijk ziet u fouten uit de DBCC CHECKDB instructie in de database die is gekoppeld aan het bestand in het foutbericht. U kunt de DBCC CHECKDB instructie uitvoeren wanneer er een 823-fout wordt weergegeven. Als de DBCC CHECKDB instructie geen fouten rapporteert, hebt u waarschijnlijk een onregelmatig systeemprobleem of een schijfprobleem.
U kunt meer diagnostische informatie zien voor 823-fouten in het SQL Server-foutenlogboekbestand met behulp van traceringsvlag 818. Zie diagnostische gegevens van SQL Server niet-gerapporteerde I/O-problemen detecteren vanwege verlopen lees- of verloren schrijfbewerkingenvoor meer informatie.
Oorzaak
Het foutbericht 823 geeft meestal aan dat er een probleem is met het onderliggende opslagsysteem, of de hardware of een stuurprogramma dat zich in het pad van de I/O-aanvraag bevindt. U kunt deze fout tegenkomen wanneer er inconsistenties zijn in het bestandssysteem of als het databasebestand is beschadigd. Voor het lezen van een bestand voert SQL Server de leesaanvraag vier keer opnieuw uit voordat deze 823 retourneert. Als de bewerking voor opnieuw proberen slaagt, mislukt de query niet, maar wordt MSSQLSERVER_825 in het FOUTENLOGBOEK en gebeurtenislogboek geschreven.
Gebruikersactie
Bekijk de suspect_pages tabel voor
msdbandere pagina's die dit probleem ondervinden (in dezelfde database of in verschillende databases).Controleer de consistentie van databases die zich op hetzelfde volume bevinden (zoals de database die in het 823-bericht is gerapporteerd) met behulp van de
DBCC CHECKDBopdracht. Als u inconsistenties van deDBCC CHECKDBopdracht vindt, gebruikt u de richtlijnen voor het oplossen van databaseconsistentiefouten die door DBCC CHECKB zijn gerapporteerd.Controleer de Windows-gebeurtenislogboeken op fouten of berichten die zijn gerapporteerd vanuit het besturingssysteem, een opslagapparaat of een apparaatstuurprogramma. Als ze op een bepaalde manier zijn gerelateerd aan deze fout, moet u deze fouten eerst oplossen. Naast het 823-bericht ziet u bijvoorbeeld ook een gebeurtenis zoals 'Het stuurprogramma heeft een controllerfout gedetecteerd op \Device\Harddisk4\DR4' die is gerapporteerd door de schijfbron in het gebeurtenislogboek. In dat geval moet u evalueren of dit bestand aanwezig is op dit apparaat en deze schijffouten corrigeren.
Gebruik het hulpprogramma SQLIOSim om erachter te komen of deze 823-fouten buiten normale I/O-aanvragen van SQL Server kunnen worden gereproduceerd. Het SQLIOSim-hulpprogramma wordt geleverd met SQL Server 2008 en latere versies, zodat er geen afzonderlijke download nodig is. U kunt deze meestal vinden in uw
C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binnmap.Neem contact op met uw hardwareleverancier of apparaatfabrikant om het volgende te garanderen:
- De hardwareapparaten en configuratie voldoen aan de I/O-vereisten van SQL Server.
- De apparaatstuurprogramma's en andere ondersteunende softwareonderdelen van alle apparaten in het I/O-pad zijn up-to-date.
Als de hardwareleverancier of apparaatfabrikant u een diagnostisch hulpprogramma heeft geleverd, gebruikt u deze om de status van het I/O-systeem te evalueren.
Evalueer of er filterstuurprogramma's aanwezig zijn in het pad van deze I/O-aanvragen die problemen ondervinden.
Controleer of er updates zijn voor deze filterstuurprogramma's.
Kunt u deze filterstuurprogramma's verwijderen of uitschakelen om te zien of het probleem dat resulteert in de 823-fout verdwijnt?
Voorbeeld met besturingssysteemfout 21
In dit geval geeft de onderliggende besturingssysteemfout 21 aan dat het schijfapparaat offline is en niet beschikbaar is voor het besturingssysteem en SQL Server dat moet worden gebruikt.
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.
Resolutie / Besluit
Als u een vergelijkbaar scenario tegenkomt, moet u de onderliggende fout in het besturingssysteem oplossen. Neem in dit geval contact op met uw systeembeheerder en hardwareleverancier om ervoor te zorgen dat het schijfapparaat online is en goed functioneert. Zorg ervoor dat er geen fouten of schade zijn gerapporteerd.
Een instabiele netwerkverbinding kan deze fout ook veroorzaken, bijvoorbeeld wanneer databasebestanden worden opgeslagen op een NAS (Network Attached Storage) of SAN-apparaat dat via het netwerk wordt geopend. In dergelijke gevallen moet u mogelijk de fysieke integriteit van de databases controleren zodra het schijfapparaat is hersteld door DBCC CHECKDB uit te voeren. Als er databaseschade wordt gemeld, herstelt u een laatst bekende goede databaseback-up.