Kai naudojate „Microsoft“. SQL Server Norėdami pridėti arba pasiekti sugadintą MDF duomenų bazės failą, galite susidurti su įvairiais klaidos pranešimais, kurie gali būti klaidinantys. Žemiau išvardysime visas klaidas, surūšiuotas pagal dažnumą. Kiekvienos klaidos atveju apibūdinsime jos simptomus, paaiškinsime tikslią priežastį ir pateiksime failų pavyzdžius kartu su ištaisytais failais DataNumen SQL Recovery. Tai padės geriau suprasti šias klaidas. Atminkite, kad „xxx.MDF“ bus jūsų sugadintos prekės pavadinimas SQL Server MDF duomenų bazės failas.
Remiantis SQL Server arba CHECKDB klaidų pranešimus, yra trijų tipų klaidos:
-
- Paskirstymo klaidos: Mes žinome, kad MDF ir NDF failų duomenys yra paskirstyti kaip puslapiai. Taip pat yra keletas specialių puslapių, kurie naudojami paskirstymo valdymui:
Puslapio tipas | Aprašymas |
GAM puslapis | Išsaugokite pasaulinio paskirstymo žemėlapio (GAM) informaciją. |
SGAM puslapis | Išsaugokite bendrinamą visuotinio paskirstymo žemėlapio (SGAM) informaciją. |
IAM puslapis | Išsaugokite indekso paskirstymo žemėlapio (IAM) informaciją. |
PFS puslapis | Išsaugokite PFS paskirstymo informaciją. |
Jei kuriame nors iš aukščiau pateiktų paskirstymo puslapių yra klaidų arba šių paskirstymo puslapių tvarkomi duomenys nesutampa su paskirstymo informacija, tada SQL Server arba CHECKDB praneš paskirstymo klaidų.
- Nuoseklumo klaidos: Dėl puslapiai kurie naudojami duomenims saugoti, įskaitant duomenų puslapius ir rodyklės puslapius, jei SQL Server arba CHECKDB aptiks bet kokį neatitikimą tarp puslapio turinio ir kontrolinės sumos, tada jie praneš nuoseklumo klaidos.
- Visos kitos klaidos: Gali būti ir kitų klaidų, kurios nepatenka į pirmiau minėtas dvi kategorijas.
- xxxx.mdf nėra pirminis duomenų bazės failas. („Microsoft SQL Server, Klaida: 5171)
- Failo „xxxx.mdf“ antraštė nėra tinkama duomenų bazės failo antraštė. Ypatybė FILE SIZE yra neteisinga. (Microsoft SQL Server, Klaida: 5172)
- SQL Server aptiko loginiu nuoseklumu pagrįstą I/O klaidą: neteisinga kontrolinė suma
- SQL Server aptiko loginiu nuoseklumu pagrįstą I/O klaidą: suplėšytas puslapis
- Per klaidą ištrinate kai kuriuos įrašus arba kai kurias lenteles duomenų bazėje.
SQL Server turi įmontuotą įrankį, vadinamą DBCC, kuri turi CHECKDB ir PATIKRINTI parinktys, kurios gali padėti ištaisyti sugadintą MDF duomenų bazę. Tačiau labai pažeistų MDB duomenų bazės failų atveju DBCC CHECKDB ir PATIKRINTI taip pat nepavyks.
CHECKDB praneštos nuoseklumo klaidos:
- SQL Server aptiko loginiu nuoseklumu pagrįstą I/O klaidą: neteisinga kontrolinė suma
- Eilutė sys.xxx neturi atitinkančios eilutės sys.xxx.
- Lentelės klaida: objekto ID ##, indekso ID ## bus atkurtas.
- Šios sistemos lentelės indekso negalima sukurti iš naujo.
- Objekto ID ##, indekso ID ##, skaidinio ID ##, paskirstymo vieneto ID ## (tipas nežinomas), puslapio ID (##:560) puslapio antraštėje yra neteisingas puslapio ID.
Paskirstymo klaidos, apie kurias pranešė CHECKDB:
- Indekso paskirstymo žemėlapio (IAM) puslapį nurodo kitas IAM puslapio žymeklis
- Duomenų bazės ID ## apimtis (##:##) pažymėta kaip paskirta GAM, bet joks SGAM ar IAM jo nepaskyrė.
Visos kitos klaidos, apie kurias pranešė CHECKDB:
- Nepavyko:(-#######) Vykdant užklausą „DBCC CHECKDB(xxxx) WITH NO_INFOMSGS“ nepavyko ir įvyko tokia klaida: „xxxx“.
- Įvesties / išvesties klaida (blogas puslapio ID) aptiktas nuskaitant poslinkį 0x###### faile 'xxxx.mdf'.
- Sistemai nepavyko suaktyvinti pakankamai duomenų bazės, kad būtų galima atkurti žurnalą
- Duomenų praradimas taisant naudojant CHECKDB
- Atrodo, kad failą sutrumpino operacinė sistema.
- Atliekant užregistruotą operaciją duomenų bazėje 'xxxx', žurnalo įrašo ID įvyko klaida.