simptoom:

By gebruik DBCC CHECKDB met REPAIR_ALLOW_DATA_LOSS parameter om 'n korrupte .MDF-databasis te herstel, soos volg:

DBCC CHECKDB(xxxx, 'REPAIR_ALLOW_DATA_LOSS')

jy sien die volgende foutboodskap:

DBCC-resultate vir 'xxxx'.
CHECKDB het 0 toewysingsfoute en 0 konsekwentheidsfoute in databasis 'xxxx' gevind.
Msg 824, vlak 24, staat 2, reël 8
SQL Server het 'n logiese konsekwentheid-gebaseerde I/O-fout opgespoor: verkeerde kontrolesom (verwag: 0xea8a9a2f; werklik: 0x37adbff8). Dit het plaasgevind tydens 'n lees van bladsy (1:28) in databasis ID 39 by offset 0x00000000038000 in lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server foutlog of stelselgebeurtenislog kan meer besonderhede verskaf. Dit is 'n ernstige fouttoestand wat databasisintegriteit bedreig en moet onmiddellik reggestel word. Voltooi 'n volledige databasiskonsekwentheidskontrole (DBCC CHECKDB). Hierdie fout kan deur baie faktore veroorsaak word; vir meer inligting, sien SQL Server Boeke Aanlyn.

waar 'xxxx.mdf' die naam is van die korrupte MDF-lêer wat herstel word. Alhoewel CHECKDB sê

CHECKDB het 0 toewysingsfoute en 0 konsekwentheidsfoute in databasis 'xxxx' gevind.

Dit is steeds 'n konsekwentheidsfout (Berig 824) in die databasis.

Skermskoot van foutboodskap:

logiese konsekwentheid-gebaseerde I/O-fout: verkeerde kontrolesom

As die korrupsie ernstig is, sal daar deurlopende foutboodskappe wees (Berig 824), soos hieronder:

Msg 824, vlak 24, staat 6, reël 2 SQL Server 'n logiese konsekwentheid-gebaseerde I/O-fout opgespoor: verkeerde kontrolesom (verwag: 0x3d17dfef; werklik: 0xd81748ef). Dit het plaasgevind tydens 'n lees van bladsy (1:0) in databasis ID 39 teen offset 0000000000000000 in lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server foutlog of stelselgebeurtenislog kan meer besonderhede verskaf. Dit is 'n ernstige fouttoestand wat databasisintegriteit bedreig en moet onmiddellik reggestel word. Voltooi 'n volledige databasiskonsekwentheidskontrole (DBCC CHECKDB). Hierdie fout kan deur baie faktore veroorsaak word; vir meer inligting, sien SQL Server Boeke Aanlyn.

Msg 824, vlak 24, staat 6, reël 4 SQL Server 'n logiese konsekwentheid-gebaseerde I/O-fout opgespoor: verkeerde kontrolesom (verwag: 0x3d17dfef; werklik: 0xd81748ef). Dit het plaasgevind tydens 'n lees van bladsy (1:0) in databasis ID 39 teen offset 0000000000000000 in lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server foutlog of stelselgebeurtenislog kan meer besonderhede verskaf. Dit is 'n ernstige fouttoestand wat databasisintegriteit bedreig en moet onmiddellik reggestel word. Voltooi 'n volledige databasiskonsekwentheidskontrole (DBCC CHECKDB). Hierdie fout kan deur baie faktore veroorsaak word; vir meer inligting, sien SQL Server Boeke Aanlyn.

waar 'xxxx.mdf' die naam is van die korrupte MDF-lêer wat herstel word.

Skermskoot van foutboodskap:

As die korrupsie ernstiger is, sal jy dalk sien Berig 7909 volg Berig 824:

DBCC-resultate vir 'xxxx'.
CHECKDB het 0 toewysingsfoute en 0 konsekwentheidsfoute in databasis 'xxxx' gevind.
Msg 824, vlak 24, staat 2, reël 8
SQL Server 'n logiese konsekwentheid-gebaseerde I/O-fout opgespoor: verkeerde kontrolesom (verwag: 0xcfcd2118; werklike: 0x6fc599d6). Dit het plaasgevind tydens 'n lees van bladsy (1:1) in databasis ID 39 by offset 0x00000000002000 in lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server foutlog of stelselgebeurtenislog kan meer besonderhede verskaf. Dit is 'n ernstige fouttoestand wat databasisintegriteit bedreig en moet onmiddellik reggestel word. Voltooi 'n volledige databasiskonsekwentheidskontrole (DBCC CHECKDB). Hierdie fout kan deur baie faktore veroorsaak word; vir meer inligting, sien SQL Server Boeke Aanlyn.
Msg 7909, vlak 20, staat 1, reël 8
Die noodmodus-herstelwerk het misluk. Jy moet vanaf rugsteun terugstel.

waar 'xxxx' die databasisnaam is en 'xxxx.mdf' die databasis fisiese lêernaam is.

nota Berig 7909 is 'n ernstige fout wat in baie situasies kan voorkom wanneer ook al SQL Server dink die databasis is onherstelbaar.

Skermskoot van foutboodskap:

Presiese verduideliking:

Die data in MDF-lêer word as 8KB gestoor bladsye. Elke bladsy het 'n opsionele kontrolesomveld.

As DBCC CHECKDB-opdrag die kontrolesomwaardes in die kopbladsy vind, PFS-bladsy en sommige van die databladsye is ongeldig en dit kan nie die probleem regstel nie, dan sal dit hierdie fout rapporteer (Berig 824). As die korrupton ernstig is, kan daar voortdurend foute wees (Berig 824) of gevolg deur 'n ander fout (Berig 7909).

Jy kan ons produk gebruik DataNumen SQL Recovery om die data van die korrupte MDF-lêer te herstel en hierdie fout op te los.

Voorbeeld lêers:

Voorbeeld van korrupte MDF-lêers wat die fout sal veroorsaak (Enkele boodskap 824-fout):

SQL Server weergawe Korrupte MDF-lêer MDF lêer reggestel deur DataNumen SQL Recovery
SQL Server 2014 Fout1_3.mdf Fout1_3_fixed.mdf

Voorbeeld van korrupte MDF-lêers wat die fout sal veroorsaak (Deurlopende Msg 824 foute):

SQL Server weergawe Korrupte MDF-lêer MDF lêer reggestel deur DataNumen SQL Recovery
SQL Server 2014 Fout1_1.mdf Fout1_1_fixed.mdf

Voorbeeld van korrupte MDF-lêers wat die fout sal veroorsaak (Msg 824-fout gevolg deur Msg 7909-fout):

SQL Server weergawe Korrupte MDF-lêer MDF lêer reggestel deur DataNumen SQL Recovery
SQL Server 2014 Fout1_2.mdf Fout1_2_fixed.mdf

 

Verwysings:

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