Bij gebruik van Microsoft SQL Server om een beschadigd MDF-databasebestand bij te voegen of te openen, kunt u verschillende foutmeldingen tegenkomen die verwarrend kunnen zijn. Hieronder zetten we alle fouten op een rij, gesorteerd op frequentie. Voor elke fout zullen we de symptomen schetsen, de exacte oorzaak uitleggen en voorbeeldbestanden leveren, samen met de bestanden die zijn gerepareerd door DataNumen SQL Recovery. Dit zal u helpen deze fouten beter te begrijpen. Opmerking 'xxx.MDF' vertegenwoordigt de naam van uw corrupte SQL Server MDF-databasebestand.
Gebaseerd op SQL Server of CHECKDB foutmeldingen, zijn er drie soorten fouten:
-
- Toewijzingsfouten: We weten dat de gegevens in MDF- en NDF-bestanden worden toegewezen als paginas. En er zijn enkele speciale pagina's die worden gebruikt voor toewijzingsbeheer, als volgt:
Paginatype | Beschrijving |
GAM-pagina | Bewaar Global Allocation Map (GAM) info. |
SGAM-pagina | Sla gedeelde Global Allocation Map (SGAM) info op. |
IAM-pagina | Store Index Allocation Map (IAM) info. |
PFS-pagina | Bewaar PFS-toewijzingsinformatie. |
Als een van de bovenstaande toewijzingspagina's fouten bevat, of als de gegevens die door deze toewijzingspagina's worden beheerd, niet consistent zijn met de toewijzingsinformatie, dan SQL Server of CHECKDB zal rapporteren toewijzingsfouten.
- Consistentiefouten: Voor paginas die worden gebruikt om gegevens op te slaan, inclusief de datapagina's en indexpagina's, indien SQL Server of CHECKDB enige inconsistentie vinden tussen de pagina-inhoud en de checksum, dan zullen ze rapporteren consistentiefouten.
- Alle andere fouten: Er kunnen andere fouten zijn die niet in de bovenstaande twee categorieën vallen.
- xxxx.mdf is geen primair databasebestand. (Microsoft SQL Server, Fout: 5171)
- De header van het bestand 'xxxx.mdf' is geen geldige header van het databasebestand. De eigenschap FILE SIZE is onjuist (Microsoft SQL Server, Fout: 5172)
- SQL Server een op logische consistentie gebaseerde I / O-fout gedetecteerd: onjuiste checksum
- SQL Server een op logische consistentie gebaseerde I / O-fout gedetecteerd: gescheurde pagina
- U verwijdert per ongeluk enkele records of tabellen in de database.
SQL Server heeft een ingebouwde tool genaamd DBCC, welke heeft CHECKDB en CONTROLETABEL opties die kunnen helpen om een corrupte MDF-database te herstellen. Voor ernstig beschadigde MDB-databasebestanden DBCC CONTROLEERDB en CONTROLETABEL zal ook mislukken.
Consistentiefouten gerapporteerd door CHECKDB:
- SQL Server een op logische consistentie gebaseerde I / O-fout gedetecteerd: onjuiste checksum
- Rij in sys.xxx heeft geen overeenkomende rij in sys.xxx.
- Tabelfout: Object-ID ##, index-ID ## wordt opnieuw opgebouwd.
- Deze systeemtabelindex kan niet opnieuw worden gemaakt.
- Object-ID ##, index-ID ##, partitie-ID ##, toewijzingseenheid-ID ## (type onbekend), pagina-ID (##: 560) bevat een onjuiste pagina-ID in de paginakop.
Toewijzingsfouten gerapporteerd door CHECKDB:
- De pagina Index Allocation Map (IAM) wordt aangeduid door de volgende aanwijzer van de IAM-pagina
- De omvang (##: ##) in database ID ## is gemarkeerd als toegewezen in de GAM, maar geen SGAM of IAM heeft deze toegewezen.
Alle andere fouten gerapporteerd door CHECKDB:
- Mislukt: (- #######) Het uitvoeren van de zoekopdracht "DBCC CHECKDB (xxxx) WITH NO_INFOMSGS" is mislukt met de volgende fout: "xxxx".
- I / O-fout (ongeldige pagina-ID) gedetecteerd tijdens het lezen bij offset 0x ###### in bestand 'xxxx.mdf'.
- Het systeem kan niet genoeg van de database activeren om het logboek opnieuw op te bouwen
- Gegevensverlies bij reparatie met CHECKDB
- Het bestand lijkt te zijn afgekapt door het besturingssysteem.
- Tijdens het opnieuw uitvoeren van een gelogde bewerking in de database 'xxxx', is er een fout opgetreden bij de logrecord-ID.