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 din baza de date pentru a reconstrui jurnalul.
Rezultate 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
Reparația în modul de urgență a eșuat. Trebuie să restaurați din backup.

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

5028 eroarea nu este nici o eroare de alocare, nici o eroare de consistență.

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

Captură de ecran a mesajului de eroare:

Explicație precisă:

Mesajul de eroare (5028) pare să aibă legătură cu fișierul LOG. Cu toate acestea, aceasta este o raportare greșită. Problema reală este încă cauzată de coruperea bazei de date MDF.

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

Exemple de fișiere:

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

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