Când utilizați Microsoft SQL Server pentru a atașa sau a accesa un fișier de bază de date MDF corupt, este posibil să întâlniți o varietate de mesaje de eroare care pot fi confuze. Mai jos, vom enumera toate erorile, sortate după frecvență. Pentru fiecare eroare, vom sublinia simptomele acesteia, vom explica cauza exactă și vom furniza fișiere eșantion împreună cu fișierele remediate de DataNumen SQL Recovery. Acest lucru vă va ajuta să înțelegeți mai bine aceste erori. Rețineți că „xxx.MDF” va reprezenta numele coruptului dvs SQL Server Fișier baza de date MDF.
Bazat pe SQL Server sau mesaje de eroare CHECKDB, există trei tipuri de erori:
-
- Erori de alocare: Știm că datele din fișierele MDF și NDF sunt alocate ca pagini. Și există câteva pagini speciale care sunt folosite pentru gestionarea alocării, după cum urmează:
Tipul paginii | Descriere |
Pagina GAM | Stocați informațiile despre harta globală de alocare (GAM). |
Pagina SGAM | Stocați informațiile comune ale hărții de alocare globală (SGAM). |
Pagina IAM | Stocați informațiile despre harta de alocare a indexului (IAM). |
Pagina PFS | Stocați informațiile de alocare PFS. |
Dacă oricare dintre paginile de alocare de mai sus are 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 consecvență: Pentru pagini care sunt utilizate pentru stocarea datelor, inclusiv paginile de date și paginile de index, dacă SQL Server sau CHECKDB găsește orice inconsecvență între conținutul paginii și suma de control, apoi vor raporta erori de consistență.
- Toate celelalte erori: Pot exista și alte erori care nu se încadrează în cele două categorii de mai sus.
- xxxx.mdf nu este un fișier de bază de date primară. (Microsoft SQL Server, Eroare: 5171)
- Antetul pentru fișierul „xxxx.mdf” nu este un antet valid pentru fișierul bazei de date. Proprietatea FILE SIZE este incorectă.(Microsoft SQL Server, Eroare: 5172)
- SQL Server a detectat o eroare I/O bazată pe consistența logică: sumă de control incorectă
- SQL Server a detectat o eroare I/O bazată pe consistența 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 și VERIFICABIL opțiuni care pot ajuta la repararea unei baze de date MDF corupte. Cu toate acestea, pentru fișierele de bază de date MDB deteriorate grav, DBCC CHECKDB și VERIFICABIL va eșua de asemenea.
Erori de consistență raportate de CHECKDB:
- SQL Server a detectat o eroare I/O bazată pe consistența logică: sumă de control incorectă
- Rândul în sys.xxx nu are un rând corespunzător în sys.xxx.
- Eroare de tabel: ID-ul obiectului ##, ID-ul indexului ## va fi reconstruit.
- Acest index de tabel de sistem nu poate fi recreat.
- ID-ul obiectului ##, ID-ul indexului ##, ID-ul partiției ##, ID-ul unității de alocare ## (tip Necunoscut), ID-ul paginii (##:560) conține un ID incorect al paginii î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
- Extinderea (##:##) în 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” a eșuat cu următoarea eroare: „xxxx”.
- Eroare I/O (ID de pagină greșit) detectată în timpul citirii la offset 0x###### în fișierul „xxxx.mdf”.
- Sistemul nu a putut activa suficient din 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țiuni înregistrate în baza de date „xxxx”, a apărut o eroare la ID-ul înregistrării jurnalului.