Tünet:

Használat során DBCC CHECKDB val vel REPAIR_ALLOW_DATA_LOSS paraméter a sérült .MDF adatbázis javításához, például:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

a következő hibaüzenetet látja:

DBCC találatok a következőre: 'xxxx'.
A CHECKDB 0 allokációs hibát és 0 konzisztencia hibát talált az 'xxxx' adatbázisban.
824 üzenet, 24 szint, State 2, 8 vonal
SQL Server logikai konzisztencia-alapú I / O hibát észlelt: helytelen ellenőrző összeg (várható: 0xea8a9a2f; tényleges: 0x37adbff8). A 1-es adatbázis-azonosító (28:39) oldalának beolvasása során történt a 0x00000000038000 eltolással az 'xxxx.mdf' fájlban. További üzenetek a SQL Server hibanapló vagy a rendszer eseménynaplója adhat részletesebb információkat. Ez egy súlyos hibaállapot, amely veszélyezteti az adatbázis integritását, és azonnal javítani kell. Töltse ki a teljes adatbázis-konzisztencia-ellenőrzést (DBCC CHECKDB). Ezt a hibát számos tényező okozhatja; további információkért lásd: SQL Server Online könyvek.

ahol az 'xxxx.mdf' a javítandó MDF fájl neve. Bár a CHECKDB azt mondja

A CHECKDB 0 allokációs hibát és 0 konzisztencia hibát talált az 'xxxx' adatbázisban.

Ez továbbra is következetességi hiba (Ms 824) az adatbázisban.

A hibaüzenet képernyőképe:

logikai konzisztencia alapú I / O hiba: helytelen ellenőrző összeg

Ha a korrupció súlyos, akkor folyamatosan hibaüzenetek jelennek meg (Ms 824), az alábbi:

824 üzenet, 24 szint, State 6, 2 vonal SQL Server logikai konzisztencia-alapú I / O hibát észlelt: helytelen ellenőrző összeg (várható: 0x3d17dfef; tényleges: 0xd81748ef). A 1-es adatbázis-azonosító (0: 39) oldalának beolvasása során történt a 0000000000000000 eltolással az 'xxxx.mdf' fájlban. További üzenetek a SQL Server hibanapló vagy a rendszer eseménynaplója adhat részletesebb információkat. Ez egy súlyos hibaállapot, amely veszélyezteti az adatbázis integritását, és azonnal javítani kell. Töltse ki a teljes adatbázis-konzisztencia-ellenőrzést (DBCC CHECKDB). Ezt a hibát számos tényező okozhatja; további információkért lásd: SQL Server Online könyvek.

824 üzenet, 24 szint, State 6, 4 vonal SQL Server logikai konzisztencia-alapú I / O hibát észlelt: helytelen ellenőrző összeg (várható: 0x3d17dfef; tényleges: 0xd81748ef). A 1-es adatbázis-azonosító (0: 39) oldalának beolvasása során történt a 0000000000000000 eltolással az 'xxxx.mdf' fájlban. További üzenetek a SQL Server hibanapló vagy a rendszer eseménynaplója adhat részletesebb információkat. Ez egy súlyos hibaállapot, amely veszélyezteti az adatbázis integritását, és azonnal javítani kell. Töltse ki a teljes adatbázis-konzisztencia-ellenőrzést (DBCC CHECKDB). Ezt a hibát számos tényező okozhatja; további információkért lásd: SQL Server Online könyvek.

ahol az 'xxxx.mdf' a javítandó MDF fájl neve.

A hibaüzenet képernyőképe:

Ha a korrupció súlyosabb, akkor láthatja Ms 7909 következik Ms 824:

DBCC találatok a következőre: 'xxxx'.
A CHECKDB 0 allokációs hibát és 0 konzisztencia hibát talált az 'xxxx' adatbázisban.
824 üzenet, 24 szint, State 2, 8 vonal
SQL Server logikai konzisztencia-alapú I / O hibát észlelt: helytelen ellenőrző összeg (várható: 0xcfcd2118; tényleges: 0x6fc599d6). A 1-es adatbázis-azonosító (1: 39) oldalának olvasása során történt a 0x00000000002000 eltolással az 'xxxx.mdf' fájlban. További üzenetek a SQL Server hibanapló vagy a rendszer eseménynaplója adhat részletesebb információkat. Ez egy súlyos hibaállapot, amely veszélyezteti az adatbázis integritását, és azonnal javítani kell. Töltse ki a teljes adatbázis-konzisztencia-ellenőrzést (DBCC CHECKDB). Ezt a hibát számos tényező okozhatja; további információkért lásd: SQL Server Online könyvek.
7909 üzenet, 20 szint, State 1, 8 vonal
A vészhelyzeti mód javítása nem sikerült. Vissza kell állítania a biztonsági másolatból.

ahol az „xxxx” az adatbázis neve, az „xxxx.mdf” pedig az adatbázis fizikai fájlneve.

Megjegyzések Ms 7909 súlyos hiba, amely sok helyzetben előfordulhat SQL Server szerintem az adatbázis túl van a helyreállításon.

A hibaüzenet képernyőképe:

üres

Pontos magyarázat:

Az MDF fájlban lévő adatok 8KB-ként vannak tárolva oldalak. Minden oldalon van egy opcionális ellenőrző összeg mező.

Ha a DBCC CHECKDB parancs a fejléc oldalon, a PFS oldalon és néhány adatoldalon érvénytelen, és nem tudja kijavítani a problémát, akkor jelenteni fogja ezt a hibát (Ms 824). Ha a korrupton súlyos, folyamatos erróziókat (Ms 824) vagy egy újabb hiba követi (Ms 7909).

Használhatja termékünket DataNumen SQL Recovery helyreállítani az adatokat a sérült MDF fájlból és megoldani ezt a hibát.

Minta fájlok:

Minta a hibát okozó sérült MDF fájlokból (Single Msg 824 hiba):

SQL Server változat Sérült MDF fájl MDF fájl javítva DataNumen SQL Recovery
SQL Server 2014 Hiba1_3.mdf Hiba1_3_javítva.mdf

Minta a hibát okozó sérült MDF fájlokból (Folyamatos Msg 824 hibák):

SQL Server változat Sérült MDF fájl MDF fájl javítva DataNumen SQL Recovery
SQL Server 2014 Hiba1_1.mdf Hiba1_1_fixed.mdf

Minta a hibát okozó sérült MDF fájlokból (Msg 824 hiba, majd Msg 7909 hiba):

SQL Server változat Sérült MDF fájl MDF fájl javítva DataNumen SQL Recovery
SQL Server 2014 Hiba1_2.mdf Hiba1_2_javítva.mdf

 

Referenciák:

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