Simptom:

Pri korištenju DBCC CHECKDB s 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 pogrešci:

DBCC rezultati za 'xxxx'.
CHECKDB je pronašao 0 pogrešaka dodjele i 0 pogrešaka dosljednosti u bazi podataka "xxxx".
Poruka 824, razina 24, stanje 2, linija 8
SQL Server otkrila je logičku I / O pogrešku zasnovanu na dosljednosti: netočna kontrolna suma (očekuje se: 0xea8a9a2f; stvarna: 0x37adbff8). Dogodilo se tijekom čitanja stranice (1:28) u ID-u baze podataka 39 na odmaku 0x00000000038000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server zapisnik pogrešaka ili dnevnik događaja sustava može pružiti više detalja. Ovo je stanje ozbiljne pogreške koje prijeti integritetu baze podataka i mora se odmah ispraviti. Dovršite potpunu provjeru dosljednosti baze podataka (DBCC CHECKDB). Ovu pogrešku mogu uzrokovati mnogi čimbenici; za više informacija pogledajte SQL Server Knjige na mreži.

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

CHECKDB je pronašao 0 pogrešaka dodjele i 0 pogrešaka dosljednosti u bazi podataka "xxxx".

Ovo je još uvijek pogreška dosljednosti (Poruka 824) u bazi podataka.

Snimka zaslona poruke o pogrešci:

pogreška U / I zasnovana na logičkoj dosljednosti: netočna kontrolna suma

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

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

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

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

Snimka zaslona poruke o pogrešci:

prazan

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

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

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

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

Snimka zaslona poruke o pogrešci:

prazan

Precizno objašnjenje:

Podaci u MDF datoteci pohranjuju se kao 8 KB stranice. Svaka stranica ima neobavezno 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 pogrešku (Poruka 824). Ako je korupcija ozbiljna, mogu postojati stalne pogreške (Poruka 824) ili slijedi druga pogreš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.

Uzorci datoteka:

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

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

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

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

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

SQL Server verzija Oštećena MDF datoteka MDF datoteku popravio DataNumen SQL Recovery
SQL Server 2014 Pogreška1_2.mdf Pogreš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