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:

    1. 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 Omschrijving
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.

 

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:

Toewijzingsfouten gerapporteerd door CHECKDB:

Alle andere fouten gerapporteerd door CHECKDB: