Simptom:

Kada koristite DBCC CHECKDB sa REPAIR_ALLOW_DATA_LOSS parametar za popravku oštećene .MDF baze podataka, ovako:

DBCC CHECKDB(xxxx, 'REPAIR_ALLOW_DATA_GUBITAK')

vidite sljedeću poruku o grešci:

DBCC rezultati za 'xxxx'.
CHECKDB je pronašao 0 grešaka u alokaciji i 0 grešaka u konzistentnosti u bazi podataka 'xxxx'.
Poruka 824, nivo 24, stanje 2, red 8
SQL Server otkrivena greška I/O zasnovana na logičkoj konzistentnosti: netočna kontrolna suma (očekivana: 0xea8a9a2f; stvarna: 0x37adbff8). Dogodilo se tokom čitanja stranice (1:28) u bazi podataka ID 39 na pomaku 0x00000000038000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik grešaka ili dnevnik sistemskih događaja mogu pružiti više detalja. Ovo je ozbiljno stanje greške koje ugrožava integritet baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru konzistentnosti baze podataka (DBCC CHECKDB). Ova greška može biti uzrokovana mnogim faktorima; za više informacija pogledajte SQL Server Books Online.

gdje je 'xxxx.mdf' naziv oštećene MDF datoteke koja se popravlja. Iako CHECKDB kaže

CHECKDB je pronašao 0 grešaka u alokaciji i 0 grešaka u konzistentnosti u bazi podataka 'xxxx'.

Ovo je još uvijek greška u konzistentnosti (Poruka 824) u bazi podataka.

Snimak ekrana poruke o grešci:

I/O greška zasnovana na logičkoj konzistentnosti: netačna kontrolna suma

Ako je oštećenje ozbiljno, postojat će kontinuirane poruke o grešci (Poruka 824), ispod:

Poruka 824, nivo 24, stanje 6, red 2 SQL Server otkrivena je I/O greška zasnovana na logičkoj konzistentnosti: netačna kontrolna suma (očekivana: 0x3d17dfef; stvarna: 0xd81748ef). Dogodilo se tokom čitanja stranice (1:0) u bazi podataka ID 39 na pomaku 0000000000000000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik grešaka ili dnevnik sistemskih događaja mogu pružiti više detalja. Ovo je ozbiljno stanje greške koje ugrožava integritet baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru konzistentnosti baze podataka (DBCC CHECKDB). Ova greška može biti uzrokovana mnogim faktorima; za više informacija pogledajte SQL Server Books Online.

Poruka 824, nivo 24, stanje 6, red 4 SQL Server otkrivena je I/O greška zasnovana na logičkoj konzistentnosti: netačna kontrolna suma (očekivana: 0x3d17dfef; stvarna: 0xd81748ef). Dogodilo se tokom čitanja stranice (1:0) u bazi podataka ID 39 na pomaku 0000000000000000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik grešaka ili dnevnik sistemskih događaja mogu pružiti više detalja. Ovo je ozbiljno stanje greške koje ugrožava integritet baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru konzistentnosti baze podataka (DBCC CHECKDB). Ova greška može biti uzrokovana mnogim faktorima; za više informacija pogledajte SQL Server Books Online.

gdje je 'xxxx.mdf' naziv oštećene MDF datoteke koja se popravlja.

Snimak ekrana poruke o grešci:

Ako je korupcija teža, možda ćete vidjeti Poruka 7909 slijedi Poruka 824:

DBCC rezultati za 'xxxx'.
CHECKDB je pronašao 0 grešaka u alokaciji i 0 grešaka u konzistentnosti u bazi podataka 'xxxx'.
Poruka 824, nivo 24, stanje 2, red 8
SQL Server otkrivena I/O greška zasnovana na logičkoj konzistentnosti: netačna kontrolna suma (očekivana: 0xcfcd2118; stvarna: 0x6fc599d6). Dogodilo se tokom čitanja stranice (1:1) u bazi podataka ID 39 na pomaku 0x00000000002000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik grešaka ili dnevnik sistemskih događaja mogu pružiti više detalja. Ovo je ozbiljno stanje greške koje ugrožava integritet baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru konzistentnosti baze podataka (DBCC CHECKDB). Ova greška može biti uzrokovana mnogim faktorima; za više informacija pogledajte SQL Server Books Online.
Poruka 7909, nivo 20, stanje 1, red 8
Popravka u hitnom režimu nije uspjela. Morate vratiti iz sigurnosne kopije.

gdje je 'xxxx' naziv baze podataka, a 'xxxx.mdf' je naziv fizičke datoteke baze podataka.

Bilješka Poruka 7909 je ozbiljna greška koja se može pojaviti u mnogim situacijama kad god SQL Server mislim da se baza podataka ne može oporaviti.

Snimak ekrana poruke o grešci:

Precizno objašnjenje:

Podaci u MDF datoteci su pohranjeni kao 8KB Stranice. Svaka stranica ima opcionalno polje kontrolne sume.

Ako naredba DBCC CHECKDB pronađe vrijednosti kontrolne sume na stranici zaglavlja, PFS stranici i neke od stranica sa podacima su nevažeće i ne može ispraviti problem, tada će prijaviti ovu grešku (Poruka 824). Ako je korupcija ozbiljna, može doći do kontinuiranih grešaka (Poruka 824) ili slijedi druga greška (Poruka 7909).

Možete koristiti naš proizvod DataNumen SQL Recovery da biste oporavili podatke iz oštećene MDF datoteke i riješili ovu grešku.

Primjeri fajlova:

Uzorak korumpiranih MDF datoteka koje će uzrokovati grešku (Pojedinačna poruka 824 greška):

SQL Server verzija Oštećena MDF datoteka MDF fajl popravljen od strane DataNumen SQL Recovery
SQL Server 2014 Greška1_3.mdf Greška1_3_fixed.mdf

Uzorak korumpiranih MDF datoteka koje će uzrokovati grešku (Neprekidna poruka 824 greške):

SQL Server verzija Oštećena MDF datoteka MDF fajl popravljen od strane DataNumen SQL Recovery
SQL Server 2014 Greška1_1.mdf Greška1_1_fixed.mdf

Uzorak korumpiranih MDF datoteka koje će uzrokovati grešku (Poruka 824 greška praćena greškom Msg 7909):

SQL Server verzija Oštećena MDF datoteka MDF fajl popravljen od strane DataNumen SQL Recovery
SQL Server 2014 Greška1_2.mdf Greška1_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