Симптом:

При використанні DBCC CHECKDB з REPAIR_ALLOW_DATA_LOSS параметр для відновлення пошкодженої бази даних .MDF, наприклад:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

ви бачите таке повідомлення про помилку:

Msg 5125, рівень 24, стан 2, лінія 2
Файл 'C: Програмні файли Microsoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf ', схоже, був усічений операційною системою. Очікуваний розмір - 5120 КБ, а фактичний - 5112 КБ.
Msg 3414, рівень 21, стан 1, лінія 2
Під час відновлення сталася помилка, що перешкоджає відновленню бази даних "Помилка1" (39: 0)tarвідтінок. Діагностуйте помилки відновлення та виправте їх або відновіть із відомої хорошої резервної копії. Якщо помилки не виправлені або не очікуються, зверніться до служби технічної підтримки.

де 'Error1' - це назва пошкодженої бази даних MDF, що відновлюється.

Повідомлення 5125 помилка - це ні помилка розподілу, ні помилка узгодженості. Це відбувається, коли частина хвоста файлу MDB видаляється через пошкодження даних.

Знімок екрана повідомлення про помилку:

Точне пояснення:

Коли частина хвоста файлу MDB буде видалена, CHECKDB звітуватиме Повідомлення 5125 і спробуйте виправити. Якщо базу даних неможливо виправити, вона видасть Повідомлення 3414 помилка

Насправді базу даних також можна відновити, якщо ми використовуємо наш продукт DataNumen SQL Recovery виконати завдання.

Зразки файлів:

SQL Server версія Пошкоджений файл MDF Файл MDF виправлено DataNumen SQL Recovery
SQL Server 2014 Error8.mdf Error8_fixed.mdf

Список використаної літератури: