Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
msdbjiný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 CHECKDB823). Pokud zjistíte nekonzistence zDBCC CHECKDBpří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.