Symptom:

När du bifogar en .MDF-databas i SQL Servervisas följande felmeddelande:

SQL Server upptäckte ett logiskt konsistensbaserat I / O-fel: fel kontrollsumma (förväntat: 0x2abc3894; faktisk: 0x2ebe208e). Det inträffade under en avläsning av sida (1: 1) i databas-ID 12 vid förskjutning 0x00000000002000 i filen 'xxx.mdf'. Ytterligare meddelanden i SQL Server fellogg eller systemhändelselogg kan ge mer detaljer. Detta är ett allvarligt felvillkor som hotar databasens integritet och måste korrigeras omedelbart. Gör en fullständig kontroll av databasens konsistens (DBCC CHECKDB). Detta fel kan orsakas av många faktorer; för mer information, se SQL Server Böcker online. (Microsoft SQL Server, Fel: 824)

där 'xxx.mdf' är namnet på MDF-filen som nås.

Ibland kan du .MDF-databasen bifogas framgångsrikt. Men när du försöker köra ett SQL-uttalande, till exempel

VÄLJ * FRÅN [TestDB]. [Dbo]. [Test_table_1]

du får också ovanstående felmeddelande.

Skärmdump av felmeddelande:

Exakt förklaring:

Data i MDF-filen lagras som sidor, varje sida är 8KB. Varje sida har ett valfritt kontrollsummafält.

If SQL Server finner att kontrollsummans värden på vissa datasidor är ogiltiga, då rapporterar det detta fel.

Du kan använda vår produkt DataNumen SQL Recovery för att återställa data från den skadade MDF-filen och lösa detta fel.

Exempel på filer:

Exempel på skadade MDF-filer som orsakar felet:

SQL Server version Skadad MDF-fil MDF-fil fixad av DataNumen SQL Recovery
SQL Server 2005 Fel4_1.mdf Fel4_1_fixed.mdf
SQL Server 2008 R2 Fel4_2.mdf Fel4_2_fixed.mdf
SQL Server 2012 Fel4_3.mdf Fel4_3_fixed.mdf
SQL Server 2014 Fel4_4.mdf Fel4_4_fixed.mdf