Symptom:

När man använder DBCC CHECKDB med REPAIR_ALLOW_DATA_LOSS parameter för att reparera en korrupt .MDF-databas, så här:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

visas följande felmeddelande:

Msg 5028, Nivå 16, Stat 4, Linje 4
Systemet kunde inte aktivera tillräckligt med databasen för att bygga om loggen.
DBCC-resultat för 'xxxx'.
CHECKDB hittade 0 allokeringsfel och 0 konsistensfel i databasen 'xxxx'.
Msg 7909, Nivå 20, Stat 1, Linje 4
Reparationen i nödläge misslyckades. Du måste återställa från säkerhetskopian.

där 'xxxx' är namnet på den korrupta MDF-databasen som repareras.

Meddelande 5028 fel är varken ett allokeringsfel eller ett konsistensfel.

Medan Meddelande 7909 är ett allvarligt fel som kan uppstå i många situationer när som helst SQL Server tror databasen är bortom återhämtning.

Skärmdump av felmeddelande:

Exakt förklaring:

Felmeddelandet (Meddelande 5028) verkar vara relaterat till LOG-filen. Detta är dock en felrapport. Det faktiska problemet orsakas fortfarande av korruption i MDF-databasen.

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å korrupta MDF-filer som kommer att orsaka Meddelande 5028 fel:

SQL Server version Skadad MDF-fil MDF-fil fixad av DataNumen SQL Recovery
SQL Server 2014 Fel3.mdf Fel3_fixed.mdf