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 |