Симптом:
При використанні 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. Однак це неправильне повідомлення. Фактична проблема все ще спричинена пошкодженням бази даних МДФ.
Ви можете використовувати наш продукт DataNumen SQL Recovery відновити дані з пошкодженого файлу MDF та вирішити цю помилку.
Зразки файлів:
Зразок пошкоджених файлів MDF, які спричинять Повідомлення 5028 помилка:
SQL Server версія | Пошкоджений файл MDF | Файл MDF виправлено DataNumen SQL Recovery |
SQL Server 2014 | Помилка3.mdf | Помилка3_fixed.mdf |