Simptom:

Kada koristite DBCC CHECKDB sa REPAIR_ALLOW_DATA_LOSS parametar za popravak oštećene baze podataka .MDF, poput ove:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

vidite sljedeću poruku o grešci:

DBCC rezultati za 'xxxx'.
CHECKDB je pronašao 0 grešaka u dodjeli i 0 pogrešaka u dosljednosti u bazi podataka 'xxxx'.
Poruka 824, nivo 24, stanje 2, red 8
SQL Server otkrila je logičku I / O grešku zasnovanu na dosljednosti: neispravna kontrolna suma (očekuje se: 0xea8a9a2f; stvarna: 0x37adbff8). Dogodilo se tokom čitanja stranice (1:28) u bazi podataka ID 39 s pomakom 0x00000000038000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik pogrešaka ili sistemski dnevnik događaja može pružiti više detalja. Ovo je stanje ozbiljne greške koje prijeti integritetu baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru dosljednosti baze podataka (DBCC CHECKDB). Ovu grešku mogu uzrokovati mnogi faktori; 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 dodjeli i 0 pogrešaka u dosljednosti u bazi podataka 'xxxx'.

Ovo je i dalje greška u dosljednosti (Poruka 824) u bazi podataka.

Snimak zaslona poruke o grešci:

I / O greška zasnovana na logičkoj dosljednosti: neispravna kontrolna suma

Ako je korupcija ozbiljna, tada će se neprestano prikazivati ​​poruke o pogreškama (Poruka 824), ispod:

Poruka 824, nivo 24, stanje 6, red 2 SQL Server otkrila je logičku I / O grešku zasnovanu na dosljednosti: neispravna kontrolna suma (očekivana: 0x3d17dfef; stvarna: 0xd81748ef) Dogodilo se tokom čitanja stranice (1: 0) u ID-u baze podataka 39 na ofset 0000000000000000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik pogrešaka ili sistemski dnevnik događaja može pružiti više detalja. Ovo je stanje ozbiljne greške koje prijeti integritetu baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru dosljednosti baze podataka (DBCC CHECKDB). Ovu grešku mogu uzrokovati mnogi faktori; za više informacija pogledajte SQL Server Books Online.

Poruka 824, nivo 24, stanje 6, red 4 SQL Server otkrila je logičku I / O grešku zasnovanu na dosljednosti: neispravna kontrolna suma (očekivana: 0x3d17dfef; stvarna: 0xd81748ef) Dogodilo se tokom čitanja stranice (1: 0) u ID-u baze podataka 39 na ofset 0000000000000000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik pogrešaka ili sistemski dnevnik događaja može pružiti više detalja. Ovo je stanje ozbiljne greške koje prijeti integritetu baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru dosljednosti baze podataka (DBCC CHECKDB). Ovu grešku mogu uzrokovati mnogi faktori; za više informacija pogledajte SQL Server Books Online.

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

Snimak zaslona poruke o grešci:

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

DBCC rezultati za 'xxxx'.
CHECKDB je pronašao 0 grešaka u dodjeli i 0 pogrešaka u dosljednosti u bazi podataka 'xxxx'.
Poruka 824, nivo 24, stanje 2, red 8
SQL Server otkrio logičku I / O grešku zasnovanu na dosljednosti: neispravna kontrolna suma (očekuje se: 0xcfcd2118; stvarna: 0x6fc599d6). Dogodilo se tokom čitanja stranice (1: 1) u bazi podataka ID 39 na odmaku 0x00000000002000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server dnevnik pogrešaka ili sistemski dnevnik događaja može pružiti više detalja. Ovo je stanje ozbiljne greške koje prijeti integritetu baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru dosljednosti baze podataka (DBCC CHECKDB). Ovu grešku mogu uzrokovati mnogi faktori; za više informacija pogledajte SQL Server Books Online.
Poruka 7909, nivo 20, stanje 1, red 8
Popravak u hitnom načinu nije uspio. Morate ga vratiti iz sigurnosne kopije.

gdje je 'xxxx' ime baze podataka, a 'xxxx.mdf' ime 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 zaslona poruke o grešci:

Prazno

Precizno objašnjenje:

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

Ako DBCC CHECKDB naredba pronađe vrijednosti kontrolne sume na stranici zaglavlja, PFS stranici i nekim stranicama podataka nevaljane i ne može ispraviti problem, tada će prijaviti ovu grešku (Poruka 824). Ako je korupcija ozbiljna, mogu postojati stalne pogreške (Poruka 824) ili slijedi druga greška (Poruka 7909).

Možete koristiti naš proizvod DataNumen SQL Recovery za oporavak podataka iz oštećene MDF datoteke i rješavanje ove pogreške.

Primjeri datoteka:

Uzorak oštećenih MDF datoteka koje će uzrokovati grešku (Pojedinačna greška poruke 824):

SQL Server verzija Oštećena MDF datoteka MDF datoteku popravio DataNumen SQL Recovery
SQL Server 2014 Greška1_3.mdf Greška1_3_fixed.mdf

Uzorak oštećenih MDF datoteka koje će uzrokovati grešku (Stalne greške poruke 824):

SQL Server verzija Oštećena MDF datoteka MDF datoteku popravio DataNumen SQL Recovery
SQL Server 2014 Greška1_1.mdf Greška1_1_fixed.mdf

Uzorak oštećenih MDF datoteka koje će uzrokovati grešku (Pogreška msg 824 praćena greškom msg 7909):

SQL Server verzija Oštećena MDF datoteka MDF datoteku popravio 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