Симптом:

Когато използвате DBCC CHECKDB с параметър REPAIR_ALLOW_DATA_LOSS за ремонт на повреденa .MDF база данни, като този:

DBCC CHECKDB(xxxx, ‘REPAIR_ALLOW_DATA_LOSS’)

виждате следното съобщение за грешка:

Съобщение 5028, ниво 16, състояние 4, линия 4
Системата не можеше да активира достатъчно от базата данни, за да възстанови дневника.
DBCC резултати за ‘xxxx’.
CHECKDB намери 0 грешки при разпределението и 0 консистентни грешки в базата данни ‘xxxx’.
Съобщение 7909, ниво 20, състояние 1, линия 4
Възстановяването в аварийен режим не бе успешно. Трябва да възстановите от резервно копие.

където 'xxxx' е името на повредената MDF база данни, която се ремонтира.

Грешка Msg 5028 не е нито грешка в разпределението, нито грешка в последователността.

Докато Msg 7909 е тежка грешка, която може да се появи в много ситуации, когато SQL Server смята, че базата данни е извън възможността за възстановяване.

Екранна снимка на съобщението за грешка:

Точно обяснение:

Съобщението за грешка (Msg 5028) изглежда е свързано с LOG файла. Въпреки това, това е неточен доклад. Същинската проблема все още е причинена от повредата на MDF базата данни.

Можете да използвате нашия продукт DataNumen SQL Recovery за възстановяване на данните от повредения MDF файл и да разрешите тази грешка.

Файлове с образци:

Примери за повредени MDF файлове, които ще причинят грешка Msg 5028:

Версия на SQL Server Повреден MDF файл MDF файл, фиксиран от DataNumen SQL Recovery
SQL Server 2014 Грешка3.mdf Грешка3_fixed.mdf