Objaw:

Podczas używania DBCC CHECKDB z REPAIR_ALLOW_DATA_LOSS parametr do naprawy uszkodzonej bazy danych .MDF, na przykład:

DBCC CHECKDB (xxxx, „REPAIR_ALLOW_DATA_LOSS”)

pojawia się następujący komunikat o błędzie:

Msg 5125, Level 24, State 2, Line 2
Plik „C: Program FilesMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf 'wydaje się być obcięty przez system operacyjny. Oczekiwany rozmiar to 5120 KB, ale rzeczywisty rozmiar to 5112 KB.
Msg 3414, Level 21, State 1, Line 2
Wystąpił błąd podczas odzyskiwania, uniemożliwiający bazę danych „Error1” (39: 0) z restarting. Zdiagnozuj błędy odzyskiwania i napraw je lub przywróć ze znanej dobrej kopii zapasowej. Jeśli błędy nie zostaną poprawione lub nie spodziewane, skontaktuj się z pomocą techniczną.

gdzie „Błąd1” to nazwa uszkodzonej bazy danych MDF, która jest naprawiana.

Msg 5125 Błąd nie jest ani błędem alokacji, ani błędem spójności. Występuje, gdy część końca pliku MDB zostanie usunięta z powodu uszkodzenia danych.

Zrzut ekranu z komunikatem o błędzie:

Dokładne wyjaśnienie:

Kiedy część końca pliku MDB zostanie usunięta, CHECKDB zgłosi Msg 5125 błąd i spróbuj go naprawić. Jeśli bazy danych nie można naprawić, zostanie utworzona Msg 3414 Błąd.

W rzeczywistości bazę danych można również odzyskać, korzystając z naszego produktu DataNumen SQL Recovery wykonać zadanie.

Przykładowe pliki:

SQL Server wersja Uszkodzony plik MDF Plik MDF naprawiony przez DataNumen SQL Recovery
SQL Server 2014 Error8.mdf Error8_fixed.mdf

Referencje: