MSSQLSERVER_824

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 msdb a 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 CHECKDB pří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 CHECKSUM mož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.