Príznak:

Pri použití DBCC CHECKDB s REPAIR_ALLOW_DATA_LOSS parameter na opravu poškodenej databázy .MDF, napríklad tento:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

zobrazí sa nasledujúce chybové hlásenie:

Výsledky DBCC pre výraz „xxxx“.
CHECKDB našiel v databáze 'xxxx' 0 chýb alokácie a 0 chýb konzistencie.
Msg 824, úroveň 24, štát 2, riadok 8
SQL Server zistil logickú chybu I / O založenú na konzistencii: nesprávny kontrolný súčet (očakávaný: 0xea8a9a2f; skutočný: 0x37adbff8). Došlo k nej počas čítania stránky (1:28) v databáze ID 39 na offsetu 0x00000000038000 v súbore „xxxx.mdf“. Ďalšie správy v SQL Server protokol chýb alebo protokol udalostí systému môžu poskytnúť viac podrobností. Toto je závažný chybový stav, ktorý ohrozuje integritu databázy a musí byť okamžite opravený. Vykonajte úplnú kontrolu konzistencie databázy (DBCC CHECKDB). Túto chybu môže spôsobiť veľa faktorov; ďalšie informácie nájdete na SQL Server Knihy online.

kde „xxxx.mdf“ je názov poškodeného súboru MDF, ktorý sa opravuje. Aj keď hovorí CHECKDB

CHECKDB našiel v databáze 'xxxx' 0 chýb alokácie a 0 chýb konzistencie.

Stále ide o chybu konzistencie (Správa 824) v databáze.

Screenshot z chybovej správy:

logická konzistencia založená na I / O chybe: nesprávny kontrolný súčet

Ak je korupcia závažná, budú sa neustále zobrazovať chybové správy (Správa 824), ako je uvedené nižšie:

Msg 824, úroveň 24, štát 6, riadok 2 SQL Server zistil logickú chybu I / O založenú na konzistencii: nesprávny kontrolný súčet (očakávaný: 0x3d17dfef; skutočný: 0xd81748ef). Došlo k nej počas čítania stránky (1: 0) v databáze ID 39 na posunutí 0000000000000000 v súbore „xxxx.mdf“. Ďalšie správy v SQL Server protokol chýb alebo protokol udalostí systému môžu poskytnúť viac podrobností. Toto je závažný chybový stav, ktorý ohrozuje integritu databázy a musí byť okamžite opravený. Vykonajte úplnú kontrolu konzistencie databázy (DBCC CHECKDB). Túto chybu môže spôsobiť veľa faktorov; ďalšie informácie nájdete na SQL Server Knihy online.

Msg 824, úroveň 24, štát 6, riadok 4 SQL Server zistil logickú chybu I / O založenú na konzistencii: nesprávny kontrolný súčet (očakávaný: 0x3d17dfef; skutočný: 0xd81748ef). Došlo k nej počas čítania stránky (1: 0) v databáze ID 39 na posunutí 0000000000000000 v súbore „xxxx.mdf“. Ďalšie správy v SQL Server protokol chýb alebo protokol udalostí systému môžu poskytnúť viac podrobností. Toto je závažný chybový stav, ktorý ohrozuje integritu databázy a musí byť okamžite opravený. Vykonajte úplnú kontrolu konzistencie databázy (DBCC CHECKDB). Túto chybu môže spôsobiť veľa faktorov; ďalšie informácie nájdete na SQL Server Knihy online.

kde „xxxx.mdf“ je názov poškodeného súboru MDF, ktorý sa opravuje.

Screenshot z chybovej správy:

Ak je korupcia závažnejšia, môžete vidieť Správa 7909 nasledovne Správa 824:

Výsledky DBCC pre výraz „xxxx“.
CHECKDB našiel v databáze 'xxxx' 0 chýb alokácie a 0 chýb konzistencie.
Msg 824, úroveň 24, štát 2, riadok 8
SQL Server zistil logickú chybu I / O založenú na konzistencii: nesprávny kontrolný súčet (očakávaný: 0xcfcd2118; skutočný: 0x6fc599d6). Došlo k nej počas čítania stránky (1: 1) v databáze ID 39 na offsetu 0x00000000002000 v súbore „xxxx.mdf“. Ďalšie správy v SQL Server protokol chýb alebo protokol udalostí systému môžu poskytnúť viac podrobností. Toto je závažný chybový stav, ktorý ohrozuje integritu databázy a musí byť okamžite opravený. Vykonajte úplnú kontrolu konzistencie databázy (DBCC CHECKDB). Túto chybu môže spôsobiť veľa faktorov; ďalšie informácie nájdete na SQL Server Knihy online.
Msg 7909, úroveň 20, štát 1, riadok 8
Oprava v núdzovom režime zlyhala. Musíte obnoviť zo zálohy.

kde „xxxx“ je názov databázy a „xxxx.mdf“ je názov fyzického súboru databázy.

Poznámky Správa 7909 je závažná chyba, ktorá sa môže vyskytnúť v mnohých situáciách kedykoľvek SQL Server myslíte si, že databáza je na zotavenie

Screenshot z chybovej správy:

Presné vysvetlenie:

Údaje v súbore MDF sú uložené ako 8 kB stránky. Každá stránka má voliteľné pole kontrolného súčtu.

Ak príkaz DBCC CHECKDB nájde hodnoty kontrolného súčtu na stránke hlavičky, stránke PFS a na niektorých údajových stránkach, sú neplatné a problém nedokáže opraviť, nahlási túto chybu (Správa 824). Ak je korupcia závažná, môže dochádzať k nepretržitým chybám (Správa 824) alebo nasledovaná ďalšou chybou (Správa 7909).

Môžete použiť náš produkt DataNumen SQL Recovery obnoviť údaje z poškodeného súboru MDF a vyriešiť túto chybu.

Ukážkové súbory:

Ukážte poškodené súbory MDF, ktoré spôsobia chybu (Jedna chyba správy 824):

SQL Server verzia Poškodený súbor MDF Súbor MDF opravený DataNumen SQL Recovery
SQL Server 2014 Chyba1_3.mdf Chyba1_3_fixed.mdf

Ukážte poškodené súbory MDF, ktoré spôsobia chybu (Priebežné chyby správy 824):

SQL Server verzia Poškodený súbor MDF Súbor MDF opravený DataNumen SQL Recovery
SQL Server 2014 Chyba1_1.mdf Chyba1_1_fixed.mdf

Ukážte poškodené súbory MDF, ktoré spôsobia chybu (Chyba správy 824, za ktorou nasledovala chyba správy 7909):

SQL Server verzia Poškodený súbor MDF Súbor MDF opravený DataNumen SQL Recovery
SQL Server 2014 Chyba1_2.mdf Chyba1_2_fixed.mdf

 

Referencie:

1. https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-824-database-engine-error?view=sql-server-ver15