Hoe het probleem ‘Database kan niet worden geopend’ van SQL Server op te lossen als gevolg van MDF-corruptie?

Master Database File (MDF) is het primaire databasebestand in MS SQL Server dat alle gegevens opslaat, inclusief weergaven, tabellen, opgeslagen procedures, vreemde sleutels en primaire sleutels. Soms, bij het openen van het MDF-bestand, kunt u een probleem tegenkomen waarbij de SQL Server-database niet kan worden geopend en een foutmelding krijgt, zoals onderstaande:

  • SQL Server-fout 5171: MDF is geen primair databasebestand
  • Kan het bestand xxxxx.mdf niet openen. Fout van het besturingssysteem 5: (Toegang is geweigerd)”
  • Evenement-ID 824: SQL Server heeft een logische consistentie-gebaseerde I/O-fout gedetecteerd
  • Msg 8114, Niveau 16, Status 5, Regel 2: Fout bij het converteren van gegevenstype varchar naar numeric

Dergelijke fouten treden meestal op wanneer er corruptie in het MDF-bestand is. In dit artikel leggen we de mogelijke oorzaken van de corruptie van MDF-bestanden uit en tonen we aan hoe u beschadigde MDF-bestanden kunt herstellen en het probleem kunt oplossen.

Oorzaken van corruptie in het MDF-bestand

Er zijn verschillende redenen die kunnen leiden tot corruptie in het SQL Server-database (MDF)-bestand. Enkele veelvoorkomende zijn hieronder gegeven:

MS SQL Server of systeemcrash

MS SQL Server of het systeem kan crashen door problemen met het besturingssysteem, hardware of software. Als de server of het systeem crasht terwijl u aan het MDF-bestand werkt, kan dit het bestand beschadigen of corrupt maken.

Plotselinge systeemafsluiting

Een plotselinge stroomstoring of gedwongen afsluiting van het systeem terwijl de SQL Server actief is, kan het MDF-bestand dat op uw systeem is opgeslagen beschadigen.

Malware- of virusaanvallen

Malware of virussen kunnen ook MDF-bestanden beschadigen en ontoegankelijk maken. Dit gebeurt meestal wanneer uw systeem geen antivirus- of antimalwaresoftware heeft geïnstalleerd.

Problemen met opslagstation

Slechte sectoren op het opslagstation of fouten in het bestandssysteem kunnen de SQL-databasebestanden beschadigen. Als de schijf beschadigd is, kan dit ook corruptie in de MDF-bestanden veroorzaken.

Methoden om het probleem ‘Database kan niet worden geopend’ op te lossen als gevolg van MDF-bestandsbeschadiging

Als uw MDF-bestand beschadigd is, kunt u de onderstaande methoden volgen om het beschadigde MDF-bestand te herstellen en te herstellen, waardoor het probleem ‘Database kan niet worden geopend’ in SQL Server wordt opgelost.

Methode 1: Herstel het MDF-bestand vanaf de back-up

Als u een back-up van uw MDF-bestand heeft gemaakt, kunt u het bestand herstellen vanaf de back-up. Controleer echter voordat u herstelt of uw back-up volledig en leesbaar is. Hiervoor kunt u de opdracht RESTORE VERIFY ONLY gebruiken. Als deze opdracht een succesmelding geeft, kunt u doorgaan met het herstellen van de back-up. Gebruik hiervoor de volgende Transact-SQL-opdracht:

MS SQL

 

Als alternatief kunt u SQL Server Management Studio (SSMS) gebruiken om de back-up te herstellen.

Methode 2: Gebruik het DBCC CHECKDB-commando

Als de back-up niet is bijgewerkt of er een probleem is bij het herstellen van het back-upbestand, kunt u het DBCC CHECKDB-commando gebruiken om het beschadigde MDF-bestand te repareren. Om het databasebestand te repareren, moet u ervoor zorgen dat u beheerdersrechten heeft op de database. Voordat u gaat repareren, stelt u de database in op de modus voor één gebruiker door het onderstaande commando te gebruiken:

MS SQL

 

Als het niet lukt om de database in de EENZIJDIGE_GEBRUIKER-modus in te stellen, controleer dan of de AUTO_UPDATE_STATISTICS_ASYNC-optie is ingesteld op UIT

Voer vervolgens het DBCC CHECKDB-commando uit zoals hieronder weergegeven om het database (MDF)-bestand te repareren: 

MS SQL

 

Wanneer de database is gerepareerd, stelt u deze weer in op de modus MEERDERE_GEBRUIKERS door het onderstaande commando te gebruiken:

MS SQL

 

Opmerking: Het DBCC CHECKDB-commando kan u helpen bij het herstellen van het MDF-bestand. Echter, tijdens het reparatieproces kan het commando pagina’s of rijen deallokeren, wat kan leiden tot gegevensverlies.

Methode 3: Gebruik een Professionele SQL Reparatie Tool

Het repareren van de SQL-database met behulp van het DBCC CHECKDB-commando met de REPAIR_ALLOW_DATA_LOSS-optie kan leiden tot gegevensverlies. Om gegevensverlies te voorkomen, kunt u gebruikmaken van krachtige MS SQL reparatiesoftware, zoals Stellar Repair for MS SQL. Deze software kan beschadigde MDF-bestanden repareren en alle bestandsonderdelen herstellen, zoals primaire sleutels, tabellen, triggers, weergaven, enz., zonder de oorspronkelijke structuur te wijzigen. Het slaat de herstelde bestandsgegevens op in een nieuw MDF-bestand en verschillende andere formaten, zoals CSV, HTML en XLS. De software ondersteunt SQL-database (MDF en NDF) bestanden die zijn gemaakt op Windows- en Linux-systemen.

Conclusie

Het probleem ‘Database kan niet worden geopend’ in MS SQL Server kan optreden als gevolg van beschadiging in het MDF-bestand. Om dit probleem op te lossen, is de makkelijkste manier om het MDF-bestand te herstellen vanaf de laatste back-up. Als het back-upbestand verouderd is of niet werkt, kunt u het DBCC CHECKDB-commando gebruiken om het beschadigde MDF-bestand te repareren. Als het DBCC CHECKDB-commando er niet in slaagt de database te repareren, kunt u een krachtige SQL-reparatietool gebruiken, zoals Stellar Repair for MS SQL. Het kan beschadigde MDF-bestanden repareren en alle gegevens herstellen naar een nieuw MDF-bestand met volledige integriteit. U kunt de gratis versie van Stellar Repair for MS SQL installeren om het beschadigde MDF-bestand te scannen en de herstelbare gegevens te bekijken.

Source:
https://dzone.com/articles/resolve-sql-server-database-cannot-be-opened-mdf-issue