Dela via


MSSQLSERVER-fel 823

gäller för:SQL Server

Detaljer

Egenskap Värde
Produktnamn SQL Server
Händelse-ID 823
Händelsekälla MSSQLSERVER
Komponent SQLEngine
Symboliskt namn B_HARDERR
Meddelandetext Operativsystemet returnerade felet %ls till SQL Server under en %S_MSG vid offset %#016I64x i filen%ls. Ytterligare meddelanden i SQL Server-felloggen och systemhändelseloggen kan ge mer information. Detta är ett allvarligt feltillstånd på systemnivå som hotar databasintegriteten och måste åtgärdas omedelbart. Slutför en fullständig kontroll av databaskonsekvens (DBCC CHECKDB). Det här felet kan orsakas av många faktorer. Mer information finns i SQL Server Books Online.

Förklaring

SQL Server använder Windows-API:er (till exempel ReadFile, WriteFile, ReadFileScatter, WriteFileGather) för att utföra fil-I/O-åtgärder. När SQL Server har utför dessa I/O-åtgärder söker den efter eventuella felvillkor som är associerade med dessa API-anrop. Om API-anropen misslyckas med ett operativsystemfel rapporterar SQL Server fel 823.

Felmeddelandet 823 innehåller följande information:

  • Databasfilen som I/O-åtgärden utfördes mot.
  • Förskjutningen i filen där I/O-åtgärden försöktes. Det här är den fysiska byteförskjutningen från början av filen. Om du delar upp det här talet med 8 192 får du det logiska sidnumret som påverkas av felet.
  • Om I/O-åtgärden är en läs- eller skrivbegäran.
  • Felkoden för operativsystemet och felbeskrivningen inom parenteser.

Operativsystemfel: Ett läs- eller skrivanrop för Windows API lyckas inte och SQL Server stöter på ett operativsystemfel som är relaterat till Windows API-anropet. Följande meddelande är ett exempel på ett 823-fel:

Error: 823, Severity: 24, State: 2.
2010-03-06 22:41:19.55 spid58 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.

Du kan se fel från DBCC CHECKDB-instruktionen på databasen som är associerad med filen i felmeddelandet. Du kan köra DBCC CHECKDB-instruktionen när du ser ett 823-fel. Om DBCC CHECKDB-instruktionen inte rapporterar några fel har du förmodligen ett tillfälligt systemproblem eller ett diskproblem.

Ytterligare diagnostikinformation för 823-fel kan skrivas till SQL Server-felloggfilen när du använder spårningsflagga 818. Mer information finns i SQL Server-diagnostik identifierar orapporterade I/O-problem på grund av inaktuella läsningar eller förlorade skrivningar.

Orsak

823-felmeddelandet anger vanligtvis att det finns ett problem med det underliggande lagringssystemet eller maskinvaran eller en drivrutin som är i sökvägen till I/O-begäran. Du kan stöta på det här felet när det finns inkonsekvenser i filsystemet eller om databasfilen är skadad. För en filläsning har SQL Server redan gjort ett nytt försök med läsbegäran fyra gånger innan den returnerar 823. Om återförsöksåtgärden lyckas misslyckas inte frågan, men meddelandet MSSQLSERVER_825 skrivs till ERRORLOG och händelseloggen.

Användaråtgärd

  • Granska den suspect_pages tabellen i msdb för andra sidor som stöter på det här problemet (i samma databas eller i olika databaser).

  • Kontrollera konsekvensen för databaser som finns på samma volym (som den som rapporterades i 823-meddelandet) med hjälp av DBCC CHECKDB-kommandot. Om du hittar inkonsekvenser från DBCC CHECKDB-kommandot använder du vägledningen från Så här felsöker du databaskonsekvensfel som rapporterats av DBCC CHECKB.

  • Granska Windows händelseloggar för eventuella fel eller meddelanden som rapporterats från operativsystemet, en Storage-enhet eller en enhetsdrivrutin. Om de är relaterade till det här felet på något sätt kan du åtgärda dessa fel först. Förutom meddelandet 823 kan du till exempel också märka en händelse som "Drivrutinen upptäckte ett kontrollantfel på \Device\Harddisk4\DR4" som rapporterades av diskkällan i händelseloggen. I så fall måste du utvärdera om filen finns på den här enheten och sedan korrigera diskfelen.

  • Använd verktyget Använd SQLIOSim för att simulera SQL Server-aktivitet på ett diskundersystemverktyg för att ta reda på om dessa 823-fel kan återskapas utanför vanliga SQL Server I/O-begäranden. SQLIOSim-verktyget levereras med SQL Server 2008 och senare versioner så det finns inget behov av en separat nedladdning. Du kan vanligtvis hitta den i mappen C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn .

  • Arbeta med maskinvaruleverantören eller enhetstillverkaren för att säkerställa

    • Maskinvaruenheterna och konfigurationen överensstämmer med I/O-kraven för SQL Server
    • Enhetsdrivrutinerna och andra stödjande programvarukomponenter för alla enheter i I/O-sökvägen är uppdaterade
  • Om maskinvaruleverantören eller enhetstillverkaren försåg dig med diagnostikverktyg använder du dem för att utvärdera hälsotillståndet för I/O-systemet

  • Utvärdera om det finns filterdrivrutiner i sökvägen till dessa I/O-begäranden som stöter på problem.

    • Kontrollera om det finns några uppdateringar av dessa filterdrivrutiner
    • Kan dessa filterdrivrutiner tas bort eller inaktiveras för att se om problemet som resulterar i 823-felet försvinner?