Simptom:

Pri uporabi DBCC CHECKDB z REPAIR_ALLOW_DATA_LOSS parameter za popravilo poškodovane baze podatkov .MDF, kot je ta:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

vidite naslednje sporočilo o napaki:

Rezultati DBCC za 'xxxx'.
CHECKDB je našel 0 napak dodelitve in 0 napak skladnosti v zbirki podatkov 'xxxx'.
Msg 824, raven 24, stanje 2, linija 8
SQL Server zaznala napako V / I na osnovi skladnosti: napačna kontrolna vsota (pričakovano: 0xea8a9a2f; dejansko: 0x37adbff8). To se je zgodilo med branjem strani (1:28) v ID-ju baze 39 z odmikom 0x00000000038000 v datoteki 'xxxx.mdf'. Dodatna sporočila v SQL Server dnevnik napak ali sistemski dnevnik dogodkov lahko vsebuje več podrobnosti. To je resna napaka, ki ogroža celovitost baze podatkov in jo je treba takoj popraviti. Izpolnite celotno preverjanje skladnosti baze podatkov (DBCC CHECKDB). To napako lahko povzročijo številni dejavniki; za več informacij glejte SQL Server Knjige na spletu.

kjer je 'xxxx.mdf' ime poškodovane datoteke MDF, ki se popravlja. Čeprav pravi CHECKDB

CHECKDB je našel 0 napak dodelitve in 0 napak skladnosti v zbirki podatkov 'xxxx'.

To je še vedno napaka doslednosti (Sporočilo 824) v zbirki podatkov.

Posnetek zaslona sporočila o napaki:

V / I napaka na osnovi logične skladnosti: napačna kontrolna vsota

Če je korupcija resna, se bodo stalno pojavljala sporočila o napakah (Sporočilo 824), kot spodaj:

Msg 824, raven 24, stanje 6, linija 2 SQL Server zaznala je napako V / I na osnovi skladnosti: napačna kontrolna vsota (pričakovano: 0x3d17dfef; dejanska: 0xd81748ef). To se je zgodilo med branjem strani (1: 0) v ID zbirke 39 z odmikom 0000000000000000 v datoteki 'xxxx.mdf'. Dodatna sporočila v SQL Server dnevnik napak ali sistemski dnevnik dogodkov lahko vsebuje več podrobnosti. To je resna napaka, ki ogroža celovitost baze podatkov in jo je treba takoj popraviti. Izpolnite celotno preverjanje skladnosti baze podatkov (DBCC CHECKDB). To napako lahko povzročijo številni dejavniki; za več informacij glejte SQL Server Knjige na spletu.

Msg 824, raven 24, stanje 6, linija 4 SQL Server zaznala je napako V / I na osnovi skladnosti: napačna kontrolna vsota (pričakovano: 0x3d17dfef; dejanska: 0xd81748ef). To se je zgodilo med branjem strani (1: 0) v ID zbirke 39 z odmikom 0000000000000000 v datoteki 'xxxx.mdf'. Dodatna sporočila v SQL Server dnevnik napak ali sistemski dnevnik dogodkov lahko vsebuje več podrobnosti. To je resna napaka, ki ogroža celovitost baze podatkov in jo je treba takoj popraviti. Izpolnite celotno preverjanje skladnosti baze podatkov (DBCC CHECKDB). To napako lahko povzročijo številni dejavniki; za več informacij glejte SQL Server Knjige na spletu.

kjer je 'xxxx.mdf' ime poškodovane datoteke MDF, ki se popravlja.

Posnetek zaslona sporočila o napaki:

Če je korupcija hujša, boste morda videli Sporočilo 7909 sledi Sporočilo 824:

Rezultati DBCC za 'xxxx'.
CHECKDB je našel 0 napak dodelitve in 0 napak skladnosti v zbirki podatkov 'xxxx'.
Msg 824, raven 24, stanje 2, linija 8
SQL Server zaznala V / I napako na osnovi logične skladnosti: napačna kontrolna vsota (pričakovana: 0xcfcd2118; dejanska: 0x6fc599d6). To se je zgodilo med branjem strani (1: 1) v ID zbirke 39 z odmikom 0x00000000002000 v datoteki 'xxxx.mdf'. Dodatna sporočila v SQL Server dnevnik napak ali sistemski dnevnik dogodkov lahko vsebuje več podrobnosti. To je resna napaka, ki ogroža celovitost baze podatkov in jo je treba takoj popraviti. Izpolnite celotno preverjanje skladnosti baze podatkov (DBCC CHECKDB). To napako lahko povzročijo številni dejavniki; za več informacij glejte SQL Server Knjige na spletu.
Msg 7909, raven 20, stanje 1, linija 8
Popravilo v sili ni uspelo. Obnoviti morate iz varnostne kopije.

kjer je 'xxxx' ime baze podatkov, 'xxxx.mdf' pa je ime fizične datoteke baze podatkov.

Opombe Sporočilo 7909 je resna napaka, ki se lahko zgodi v mnogih primerih kadar koli SQL Server mislim, da zbirke podatkov ni več mogoče obnoviti.

Posnetek zaslona sporočila o napaki:

Natančna razlaga:

Podatki v datoteki MDF so shranjeni kot 8 KB strani. Vsaka stran ima neobvezno polje kontrolne vsote.

Če ukaz DBCC CHECKDB najde vrednosti kontrolne vsote na strani glave, strani PFS in nekaterih podatkovnih straneh neveljavne in težave ne more odpraviti, bo to napako sporočil (Sporočilo 824). Če je pokvarjenost resna, se lahko stalno pojavljajo napake (Sporočilo 824) ali sledi druga napaka (Sporočilo 7909).

Lahko uporabite naš izdelek DataNumen SQL Recovery da obnovite podatke iz poškodovane datoteke MDF in odpravite to napako.

Vzorčne datoteke:

Vzorci poškodovanih datotek MDF, ki bodo povzročile napako (Posamezna napaka Msg 824):

SQL Server različica Poškodovana datoteka MDF Datoteko MDF je popravil DataNumen SQL Recovery
SQL Server 2014 Napaka1_3.mdf Napaka1_3_fixed.mdf

Vzorci poškodovanih datotek MDF, ki bodo povzročile napako (Stalne napake Msg 824):

SQL Server različica Poškodovana datoteka MDF Datoteko MDF je popravil DataNumen SQL Recovery
SQL Server 2014 Napaka1_1.mdf Napaka1_1_popravljeno.mdf

Vzorci poškodovanih datotek MDF, ki bodo povzročile napako (Napaka Msg 824, ki ji sledi napaka Msg 7909):

SQL Server različica Poškodovana datoteka MDF Datoteko MDF je popravil DataNumen SQL Recovery
SQL Server 2014 Napaka1_2.mdf Napaka1_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