När du använder Microsoft SQL Server för att bifoga eller komma åt en korrupt MDF-databasfil kan du stöta på en mängd olika felmeddelanden som kan vara förvirrande. Nedan kommer vi att lista alla fel, sorterade efter frekvens. För varje fel kommer vi att beskriva dess symptom, förklara den exakta orsaken och tillhandahålla exempelfiler tillsammans med filerna som åtgärdats av DataNumen SQL Recovery. Detta hjälper dig att bättre förstå dessa fel. Observera att 'xxx.MDF' representerar namnet på din korrupta SQL Server MDF databasfil.
Baserat på SQL Server eller CHECKDB-felmeddelanden, det finns tre typer av fel:
-
- Tilldelningsfel: Vi vet att data i MDF- och NDF-filer allokeras som sidor. Och det finns några speciella sidor som används för allokeringshantering, enligt följande:
Sidtyp | Beskrivning |
GAM-sida | Lagra global tilldelningskarta (GAM). |
SGAM sida | Lagra information om delad global tilldelningskarta (SGAM). |
IAM-sida | Lagra information om indexfördelningskarta (IAM). |
PFS-sida | Lagra information om PFS-tilldelning. |
Om någon av ovanstående tilldelningssidor har fel, eller om data som hanteras av dessa tilldelningssidor är oförenliga med allokeringsinformationen, då SQL Server eller CHECKDB kommer att rapportera allokeringsfel.
- Konsistensfel: För sidor som används för att lagra data, inklusive datasidor och indexsidor, om SQL Server eller CHECKDB hittar någon inkonsekvens mellan sidinnehållet och kontrollsumman, då rapporterar de konsistensfel.
- Alla andra fel: Det kan finnas andra fel som inte faller inom ovanstående två kategorier.
- xxxx.mdf är inte en primär databasfil. (Microsoft SQL Server, Fel: 5171)
- Rubriken för filen 'xxxx.mdf' är inte en giltig rubrik för databasfilen. Egenskapen FIL SIZE är felaktig. (Microsoft SQL Server, Fel: 5172)
- SQL Server upptäckte ett logiskt konsistensbaserat I / O-fel: fel kontrollsumma
- SQL Server upptäckte ett logiskt konsistensbaserat I / O-fel: sönderriven sida
- Du tar bort vissa poster eller några tabeller i databasen av misstag.
SQL Server har ett inbyggt verktyg som heter DBCC, som har KONTROLLERADB och KONTROLLERBAR alternativ som kan hjälpa till att reparera en korrupt MDF-databas. För allvarligt skadade MDB-databasfiler, DBCC CHECKDB och KONTROLLERBAR kommer också att misslyckas.
Konsekvensfel rapporterade av CHECKDB:
- SQL Server upptäckte ett logiskt konsistensbaserat I / O-fel: fel kontrollsumma
- Rad i sys.xxx har ingen matchande rad i sys.xxx.
- Tabellfel: Objekt-ID ##, index-ID ## kommer att byggas om.
- Detta systemtabellindex kan inte återskapas.
- Objekt-ID ##, index-ID ##, partitions-ID ##, tilldelningsenhet ID ## (typ Okänd), sida-ID (##: 560) innehåller ett felaktigt sid-ID i sidhuvudet.
Tilldelningsfel rapporterade av CHECKDB:
- Sidan Indexallokeringskarta (IAM) pekas på av nästa pekare på IAM-sidan
- Omfattningen (##: ##) i databas-ID ## är markerad tilldelad i GAM, men ingen SGAM eller IAM har tilldelat den.
Alla andra fel rapporterade av CHECKDB:
- Misslyckades: (- #######) Körningen av frågan "DBCC CHECKDB (xxxx) WITH NO_INFOMSGS" misslyckades med följande fel: "xxxx".
- I / O-fel (dåligt sid-ID) upptäcktes vid avläsning vid förskjutning 0x ###### i filen 'xxxx.mdf'.
- Systemet kunde inte aktiveras tillräckligt med databasen för att bygga om loggen
- Dataförlust vid reparation med CHECKDB
- Filen verkar ha trunkats av operativsystemet.
- Under omställning av en loggad operation i databasen 'xxxx' inträffade ett fel vid logg-post-ID.