Simptomo:

Kiam vi uzas DBCC CHECKDB kun REPARO_ALLOW_DATA_LOSS parametro por ripari koruptan .MDF-datumbazon, jene:

DBCC CHECKDB(xxxx, 'REPAIR_ALLOW_DATA_LOSS')

vi vidas la jenan erarmesaĝon:

DBCC-rezultoj por 'xxxx'.
CHECKDB trovis 0 asigno-erarojn kaj 0 konsekvencajn erarojn en datumbazo 'xxxx'.
Msg 824, Nivelo 24, Ŝtato 2, Linio 8
SQL Server detektis logikan konsekvenc-bazitan I/O-eraron: malĝusta ĉeksumo (atendita: 0xea8a9a2f; reala: 0x37adbff8). Ĝi okazis dum legado de paĝo (1:28) en datumbazo ID 39 ĉe ofseto 0x00000000038000 en dosiero 'xxxx.mdf'. Pliaj mesaĝoj en la SQL Server erarprotokolo aŭ sistema okazaĵprotokolo povas doni pli da detaloj. Ĉi tio estas severa erara kondiĉo, kiu minacas datumbazan integrecon kaj devas esti korektita tuj. Plenumu kompletan datumbazan konsekvencan kontrolon (DBCC CHECKDB). Ĉi tiu eraro povas esti kaŭzita de multaj faktoroj; por pliaj informoj, vidu SQL Server Libroj Retaj.

kie 'xxxx.mdf' estas nomo de la korupta MDF-dosiero riparita. Kvankam CHECKDB diras

CHECKDB trovis 0 asigno-erarojn kaj 0 konsekvencajn erarojn en datumbazo 'xxxx'.

Ĉi tio ankoraŭ estas konsekvenca eraro (Mesaĝo 824) en la datumbazo.

Ekrankopio de erarmesaĝo:

Logika konsekvenc-bazita I/O-eraro: malĝusta ĉeksumo

Se la korupto estas severa, tiam estos kontinuaj erarmesaĝoj (Mesaĝo 824), kiel sube:

Msg 824, Nivelo 24, Ŝtato 6, Linio 2 SQL Server detektis logikan konsekvenc-bazitan I/O-eraron: malĝusta ĉeksumo (atendita: 0x3d17dfef; reala: 0xd81748ef). Ĝi okazis dum legado de paĝo (1:0) en datumbazo ID 39 ĉe ofseto 0000000000000000 en dosiero 'xxxx.mdf'. Pliaj mesaĝoj en la SQL Server erarprotokolo aŭ sistema okazaĵprotokolo povas doni pli da detaloj. Ĉi tio estas severa erara kondiĉo, kiu minacas datumbazan integrecon kaj devas esti korektita tuj. Plenumu kompletan datumbazan konsekvencan kontrolon (DBCC CHECKDB). Ĉi tiu eraro povas esti kaŭzita de multaj faktoroj; por pliaj informoj, vidu SQL Server Libroj Retaj.

Msg 824, Nivelo 24, Ŝtato 6, Linio 4 SQL Server detektis logikan konsekvenc-bazitan I/O-eraron: malĝusta ĉeksumo (atendita: 0x3d17dfef; reala: 0xd81748ef). Ĝi okazis dum legado de paĝo (1:0) en datumbazo ID 39 ĉe ofseto 0000000000000000 en dosiero 'xxxx.mdf'. Pliaj mesaĝoj en la SQL Server erarprotokolo aŭ sistema okazaĵprotokolo povas doni pli da detaloj. Ĉi tio estas severa erara kondiĉo, kiu minacas datumbazan integrecon kaj devas esti korektita tuj. Plenumu kompletan datumbazan konsekvencan kontrolon (DBCC CHECKDB). Ĉi tiu eraro povas esti kaŭzita de multaj faktoroj; por pliaj informoj, vidu SQL Server Libroj Retaj.

kie 'xxxx.mdf' estas nomo de la korupta MDF-dosiero riparita.

Ekrankopio de erarmesaĝo:

Se la korupto estas pli severa, vi eble vidos Mesaĝo 7909 sekvas Mesaĝo 824:

DBCC-rezultoj por 'xxxx'.
CHECKDB trovis 0 asigno-erarojn kaj 0 konsekvencajn erarojn en datumbazo 'xxxx'.
Msg 824, Nivelo 24, Ŝtato 2, Linio 8
SQL Server detektis logikan konsekvenc-bazitan I/O-eraron: malĝusta ĉeksumo (atendita: 0xcfcd2118; reala: 0x6fc599d6). Ĝi okazis dum legado de paĝo (1:1) en datumbazo ID 39 ĉe ofseto 0x00000000002000 en dosiero 'xxxx.mdf'. Pliaj mesaĝoj en la SQL Server erarprotokolo aŭ sistema okazaĵprotokolo povas doni pli da detaloj. Ĉi tio estas severa erara kondiĉo, kiu minacas datumbazan integrecon kaj devas esti korektita tuj. Plenumu kompletan datumbazan konsekvencan kontrolon (DBCC CHECKDB). Ĉi tiu eraro povas esti kaŭzita de multaj faktoroj; por pliaj informoj, vidu SQL Server Libroj Retaj.
Msg 7909, Nivelo 20, Ŝtato 1, Linio 8
La kriz-reĝima riparo malsukcesis. Vi devas restarigi de sekurkopio.

kie 'xxxx' estas la datumbaza nomo kaj 'xxxx.mdf' estas la datumbaza fizika dosiernomo.

noto Mesaĝo 7909 estas severa eraro kiu povas okazi en multaj situacioj kiam ajn SQL Server pensas, ke la datumbazo estas preter reakiro.

Ekrankopio de erarmesaĝo:

Preciza Klarigo:

La datumoj en MDF-dosiero estas konservitaj kiel 8KB paĝoj. Ĉiu paĝo havas laŭvolan ĉeksumkampon.

Se la komando DBCC CHECKDB trovas la kontrolsumajn valorojn en la kappaĝo, PFS-paĝo kaj iuj el la datumpaĝoj estas nevalidaj kaj ĝi ne povas korekti la problemon, tiam ĝi raportos ĉi tiun eraron (Mesaĝo 824). Se la korupto estas severa, povas esti kontinuaj eraroj (Mesaĝo 824) aŭ sekvita de alia eraro (Mesaĝo 7909).

Vi povas uzi nian produkton DataNumen SQL Recovery por reakiri la datumojn de la korupta MDF-dosiero kaj solvi ĉi tiun eraron.

Ekzemplaj Dosieroj:

Specimenu koruptajn MDF-dosierojn, kiuj kaŭzos la eraron (Ununura Msg 824 eraro):

SQL Server versio Koruptita MDF-dosiero MDF-dosiero riparita de DataNumen SQL Recovery
SQL Server 2014 Eraro1_3.mdf Eraro1_3_fixed.mdf

Specimenu koruptajn MDF-dosierojn, kiuj kaŭzos la eraron (Daŭraj Msg 824-eraroj):

SQL Server versio Koruptita MDF-dosiero MDF-dosiero riparita de DataNumen SQL Recovery
SQL Server 2014 Eraro1_1.mdf Eraro1_1_fiksita.mdf

Specimenu koruptajn MDF-dosierojn, kiuj kaŭzos la eraron (Msg 824-eraro sekvita de Msg 7909-eraro):

SQL Server versio Koruptita MDF-dosiero MDF-dosiero riparita de DataNumen SQL Recovery
SQL Server 2014 Eraro1_2.mdf Eraro1_2_fixed.mdf

 

referencoj:

1. https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-824-database-engine-error?view=sql-server-ver15