Când utilizați Microsoft SQL Server pentru a atașa sau accesa un fișier de bază de date MDF corupt, veți vedea diverse mesaje de eroare, care pot fi puțin confuze pentru dvs. Prin urmare, aici vom încerca să listăm toate erorile posibile, sortate în funcție de frecvența lor. Pentru fiecare eroare, vom descrie simptomele acesteia, îi vom explica motivul exact și vom prezenta fișierele eșantion, precum și fișierul reparat de compania noastră DataNumen SQL Recovery, astfel încât să le puteți înțelege mai bine. Mai jos vom folosi „xxx.MDF” pentru a vă exprima corupția SQL Server Numele fișierului bazei de date MDF.
Bazat pe SQL Server sau mesaje de eroare CHECKDB, există trei tipuri de erori care vor provoca eșecul:
-
- Erori de alocare: Știm că datele din fișierele MDF și NDF sunt alocate ca pagini. Și există câteva pagini speciale care sunt utilizate pentru gestionarea alocării, după cum urmează:
Tipul paginii | Descriere |
Pagina GAM | Stocați informații despre harta de alocare globală (GAM). |
Pagina SGAM | Stocați informații despre harta de alocare globală partajată (SGAM). |
Pagina IAM | Stocați informații despre harta de alocare a indexului (IAM). |
Pagina PFS | Stocați informații despre alocarea PFS. |
Dacă oricare dintre paginile de alocare de mai sus au erori sau datele gestionate de aceste pagini de alocare sunt incompatibile cu informațiile de alocare, atunci SQL Server sau CHECKDB va raporta erori de alocare.
- Erori de consistență: Pentru pagini care sunt utilizate pentru a stoca date, inclusiv paginile de date și paginile index, dacă SQL Server sau CHECKDB constată orice neconcordanță între conținutul paginii și suma de verificare, apoi vor raporta erori de consistență.
- Toate celelalte erori: Pot exista alte erori care nu se încadrează în cele două categorii de mai sus.
- xxxx.mdf nu este un fișier de bază de date principal. (Microsoft SQL Server, Eroare: 5171)
- Antetul pentru fișierul „xxxx.mdf” nu este un antet de fișier de bază de date valid. Proprietatea FILE SIZE este incorectă. (Microsoft SQL Server, Eroare: 5172)
- SQL Server a detectat o eroare I / O bazată pe consistență logică: suma de verificare incorectă
- SQL Server a detectat o eroare I / O bazată pe consistență logică: pagină ruptă
- Ștergeți din greșeală unele înregistrări sau tabele din baza de date.
SQL Server are un instrument încorporat numit DBCC, care are CHECKDB CHECKTABLE opțiuni care pot ajuta la repararea unei baze de date MDF corupte. Cu toate acestea, pentru fișierele de baze de date MDB grave deteriorate, DBCC CHECKDB CHECKTABLE va eșua, de asemenea.
Erori de coerență raportate de CHECKDB:
- SQL Server a detectat o eroare I / O bazată pe consistență logică: suma de verificare incorectă
- Rândul din sys.xxx nu are un rând corespunzător în sys.xxx.
- Eroare la tabel: ID obiect ##, ID index ## va fi reconstruit.
- Acest index al tabelului de sistem nu poate fi recreat.
- ID obiect ##, index ID ##, partiție ID ##, alocare ID unitate ## (tip Necunoscut), ID pagină (##: 560) conține un ID de pagină incorect în antetul paginii.
Erori de alocare raportate de CHECKDB:
- Pagina Hărții de alocare a indexului (IAM) este indicată de următorul indicator al paginii IAM
- Extensia (##: ##) din ID-ul bazei de date ## este marcată ca alocată în GAM, dar niciun SGAM sau IAM nu a alocat-o.
Toate celelalte erori raportate de CHECKDB:
- Eșuat: (- #######) Executarea interogării „DBCC CHECKDB (xxxx) WITH NO_INFOMSGS” nu a reușit cu următoarea eroare: „xxxx”.
- Eroare I / O (ID pagină defectă) detectată în timpul citirii la offset 0x ###### în fișierul „xxxx.mdf”.
- Sistemul nu a putut activa suficient baza de date pentru a reconstrui jurnalul
- Pierderea datelor la repararea cu CHECKDB
- Fișierul pare să fi fost trunchiat de sistemul de operare.
- În timpul refacerii unei operații înregistrate în baza de date „xxxx”, a apărut o eroare la ID-ul înregistrării jurnalului.