Simptom:

Atunci când se utilizează DBCC CHECKDB cu REPAIR_ALLOW_DATA_LOSS parametru pentru a repara o bază de date .MDF coruptă, astfel:

DBCC CHECKDB (xxxx, „REPAIR_ALLOW_DATA_LOSS”)

vedeți următorul mesaj de eroare:

Msg 5028, nivelul 16, starea 4, linia 4
Sistemul nu a putut activa suficient baza de date pentru a reconstrui jurnalul.
Rezultatele DBCC pentru „xxxx”.
CHECKDB a găsit 0 erori de alocare și 0 erori de consistență în baza de date „xxxx”.
Msg 7909, nivelul 20, starea 1, linia 4
Repararea în modul de urgență a eșuat. Trebuie să restaurați din copie de rezervă.

unde „xxxx” este numele bazei de date MDF corupte care se repară.

Msg 5028 eroarea nu este nici o eroare de alocare sau o eroare de coerență.

In timp ce Msg 7909 este o eroare severă care poate apărea în multe situații ori de câte ori SQL Server cred că baza de date este dincolo de recuperare.

Captură de ecran a mesajului de eroare:

Explicație precisă:

Mesajul de eroare (Msg 5028) pare a fi legat de fișierul LOG. Cu toate acestea, acesta este un raport greșit. Problema reală este încă cauzată de corupția bazei de date MDF.

Puteți folosi produsul nostru DataNumen SQL Recovery pentru a recupera datele din fișierul MDF corupt și a rezolva această eroare.

Exemple de fișiere:

Exemplu de fișiere MDF corupte care vor cauza Msg 5028 eroare:

SQL Server versiune Fișier MDF corupt Fișier MDF remediat de DataNumen SQL Recovery
SQL Server 2014 Error3.mdf Error3_fixed.mdf