Når du bruker Microsoft SQL Server for å legge ved eller få tilgang til en korrupt MDF-databasefil, kan du støte på en rekke feilmeldinger som kan være forvirrende. Nedenfor vil vi liste alle feil, sortert etter frekvens. For hver feil vil vi skissere symptomene, forklare den eksakte årsaken og gi eksempelfiler sammen med filene som er rettet av DataNumen SQL Recovery. Dette vil hjelpe deg å forstå disse feilene bedre. Merk at 'xxx.MDF' vil representere navnet på den korrupte SQL Server MDF-databasefil.
Basert på SQL Server eller CHECKDB feilmeldinger, er det tre typer feil:
-
- Tildelingsfeil: Vi vet at dataene i MDF- og NDF-filer er allokert som sider. Og det er noen spesielle sider som brukes til allokeringsstyring, som følger:
Sidetype | Beskrivelse |
GAM-side | Lagre informasjon om global tildelingskart (GAM). |
SGAM-side | Lagre informasjon om delt global allocation map (SGAM). |
IAM-side | Butikkindekstildelingskart (IAM) info. |
PFS-side | Lagre PFS-tildelingsinformasjon. |
Hvis noen av tildelingssidene ovenfor har feil, eller dataene som administreres av disse tildelingssidene er inkonsistente med tildelingsinformasjonen, SQL Server eller CHECKDB vil rapportere tildelingsfeil.
- Konsistensfeil: Til sider som brukes til å lagre data, inkludert datasidene og indekssidene, hvis SQL Server eller CHECKDB finner inkonsistens mellom sideinnholdet og kontrollsummen, så vil de rapportere konsistensfeil.
- Alle andre feil: Det kan være andre feil som ikke faller inn under de to ovennevnte kategoriene.
- xxxx.mdf er ikke en primær databasefil. (Microsoft SQL Server, Feil: 5171)
- Overskriften for filen 'xxxx.mdf' er ikke en gyldig databasefiloverskrift. Egenskapen FILE SIZE er feil. (Microsoft SQL Server, Feil:5172)
- SQL Server oppdaget en logisk konsistensbasert I/O-feil: feil kontrollsum
- SQL Server oppdaget en logisk konsistensbasert I/O-feil: revet side
- Du sletter noen poster eller noen tabeller i databasen ved en feiltakelse.
SQL Server har et innebygd verktøy som heter DBCC, som har SJEKKDB og KONTROLLTABELL alternativer som kan hjelpe til med å reparere en korrupt MDF-database. Men for alvorlig skadede MDB-databasefiler, DBCC CHECKDB og KONTROLLTABELL vil også mislykkes.
Konsistensfeil rapportert av CHECKDB:
- SQL Server oppdaget en logisk konsistensbasert I/O-feil: feil kontrollsum
- Rad i sys.xxx har ikke en samsvarende rad i sys.xxx.
- Tabellfeil: Objekt-ID ##, indeks-ID ## vil bli gjenoppbygd.
- Denne systemtabellindeksen kan ikke gjenskapes.
- Objekt-ID ##, indeks-ID ##, partisjons-ID ##, allok enhets-ID ## (type Ukjent), side-ID (##:560) inneholder feil side-ID i sideoverskriften.
Tildelingsfeil rapportert av CHECKDB:
- Indekstildelingskart-siden (IAM) pekes på av neste peker på IAM-siden
- Omfang (##:##) i database-ID ## er merket som allokert i GAM, men ingen SGAM eller IAM har allokert det.
Alle andre feil rapportert av CHECKDB:
- Mislyktes:(-#######) Utførelse av spørringen "DBCC CHECKDB(xxxx) WITH NO_INFOMSGS" mislyktes med følgende feil: "xxxx".
- I/O-feil (feil side-ID) oppdaget under lesing ved offset 0x###### i filen 'xxxx.mdf'.
- Systemet kunne ikke aktivere nok av databasen til å gjenoppbygge loggen
- Datatap ved reparasjon med CHECKDB
- Filen ser ut til å ha blitt avkortet av operativsystemet.
- Under omgjøring av en logget operasjon i databasen 'xxxx' oppstod det en feil ved loggpost-ID.