Wanneer u Microsoft SQL Server om een ​​beschadigd MDF-databasebestand toe te voegen of er toegang toe te krijgen, zult u verschillende foutmeldingen zien die voor u een beetje verwarrend kunnen zijn. Daarom zullen we hier proberen om alle mogelijke fouten op te sommen, gesorteerd op hun voorkomende frequentie. Voor elke fout zullen we het symptoom beschrijven, de precieze reden uitleggen en voorbeeldbestanden geven, evenals het bestand dat is gerepareerd door ons DataNumen SQL Recovery, zodat u ze beter kunt begrijpen. Hieronder zullen we 'xxx.MDF' gebruiken om uw corrupte SQL Server MDF-databasebestandsnaam.
Gebaseerd op SQL Server of CHECKDB-foutmeldingen, zijn er drie soorten fouten die storingen veroorzaken:

    1. Toewijzingsfouten: We weten dat de gegevens in MDF- en NDF-bestanden worden toegewezen als pagina's. 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 pagina's 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 CHECKDB en CONTROLETABEL zal ook mislukken.

Consistentiefouten gerapporteerd door CHECKDB:

Toewijzingsfouten gerapporteerd door CHECKDB:

Alle andere fouten gerapporteerd door CHECKDB: