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 tildelingsfeil 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 en lesing av side (1:28) i database-ID 39 ved forskyvning 0x00000000038000 i filen 'xxxx.mdf'. Ytterligere meldinger i SQL Server feillogg eller systemhendelseslogg kan gi mer detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes umiddelbart. Fullfør en fullstendig kontroll av databasekonsistens (DBCC CHECKDB). Denne feilen kan være forårsaket av mange faktorer; for mer informasjon, se SQL Server Bøker online.

hvor 'xxxx.mdf' er navnet på den korrupte MDF-filen som blir reparert. Selv om CHECKDB sier

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

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

Skjermbilde av feilmelding:

logisk konsistensbasert I / O-feil: feil kontrollsum

Hvis korrupsjonen er alvorlig, vil det være kontinuerlige feilmeldinger (Msg 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 en avlesning 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 mer detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes umiddelbart. Fullfør en fullstendig kontroll av databasekonsistens (DBCC CHECKDB). Denne feilen kan være forårsaket av mange faktorer; for mer informasjon, se SQL Server Bøker online.

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 en avlesning 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 mer detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes umiddelbart. Fullfør en fullstendig kontroll av databasekonsistens (DBCC CHECKDB). Denne feilen kan være forårsaket av mange faktorer; for mer informasjon, se SQL Server Bøker online.

hvor 'xxxx.mdf' er navnet på den korrupte MDF-filen som blir reparert.

Skjermbilde av feilmelding:

blank

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

DBCC-resultater for 'xxxx'.
CHECKDB fant 0 tildelingsfeil 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 en avlesning av side (1: 1) i database-ID 39 ved forskyvning 0x00000000002000 i filen 'xxxx.mdf'. Ytterligere meldinger i SQL Server feillogg eller systemhendelseslogg kan gi mer detaljer. Dette er en alvorlig feiltilstand som truer databaseintegriteten og må rettes umiddelbart. Fullfør en fullstendig kontroll av databasekonsistens (DBCC CHECKDB). Denne feilen kan være forårsaket av mange faktorer; for mer informasjon, se SQL Server Bøker online.
Msg 7909, Nivå 20, Stat 1, Linje 8
Reparasjonen i nødmodus mislyktes. Du må gjenopprette fra sikkerhetskopien.

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

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

Skjermbilde av feilmelding:

blank

Nøyaktig forklaring:

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

Hvis DBCC CHECKDB-kommandoen finner kontrollsummen i topptekstsiden, PFS-siden og noen av datasidene er ugyldige og den ikke kan rette opp problemet, vil den rapportere denne feilen (Msg 824). Hvis ødeleggelsen er alvorlig, kan det være kontinuerlige feil (Msg 824) eller etterfulgt av en annen feil (Msg 7909).

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

Eksempel filer:

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

SQL Server versjon Korrupt MDF-fil MDF-fil løst av DataNumen SQL Recovery
SQL Server 2014 Feil1_3.mdf Feil1_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 løst av DataNumen SQL Recovery
SQL Server 2014 Feil1_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 løst av DataNumen SQL Recovery
SQL Server 2014 Feil1_2.mdf Feil1_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