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 |