Симптом:
При използване DBCC CHECKDB с REPAIR_ALLOW_DATA_LOSS параметър за поправяне на повредена база данни .MDF, като тази:
DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')
виждате следното съобщение за грешка:
Msg 5028, ниво 16, състояние 4, линия 4
Системата не можа да активира достатъчно база данни, за да възстанови дневника.
DBCC резултати за 'xxxx'.
CHECKDB намери 0 грешки при разпределение и 0 грешки в последователността в базата данни „xxxx“.
Msg 7909, ниво 20, състояние 1, линия 4
Ремонтът в авариен режим не бе успешен. Трябва да възстановите от резервно копие.
където 'xxxx' е името на повредената база данни на MDF, която се ремонтира.
Съобщение 5028 грешка не е нито грешка при разпределение, нито грешка в последователността.
Докато Съобщение 7909 е сериозна грешка, която може да възникне в много ситуации, когато и да е SQL Server мисля, че базата данни е извън възстановяването.
Екранна снимка на съобщението за грешка:
Точно обяснение:
Съобщението за грешка (Съобщение 5028) изглежда е свързано с LOG файла. Това обаче е погрешно докладване. Действителният проблем все още е причинен от повреждането на базата данни MDF.
Можете да използвате нашия продукт DataNumen SQL Recovery за да възстановите данните от повредения MDF файл и да разрешите тази грешка.
Примерни файлове:
Примерни повредени MDF файлове, които ще причинят Съобщение 5028 грешка:
SQL Server версия | Повреден MDF файл | MDF файл, фиксиран от DataNumen SQL Recovery |
SQL Server 2014 | Грешка3.mdf | Грешка3_fixed.mdf |