Симптом:

При използване 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