Wanneer u Microsoft gebruik SQL Server om 'n korrupte MDF-databasislêer aan te heg of toegang te verkry, kan jy 'n verskeidenheid foutboodskappe teëkom wat verwarrend kan wees. Hieronder sal ons alle foute lys, gesorteer volgens frekwensie. Vir elke fout sal ons die simptome uiteensit, die presiese oorsaak verduidelik en voorbeeldlêers verskaf saam met die lêers wat deur DataNumen SQL Recovery. Dit sal jou help om hierdie foute beter te verstaan. Let wel 'xxx.MDF' sal die naam van jou korrupte verteenwoordig SQL Server MDF databasis lêer.
Gebaseer op SQL Server of CHECKDB-foutboodskappe, is daar drie soorte foute:
-
- Toewysingsfoute: Ons weet dat die data in MDF- en NDF-lêers as toegeken word bladsye. En daar is 'n paar spesiale bladsye wat vir toekenningsbestuur gebruik word, soos volg:
Bladsytipe | Beskrywing |
GAM Bladsy | Stoor globale toewysingskaart (GAM) inligting. |
SGAM Bladsy | Stoor gedeelde globale toewysingskaart (SGAM) inligting. |
IAM-bladsy | Winkel indeks toekenning kaart (IAM) inligting. |
PFS Bladsy | Stoor PFS-toekenningsinligting. |
As enige van die bogenoemde toekenningsbladsye foute het, of die data wat deur hierdie toekenningsbladsye bestuur word, is nie in ooreenstemming met die toekenningsinligting nie, dan SQL Server of CHECKDB sal rapporteer toewysingsfoute.
- Konsekwentheidsfoute: vir bladsye wat gebruik word om data te stoor, insluitend die databladsye en indeksbladsye, indien SQL Server of CHECKDB vind enige teenstrydigheid tussen die bladsy-inhoud en die kontrolesom, dan sal hulle rapporteer konsekwentheidsfoute.
- Alle ander foute: Daar kan ander foute wees wat nie in die bogenoemde twee kategorieë val nie.
- xxxx.mdf is nie 'n primêre databasislêer nie. (Microsoft SQL Server, Fout: 5171)
- Die opskrif vir lêer 'xxxx.mdf' is nie 'n geldige databasislêeropskrif nie. Die FILE SIZE-eienskap is verkeerd. (Microsoft SQL Server, Fout: 5172)
- SQL Server 'n logiese konsekwentheid-gebaseerde I/O-fout opgespoor: verkeerde kontrolesom
- SQL Server bespeur 'n logiese konsekwentheid-gebaseerde I/O-fout: geskeurde bladsy
- U vee per ongeluk sommige rekords of tabelle in die databasis uit.
SQL Server het 'n ingeboude instrument genaamd DBCC, wat het KONTROLEDB en KONTROLETABEL opsies wat kan help om 'n korrupte MDF-databasis te herstel. Vir ernstig beskadigde MDB-databasislêers, DBCC CHECKDB en KONTROLETABEL sal ook misluk.
Konsekwentheidsfoute wat deur CHECKDB gerapporteer is:
- SQL Server 'n logiese konsekwentheid-gebaseerde I/O-fout opgespoor: verkeerde kontrolesom
- Ry in sys.xxx het nie 'n ooreenstemmende ry in sys.xxx nie.
- Tabelfout: Object ID ##, indeks ID ## sal herbou word.
- Hierdie stelseltabelindeks kan nie herskep word nie.
- Voorwerp ID ##, indeks ID ##, partisie ID ##, ken eenheid ID ## (tipe Onbekend), bladsy ID (##:560) bevat 'n verkeerde bladsy ID in sy bladsyopskrif.
Toewysingsfoute wat deur CHECKDB gerapporteer is:
- Die indekstoewysingskaart (IAM)-bladsy word deur die volgende wyser van IAM-bladsy gewys
- Omvang (##:##) in databasis ID ## is gemerk as toegeken in die GAM, maar geen SGAM of IAM het dit toegeken nie.
Alle ander foute wat deur CHECKDB gerapporteer is:
- Misluk:(-#######) Die uitvoering van die navraag "DBCC CHECKDB(xxxx) WITH NO_INFOMSGS" het misluk met die volgende fout: "xxxx".
- I/O-fout (slegte bladsy-ID) bespeur tydens lees by offset 0x###### in lêer 'xxxx.mdf'.
- Stelsel kon nie genoeg van die databasis aktiveer om die log te herbou nie
- Dataverlies tydens herstel met CHECKDB
- Lêer blyk te wees afgekap deur die bedryfstelsel.
- Tydens die oordoen van 'n aangetekende bewerking in databasis 'xxxx', het 'n fout by logrekord-ID voorgekom.