Příznak:

Při použití DBCC CHECKDB s REPAIR_ALLOW_DATA_LOSS parametr pro opravu poškozené databáze .MDF, například:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

zobrazí se následující chybová zpráva:

Výsledky DBCC pro „xxxx“.
CHECKDB našel v databázi 'xxxx' 0 alokačních chyb a 0 chyb konzistence.
Msg 824, úroveň 24, stav 2, řádek 8
SQL Server detekována logická chyba I / O založená na konzistenci: nesprávný kontrolní součet (očekáváno: 0xea8a9a2f; skutečné: 0x37adbff8). Došlo k němu během čtení stránky (1:28) v databázi ID 39 na offsetu 0x00000000038000 v souboru 'xxxx.mdf'. Další zprávy v SQL Server protokol chyb nebo protokol systémových událostí mohou poskytnout více podrobností. Toto je závažný chybový stav, který ohrožuje integritu databáze a musí být okamžitě opraven. Dokončete úplnou kontrolu konzistence databáze (DBCC CHECKDB). Tato chyba může být způsobena mnoha faktory; Další informace viz SQL Server Knihy online.

kde „xxxx.mdf“ je název poškozeného souboru MDF, který je opravován. Ačkoli říká CHECKDB

CHECKDB našel v databázi 'xxxx' 0 alokačních chyb a 0 chyb konzistence.

Stále se jedná o chybu konzistence (Zpráva 824) v databázi.

Screenshot chybové zprávy:

logická chyba I / O založená na konzistenci: nesprávný kontrolní součet

Pokud je poškození závažné, budou se neustále zobrazovat chybové zprávy (Zpráva 824), jak je uvedeno níže:

Msg 824, úroveň 24, stav 6, řádek 2 SQL Server zjistil logickou chybu I / O založenou na konzistenci: nesprávný kontrolní součet (očekávaný: 0x3d17dfef; skutečný: 0xd81748ef). Došlo k němu během čtení stránky (1: 0) v databázi ID 39 na offsetu 0000000000000000 v souboru 'xxxx.mdf'. Další zprávy v SQL Server protokol chyb nebo protokol systémových událostí mohou poskytnout více podrobností. Toto je závažný chybový stav, který ohrožuje integritu databáze a musí být okamžitě opraven. Dokončete úplnou kontrolu konzistence databáze (DBCC CHECKDB). Tato chyba může být způsobena mnoha faktory; Další informace viz SQL Server Knihy online.

Msg 824, úroveň 24, stav 6, řádek 4 SQL Server zjistil logickou chybu I / O založenou na konzistenci: nesprávný kontrolní součet (očekávaný: 0x3d17dfef; skutečný: 0xd81748ef). Došlo k němu během čtení stránky (1: 0) v databázi ID 39 na offsetu 0000000000000000 v souboru 'xxxx.mdf'. Další zprávy v SQL Server protokol chyb nebo protokol systémových událostí mohou poskytnout více podrobností. Toto je závažný chybový stav, který ohrožuje integritu databáze a musí být okamžitě opraven. Dokončete úplnou kontrolu konzistence databáze (DBCC CHECKDB). Tato chyba může být způsobena mnoha faktory; Další informace viz SQL Server Knihy online.

kde „xxxx.mdf“ je název poškozeného souboru MDF, který je opravován.

Screenshot chybové zprávy:

Pokud je korupce závažnější, můžete vidět Zpráva 7909 následovně Zpráva 824:

Výsledky DBCC pro „xxxx“.
CHECKDB našel v databázi 'xxxx' 0 alokačních chyb a 0 chyb konzistence.
Msg 824, úroveň 24, stav 2, řádek 8
SQL Server zjistil logickou chybu I / O založenou na konzistenci: nesprávný kontrolní součet (očekávaný: 0xcfcd2118; skutečný: 0x6fc599d6). Došlo k němu během čtení stránky (1: 1) v databázi ID 39 na offsetu 0x00000000002000 v souboru 'xxxx.mdf'. Další zprávy v SQL Server protokol chyb nebo protokol systémových událostí mohou poskytnout více podrobností. Toto je závažný chybový stav, který ohrožuje integritu databáze a musí být okamžitě opraven. Dokončete úplnou kontrolu konzistence databáze (DBCC CHECKDB). Tato chyba může být způsobena mnoha faktory; Další informace viz SQL Server Knihy online.
Msg 7909, úroveň 20, stav 1, řádek 8
Oprava v nouzovém režimu se nezdařila. Musíte obnovit ze zálohy.

kde „xxxx“ je název databáze a „xxxx.mdf“ je název fyzického souboru databáze.

Poznámka Zpráva 7909 je závažná chyba, která může nastat v mnoha situacích kdykoli SQL Server myslíte si, že databáze je mimo zotavení.

Screenshot chybové zprávy:

Přesné vysvětlení:

Data v souboru MDF jsou uložena jako 8 kB stránky. Každá stránka má volitelné pole kontrolního součtu.

Pokud příkaz DBCC CHECKDB najde hodnoty kontrolního součtu na stránce záhlaví, stránce PFS a na některých datových stránkách jsou neplatné a nemůže problém vyřešit, nahlásí tuto chybu (Zpráva 824). Pokud je korupce závažná, může docházet k nepřetržitému mazání (Zpráva 824) nebo následovaná další chybou (Zpráva 7909).

Můžete použít náš produkt DataNumen SQL Recovery obnovit data z poškozeného souboru MDF a vyřešit tuto chybu.

Ukázkové soubory:

Ukázka poškozených souborů MDF, které způsobí chybu (Jedna chyba 824 zprávy):

SQL Server verze Poškozený soubor MDF Soubor MDF opraven DataNumen SQL Recovery
SQL Server 2014 Chyba1_3.mdf Chyba1_3_fixed.mdf

Ukázka poškozených souborů MDF, které způsobí chybu (Trvalé chyby 824 zpráv):

SQL Server verze Poškozený soubor MDF Soubor MDF opraven DataNumen SQL Recovery
SQL Server 2014 Chyba1_1.mdf Chyba1_1_fixed.mdf

Ukázka poškozených souborů MDF, které způsobí chybu (Chyba zprávy 824 následovaná chybou zprávy 7909):

SQL Server verze Poškozený soubor MDF Soubor MDF opraven DataNumen SQL Recovery
SQL Server 2014 Chyba1_2.mdf Chyba1_2_fixed.mdf

 

Reference:

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