Симптом:

При використанні 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