Chyba MSSQLSERVER 823

platí pro:SQL Server

Podrobnosti

Vlastnost Hodnota
Název produktu SQL Server
ID události 823
Zdroj událostí MSSQLSERVER
Součást SQLEngine
Symbolický název B_HARDERR
Text zprávy Operační systém vrátil chybu %ls SQL Serveru během %S_MSG posunu %#016I64x v souboru%ls. Další zprávy v protokolu chyb SQL Serveru a protokolu událostí systému můžou obsahovat podrobnější informace. Jedná se o závažný chybový stav na úrovni systému, který ohrožuje integritu databáze a musí být okamžitě opraven. Proveďte úplnou kontrolu konzistence databáze (DBCC CHECKDB). Tato chyba může být způsobena mnoha faktory; Další informace naleznete v tématu SQL Server Books Online.

Vysvětlení

SQL Server používá k provádění vstupně-výstupních operací se soubory pomocí rozhraní API systému Windows, jako jsou ReadFile, WriteFileScatter a WriteFileGather. Jakmile SQL Server provede tyto vstupně-výstupní operace, zkontroluje všechny chybové podmínky přidružené k těmto voláním rozhraní API. Pokud volání rozhraní API selže s chybou operačního systému (OS), SQL Server hlásí chybu 823.

Chybová zpráva 823 obsahuje následující informace:

  • Soubor databáze, proti kterému byla provedena vstupně-výstupní operace.

  • Posun v souboru, ve kterém došlo k pokusu o vstupně-výstupní operaci. Tento posun je posun fyzického bajtu od začátku souboru. Když toto číslo vydělíte číslem 8 192, získáte logické číslo stránky, které má chyba vliv.

  • Bez ohledu na to, jestli je vstupně-výstupní operace požadavek na čtení nebo zápis.

  • Kód chyby operačního systému a popis chyby v závorkách.

Chyby generované operačním systémem

K chybě operačního systému dochází v případě, že volání rozhraní API systému Windows pro čtení nebo zápis není úspěšné a SQL Server narazí na chybu operačního systému související s voláním rozhraní API systému Windows. Následující zpráva je příkladem chyby 823:

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.

Chyby generované DBCC CHECKDB

V chybové zprávě se můžou zobrazit chyby z DBCC CHECKDB příkazu v databázi přidružené k souboru. Příkaz můžete spustit DBCC CHECKDB , když se zobrazí chyba 823. Pokud příkaz DBCC CHECKDB neohlásí žádné chyby, pravděpodobně máte občasný systémový problém nebo problém s diskem.

Další diagnostické informace o chybách 823 najdete v souboru protokolu chyb SQL Serveru pomocí příznaku trasování 818. Další informace naleznete v tématu Diagnostika SQL Serveru detekuje nesestavované vstupně-výstupní problémy způsobené zastaralými čteními nebo ztracenými zápisy.

Příčina

Chybová zpráva 823 obvykle značí, že došlo k problému se základním systémem úložiště nebo hardwarem nebo ovladačem, který je v cestě k V/V požadavku. K této chybě může dojít v případě nekonzistence v systému souborů nebo v případě poškození souboru databáze. Pro čtení souboru SQL Server opakuje požadavek na čtení čtyřikrát předtím, než vrátí hodnotu 823. Pokud bude operace opakování úspěšná, dotaz se nezdaří, ale zpráva MSSQLSERVER_825 se zapíše do PROTOKOLU CHYB a protokolu událostí.

Akce uživatele

  • Projděte si tabulku suspect_pages na msdb jiných stránkách, na které dochází k tomuto problému (ve stejné databázi nebo v různých databázích).

  • Pomocí příkazu zkontrolujte konzistenci databází umístěných na stejném svazku (jako databáze hlášená ve zprávě DBCC CHECKDB 823). Pokud zjistíte nekonzistence z DBCC CHECKDB příkazu, použijte pokyny k řešení chyb konzistence databáze hlášených dbCC CHECKB.

  • V protokolech událostí Systému Windows zkontrolujte případné chyby nebo zprávy hlášené z operačního systému, úložného zařízení nebo ovladače zařízení. Pokud s touto chybou souvisí nějakým způsobem, nejprve tyto chyby vyřešte. Kromě zprávy 823 si můžete také všimnout události typu "Ovladač zjistil chybu kontroleru na \Device\Harddisk4\DR4" hlášené zdrojem disku v protokolu událostí. V takovém případě je potřeba vyhodnotit, jestli je tento soubor v tomto zařízení k dispozici, a opravit tyto chyby disku.

  • Pomocí nástroje SQLIOSim zjistěte, zda tyto chyby 823 lze reprodukovat mimo běžné vstupně-výstupní požadavky SQL Serveru. Nástroj SQLIOSim se dodává s SQL Serverem 2008 a novějšími verzemi, takže není nutné samostatné stahování. Obvykle ho najdete ve složce C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn .

  • Spolupracujte s dodavatelem hardwaru nebo výrobcem zařízení a ujistěte se, že:

    • Hardwarová zařízení a konfigurace odpovídají požadavkům na vstupně-výstupní operace SQL Serveru.
    • Ovladače zařízení a další podpůrné softwarové komponenty všech zařízení v cestě vstupně-výstupních operací jsou aktuální.
  • Pokud vám dodavatel hardwaru nebo výrobce zařízení poskytl diagnostické nástroje, použijte ho k vyhodnocení stavu vstupně-výstupního systému.

  • Vyhodnoťte, jestli existují ovladače filtru v cestě těchto vstupně-výstupních požadavků, u kterých dochází k problémům.

    • Zkontrolujte, jestli nejsou k dispozici nějaké aktualizace těchto ovladačů filtru.

    • Můžete tyto ovladače filtru odebrat nebo zakázat, abyste mohli zjistit, jestli problém, který vede k chybě 823, zmizí?

Příklad s chybou operačního systému 21

V tomto případě základní chyba operačního systému 21 značí, že diskové zařízení je offline a není dostupné pro operační systém a SQL Server, které se mají použít.

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

Pokud narazíte na podobný scénář, vyřešte související chybu operačního systému. V takovém případě se obraťte na správce systému a dodavatele hardwaru a ujistěte se, že je diskové zařízení online a funguje správně. Ujistěte se, že nejsou hlášeny žádné chyby nebo poškození.

Nestabilní síťové připojení může také způsobit tuto chybu, například když jsou soubory databáze uložené v úložišti připojeném k síti (NAS) nebo zařízení SAN, ke kterému se přistupuje přes síť. V takových případech může být nutné zkontrolovat fyzickou integritu databází po obnovení diskového zařízení spuštěním DBCC CHECKDB. Pokud je hlášeno poškození databáze, obnovte poslední známou dobrou zálohu databáze.