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 | 824 |
| Zdroj událostí | MSSQLSERVER |
| Součást | SQLEngine |
| Symbolický název | B_HARDSSERR |
| Text zprávy | SQL Server zjistil chybu vstupně-výstupní operace založenou na logické konzistenci: %ls. Došlo k tomu během %S_MSG stránky č. %S_PGID v databázi ID %d při offsetu %#016I64x v souboru '%ls'. Další zprávy v protokolu chyb SQL Serveru nebo v protokolu chyb operačního systému můžou obsahovat podrobnější informace. Jedná se o závažný chybový stav, 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 https://go.microsoft.com/fwlink/?linkid=2252374. |
Symptom
Pokud se po přečtení nebo zápisu databázové stránky nezdaří logická kontrola konzistence, může se v protokolu chyb SQL Serveru nebo v protokolu událostí aplikace systému Windows zobrazit následující chybová zpráva:
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.
Pokud do této zprávy narazí dotaz SELECT nebo DML, vrátí se do aplikace chybová zpráva a připojení k databázi se ukončí.
Příčina
Tato chyba značí, že systém Windows hlásí, že se stránka úspěšně načítá z disku, ale SQL Server zjistil, že se na stránce něco nepovedlo. Tato chyba se podobá chybě 823, s tím rozdílem, že Systém Windows tuto chybu nerozpoznal. Chyba 824 obvykle značí problém v subsystému vstupně-výstupních operací, jako jsou selhání diskových jednotek, problémy s firmwarem, chybné ovladače zařízení atd. Další informace o vstupně-výstupních chybách naleznete v tématu Základy vstupně-výstupních operací systému Microsoft SQL Server, kapitola 2.
SQL Server používá k provádění vstupně-výstupních operací následující rozhraní API systému Windows: ReadFile, WriteFile, ReadFileScattera WriteFileGather. Po dokončení těchto vstupně-výstupních operací SQL Server zkontroluje všechny chybové stavy přidružené k těmto voláním rozhraní API. Pokud tato volání rozhraní API selžou s chybou operačního systému, sql Server hlásí chybu 823. V situacích, kdy je volání rozhraní API systému Windows sice úspěšné, ale data přenášená operací vstupně-výstupní mohou mít problém s logickou konzistencí. Tyto problémy s logickou konzistencí jsou hlášeny prostřednictvím chyby 824.
Chyba 824 obsahuje následující informace:
- Soubor databáze, pro který se provádí vstupně-výstupní operace
- Posun ve vztahu k souboru, ve kterém došlo k pokusu o vstupně-výstupní operaci
- Databáze, do které tento soubor patří
- Číslo stránky, které bylo zapojeno do vstupně-výstupní operace
- Byla to operace čtení nebo zápisu?
- Podrobnosti o logické kontrole konzistence, která selhala (typ kontroly, skutečná hodnota a očekávaná hodnota použitá pro tuto kontrolu)
Tyto logické kontroly konzistence jsou kontroly integrity prováděné SQL Serverem, aby se zajistily, že klíčové prvky dat, které byly součástí přenosu vstupně-výstupních operací, zůstaly nedotčené během operace vstupně-výstupní operace. Mezi kontroly patří Kontrolní součet, Roztržená stránka, Krátký přenos, Špatné ID stránky, Zastaralé čtení a Selhání auditu stránky. Povaha provedených kontrol se liší v závislosti na různých možnostech konfigurace na úrovni databáze a serveru.
Chybová zpráva 824 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.
Resolution
Pokud dojde k chybě 824, můžete vyzkoušet následující řešení:
Zkontrolujte suspect_pages tabulku
msdba zkontrolujte, jestli k tomuto problému dochází u jiných stránek (ve stejné databázi nebo v různých databázích).SELECT * FROM msdb..suspect_pages WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);Pomocí příkazu DBCC CHECKDB zkontrolujte konzistenci databází, které jsou umístěné ve stejném svazku (jako databáze hlášené ve zprávě 824). Pokud zjistíte nekonzistence z
DBCC CHECKDBpříkazu, použijte doprovodné materiály z článku Znalostní báze How to troubleshoot database consistency errors reported by DBCC CHECKDB.DBCC CHECKDB;Pokud databáze, u které dochází k těmto chybám 824, nemá zapnutou
PAGE_VERIFY CHECKSUMmožnost databáze, zapněte tuto možnost okamžitě. Chyby 824 mohou nastat z jiných důvodů než selhání kontrolního součtu, ale funkce CHECKSUM poskytuje nejlepší možnost ověřit konzistenci stránky po zápisu na disk. Tento skript použijte k identifikaci databází, ve kterých není povolená možnost CHECKSUM:SELECT * FROM sys.databases WHERE page_verify_option_desc != 'CHECKSUM';V protokolech událostí Systému Windows zkontrolujte případné chyby nebo zprávy hlášené z operačního systému nebo úložného zařízení nebo ovladače zařízení. Pokud s touto chybou souvisí nějakým způsobem, měli byste tyto chyby nejprve vyřešit. Kromě zprávy 824 si můžete také všimnout události typu "Ovladač zjistil chybu kontroleru v \Device\Harddisk4\DR4" hlášené zdrojem disku v protokolu událostí. V takovém případě musíte vyhodnotit, jestli je tento soubor na tomto zařízení k dispozici, a pak tyto chyby disku nejprve opravit.
Pomocí nástroje SQLIOSim zjistěte, jestli tyto chyby 824 lze reprodukovat mimo běžné vstupně-výstupní požadavky SQL Serveru. SQLIOSim se dodává s SQL Serverem 2008 (10.0.x) a novějšími verzemi, takže není potřeba samostatné stahování.
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.
- Aktualizují se ovladače zařízení a další podpůrné softwarové komponenty všech zařízení v cestě vstupně-výstupní operace.
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, zda existují filtrační ovladače v cestě vstupně-výstupních požadavků. Spuštěním následujících příkazů můžete zobrazit seznam všech ovladačů filtru v systému:
fltmc filters fltmc instances- Vyloučit soubory databáze a logů z toho, aby byly skenovány těmito ovladači filtru. Další informace naleznete v tématu Adresáře a přípony názvů souborů, které chcete vyloučit z kontroly virů.
- Zkontrolujte, jestli nejsou k dispozici nějaké aktualizace těchto ovladačů filtru.
- Dají se tyto ovladače filtru odebrat nebo zakázat, abyste mohli zjistit, jestli problém, který vede k chybě 824, zmizí?
Pokud používáte virtuální počítač, ujistěte se, že jsou aktualizovány všechny ovladače virtualizace, nebo se obraťte na dodavatele virtualizace, kde najdete další informace.
Pokud problém nesouvisí s hardwarem a je k dispozici známá čistá záloha, obnovte databázi ze zálohy.
Související obsah
- Správa tabulky suspect_pages (SQL Server)