Симптом:
Когато използвате 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 |