Simptom:

Pri korištenju DBCC CHECKDB s REPAIR_ALLOW_DATA_LOSS parametar za popravak oštećene .MDF baze podataka, ovako:

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 konzistentnosti u bazi podataka 'xxxx'.
Poruka 824, razina 24, stanje 2, linija 8
SQL Server otkrivena I/O pogreška temeljena na logičkoj dosljednosti: netočan kontrolni zbroj (očekivano: 0xea8a9a2f; stvarno: 0x37adbff8). Dogodilo se tijekom čitanja stranice (1:28) u bazi podataka ID 39 na pomaku 0x00000000038000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server zapisnik pogrešaka ili zapisnik događaja sustava mogu dati više detalja. Ovo je ozbiljno stanje pogreške koje ugrožava integritet 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 Online.

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 konzistentnosti u bazi podataka 'xxxx'.

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

Snimka zaslona poruke pogreške:

I/O pogreška temeljena na logičkoj dosljednosti: netočan kontrolni zbroj

Ako je oštećenje ozbiljno, postojat će stalne poruke o pogrešci (Poruka 824), kao ispod:

Poruka 824, razina 24, stanje 6, linija 2 SQL Server otkrivena I/O pogreška temeljena na logičkoj dosljednosti: netočan kontrolni zbroj (očekivano: 0x3d17dfef; stvarno: 0xd81748ef). Dogodilo se tijekom čitanja stranice (1:0) u bazi podataka ID 39 na pomaku 0000000000000000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server zapisnik pogrešaka ili zapisnik događaja sustava mogu dati više detalja. Ovo je ozbiljno stanje pogreške koje ugrožava integritet 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 Online.

Poruka 824, razina 24, stanje 6, linija 4 SQL Server otkrivena I/O pogreška temeljena na logičkoj dosljednosti: netočan kontrolni zbroj (očekivano: 0x3d17dfef; stvarno: 0xd81748ef). Dogodilo se tijekom čitanja stranice (1:0) u bazi podataka ID 39 na pomaku 0000000000000000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server zapisnik pogrešaka ili zapisnik događaja sustava mogu dati više detalja. Ovo je ozbiljno stanje pogreške koje ugrožava integritet 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 Online.

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

Snimka zaslona poruke pogreške:

Ako je korupcija teža, 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 konzistentnosti u bazi podataka 'xxxx'.
Poruka 824, razina 24, stanje 2, linija 8
SQL Server otkrivena I/O pogreška temeljena na logičkoj dosljednosti: netočan kontrolni zbroj (očekivano: 0xcfcd2118; stvarno: 0x6fc599d6). Dogodilo se tijekom čitanja stranice (1:1) u bazi podataka ID 39 na pomaku 0x00000000002000 u datoteci 'xxxx.mdf'. Dodatne poruke u SQL Server zapisnik pogrešaka ili zapisnik događaja sustava mogu dati više detalja. Ovo je ozbiljno stanje pogreške koje ugrožava integritet 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 Online.
Poruka 7909, razina 20, stanje 1, linija 8
Popravak u hitnom načinu rada nije uspio. Morate vratiti iz sigurnosne kopije.

gdje je 'xxxx' naziv baze podataka, a 'xxxx.mdf' je 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 je baza podataka nepovratna.

Snimka zaslona poruke pogreške:

Precizno objašnjenje:

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

Ako naredba DBCC CHECKDB pronađe vrijednosti kontrolnog zbroja na stranici zaglavlja, PFS stranica i neke od stranica s podacima nisu valjane i ne može ispraviti problem, prijavit će ovu pogrešku (Poruka 824). Ako je korupcija ozbiljna, može doći do kontinuiranih grešaka (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.

Ogledne datoteke:

Primjeri oštećenih MDF datoteka koje će uzrokovati pogrešku (Pogreška jedne poruke 824):

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

Primjeri oštećenih MDF datoteka koje će uzrokovati pogrešku (Kontinuirane pogreš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_fiksno.mdf

Primjeri oštećenih MDF datoteka koje će uzrokovati pogrešku (Pogreška Msg 824 nakon koje slijedi pogreška Msg 7909):

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