Symptom:

Når du bruker DBCC CHECKDB med REPAIR_ALLOW_DATA_LOSS parameter for å reparere en korrupt .MDF-database, slik:

DBCC CHECKDB(xxxx, 'REPAIR_ALLOW_DATA_LOSS')

du ser følgende feilmelding:

DBCC-resultater for 'xxxx'.
CHECKDB fant 0 allokeringsfeil og 0 konsistensfeil i databasen 'xxxx'.
Msg 824, Nivå 24, Stat 2, Linje 8
SQL Server oppdaget en logisk konsistensbasert I/O-feil: feil kontrollsum (forventet: 0xea8a9a2f; faktisk: 0x37adbff8). Det skjedde under lesing av side (1:28) i database ID 39 ved offset 0x00000000038000 i filen 'xxxx.mdf'. Ytterligere meldinger i SQL Server feillogg eller systemhendelseslogg kan gi flere detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes opp umiddelbart. Fullfør en fullstendig databasekonsistenssjekk (DBCC CHECKDB). Denne feilen kan skyldes mange faktorer; for mer informasjon, se SQL Server Bøker på nett.

der 'xxxx.mdf' er navnet på den korrupte MDF-filen som repareres. Selv om CHECKDB sier

CHECKDB fant 0 allokeringsfeil og 0 konsistensfeil i databasen 'xxxx'.

Dette er fortsatt en konsistensfeil(Melding 824) i databasen.

Skjermbilde av feilmelding:

logisk konsistensbasert I/O-feil: feil kontrollsum

Hvis korrupsjonen er alvorlig, vil det være kontinuerlige feilmeldinger (Melding 824), som Nedenfor:

Msg 824, Nivå 24, Stat 6, Linje 2 SQL Server oppdaget en logisk konsistensbasert I/O-feil: feil kontrollsum (forventet: 0x3d17dfef; faktisk: 0xd81748ef). Det skjedde under lesing av side (1:0) i database ID 39 ved offset 0000000000000000 i filen 'xxxx.mdf'. Ytterligere meldinger i SQL Server feillogg eller systemhendelseslogg kan gi flere detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes opp umiddelbart. Fullfør en fullstendig databasekonsistenssjekk (DBCC CHECKDB). Denne feilen kan skyldes mange faktorer; for mer informasjon, se SQL Server Bøker på nett.

Msg 824, Nivå 24, Stat 6, Linje 4 SQL Server oppdaget en logisk konsistensbasert I/O-feil: feil kontrollsum (forventet: 0x3d17dfef; faktisk: 0xd81748ef). Det skjedde under lesing av side (1:0) i database ID 39 ved offset 0000000000000000 i filen 'xxxx.mdf'. Ytterligere meldinger i SQL Server feillogg eller systemhendelseslogg kan gi flere detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes opp umiddelbart. Fullfør en fullstendig databasekonsistenssjekk (DBCC CHECKDB). Denne feilen kan skyldes mange faktorer; for mer informasjon, se SQL Server Bøker på nett.

der 'xxxx.mdf' er navnet på den korrupte MDF-filen som repareres.

Skjermbilde av feilmelding:

Hvis korrupsjonen er mer alvorlig, kan du se Melding 7909 følger Melding 824:

DBCC-resultater for 'xxxx'.
CHECKDB fant 0 allokeringsfeil og 0 konsistensfeil i databasen 'xxxx'.
Msg 824, Nivå 24, Stat 2, Linje 8
SQL Server oppdaget en logisk konsistensbasert I/O-feil: feil kontrollsum (forventet: 0xcfcd2118; faktisk: 0x6fc599d6). Det skjedde under lesing av side (1:1) i database ID 39 ved offset 0x00000000002000 i filen 'xxxx.mdf'. Ytterligere meldinger i SQL Server feillogg eller systemhendelseslogg kan gi flere detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes opp umiddelbart. Fullfør en fullstendig databasekonsistenssjekk (DBCC CHECKDB). Denne feilen kan skyldes mange faktorer; for mer informasjon, se SQL Server Bøker på nett.
Msg 7909, Nivå 20, Stat 1, Linje 8
Reparasjonen i nødmodus mislyktes. Du må gjenopprette fra sikkerhetskopi.

der 'xxxx' er databasenavnet og 'xxxx.mdf' er databasens fysiske filnavn.

Merknader Melding 7909 er en alvorlig feil som kan oppstå i mange situasjoner når som helst SQL Server tror databasen er utenfor gjenoppretting.

Skjermbilde av feilmelding:

Nøyaktig forklaring:

Dataene i MDF-filen er lagret som 8KB sider. Hver side har et valgfritt kontrollsumfelt.

Hvis DBCC CHECKDB-kommandoen finner kontrollsumverdiene på overskriftssiden, PFS-siden og noen av datasidene er ugyldige og den ikke kan rette opp problemet, vil den rapportere denne feilen(Melding 824). Hvis korrupsjonen er alvorlig, kan det være kontinuerlige feil(Melding 824) eller etterfulgt av en annen feil(Melding 7909).

Du kan bruke produktet vårt DataNumen SQL Recovery for å gjenopprette dataene fra den korrupte MDF-filen og løse denne feilen.

Eksempelfiler:

Eksempel på korrupte MDF-filer som vil forårsake feilen (Enkel melding 824-feil):

SQL Server versjon Korrupt MDF-fil MDF-fil fikset av DataNumen SQL Recovery
SQL Server 2014 Error1_3.mdf Error1_3_fixed.mdf

Eksempel på korrupte MDF-filer som vil forårsake feilen (Kontinuerlige Msg 824-feil):

SQL Server versjon Korrupt MDF-fil MDF-fil fikset av DataNumen SQL Recovery
SQL Server 2014 Error1_1.mdf Feil1_1_fixed.mdf

Eksempel på korrupte MDF-filer som vil forårsake feilen (Msg 824 feil etterfulgt av Msg 7909 feil):

SQL Server versjon Korrupt MDF-fil MDF-fil fikset av DataNumen SQL Recovery
SQL Server 2014 Error1_2.mdf Error1_2_fixed.mdf

 

Referanser:

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