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')

u sien die volgende foutberig:

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 konsekwensie-gebaseerde I / O-fout opgespoor: verkeerde kontrolesom (verwag: 0xea8a9a2f; werklike: 0x37adbff8). Dit het plaasgevind tydens 'n lees van bladsy (1:28) in databasis-ID 39 teen 0x00000000038000 in lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server fout log of stelsel gebeurtenis log kan meer besonderhede bevat. Dit is 'n ernstige fouttoestand wat die databasis se integriteit bedreig, en dit moet onmiddellik reggestel word. Voltooi 'n volledige bestendigheidskontrole van die databasis (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 konsekwente fout (Msg 824) in die databasis.

Kiekie van foutboodskap:

logiese konsekwentheidsgebaseerde I / O-fout: verkeerde kontrolesom

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

Msg 824, vlak 24, staat 6, reël 2 SQL Server 'n logiese konsekwensie-gebaseerde I / O-fout opgespoor: verkeerde kontrolesom (verwag: 0x3d17dfef; werklike: 0xd81748ef). Dit het voorgekom tydens die lees van bladsy (1: 0) in databasis-ID 39 by die offset 0000000000000000 in lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server fout log of stelsel gebeurtenis log kan meer besonderhede bevat. Dit is 'n ernstige fouttoestand wat die databasis se integriteit bedreig, en dit moet onmiddellik reggestel word. Voltooi 'n volledige bestendigheidskontrole van die databasis (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 konsekwensie-gebaseerde I / O-fout opgespoor: verkeerde kontrolesom (verwag: 0x3d17dfef; werklike: 0xd81748ef). Dit het voorgekom tydens die lees van bladsy (1: 0) in databasis-ID 39 by die offset 0000000000000000 in lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server fout log of stelsel gebeurtenis log kan meer besonderhede bevat. Dit is 'n ernstige fouttoestand wat die databasis se integriteit bedreig, en dit moet onmiddellik reggestel word. Voltooi 'n volledige bestendigheidskontrole van die databasis (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.

Kiekie van foutboodskap:

As die korrupsie erger is, kan u sien Msg 7909 volg Msg 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 konsekwentheidsgebaseerde I / O-fout opgespoor: verkeerde kontrolesom (verwag: 0xcfcd2118; werklike: 0x6fc599d6). Dit het voorgekom tydens die lees van bladsy (1: 1) in die databasis-ID 39 teen 0x00000000002000 in die lêer 'xxxx.mdf'. Bykomende boodskappe in die SQL Server fout log of stelsel gebeurtenis log kan meer besonderhede bevat. Dit is 'n ernstige fouttoestand wat die databasis se integriteit bedreig, en dit moet onmiddellik reggestel word. Voltooi 'n volledige bestendigheidskontrole van die databasis (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 herstel van die noodtoestand het misluk. U moet herstel vanaf die rugsteun.

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

nota Msg 7909 is 'n ernstige fout wat in baie situasies kan voorkom SQL Server dink die databasis kan nie herstel word nie.

Kiekie van foutboodskap:

leeg

Presiese verduideliking:

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

As die DBCC CHECKDB-opdrag die kontrolesomwaardes in die opskrifbladsy, PFS-bladsy en sommige van die datablaaie vind, is ongeldig en dit kan die probleem nie regstel nie, sal dit hierdie fout rapporteer (Msg 824). As die beskadiging ernstig is, kan daar voortdurende eros wees (Msg 824) of gevolg deur 'n ander fout (Msg 7909).

U 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 korrupte MDF-lêers wat die fout sal veroorsaak (Enkele Msg 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 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 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