8.9 C
Berlin
Mittwoch, November 12, 2025
StartTechnologieSOFTWAREWie kann man eine MDF-Datei in SQL Server reparieren?

Wie kann man eine MDF-Datei in SQL Server reparieren?

Eine MDF-Datei ist eine primäre Datenbankdatei, die Felder, Spalten, Tabellen, Indizes und andere Daten in SQL Server enthält. SQL Server liest den Header dieser MDF-Datei, um sie hochzuladen, anzuhängen oder zu öffnen. Wenn die MDF-Datei oder ihr Header aus irgendeinem Grund beschädigt ist, zeigt der Server möglicherweise Fehlermeldungen wie die folgenden an: 

  • Fehler 5172: Der Datei-Header ist ungültig. Die Seitenüberwachungseigenschaft ist falsch.
  • SQL Server-Fehler 5171: MDF ist keine primäre Datenbankdatei.
  • Fehler beim Anhängen, z. B. 9002, 9001 usw.

Eine Beschädigung der MDF-Datei kann zu längeren Ausfallzeiten und dauerhaftem Datenverlust führen und den Betrieb erheblich stören. Wenn SQL Server-Administratoren oder Benutzer auf eine unerwartete Beschädigung der MDF-Datei stoßen, können sie dieser umfassenden Anleitung folgen. Darin werden sowohl herkömmliche Reparaturmethoden als auch ein zuverlässiges Tool für SQL-Datenrettung beschrieben, mit dem die MDF-Datei schnell und ohne Datenverlust repariert werden kann. 

Wie kann eine MDF-Datei beschädigt werden?

Eine Beschädigung der MDF-Datei kann durch verschiedene interne und externe Faktoren verursacht werden, darunter:

  • Probleme mit der Festplatte, auf der die MDF-Datei gespeichert ist. 
  • Plötzlicher Neustart der MS SQL Server-Instanz.
  • Hardware- oder Softwareprobleme.
  • Fehler im SQL Server.
  • Systemabsturz aufgrund eines plötzlichen Stromausfalls.
  • Unzureichender Speicherplatz auf der Festplatte, auf der sich die MS SQL-Datenbank befindet.
  • Malware-Infektion im System, auf dem die Datenbank gehostet wird.

Methoden zur Reparatur von MDF-Dateien in SQL Server

Sie können die unten aufgeführten Methoden verwenden, um die MDF-Datei zu reparieren und wiederherzustellen. 

Methode 1: Trennen und Anhängen der MDF-Datei mit der Option „REBUILD“ 

Wenn beim Anfügen der beschädigten MDF-Datei Fehler auftreten, z. B. SQL Server-Fehler 9004, Fehler 15105 usw., können Sie versuchen, die Datenbank zu trennen und dann mit der Option „REBUILD” anzufügen. Diese Problemumgehung kann hilfreich sein, wenn die mit der MDF-Datei verknüpfte Transaktionsprotokolldatei die Ursache für den Fehler ist. Führen Sie dazu die folgenden Schritte aus:

  • Führen Sie den folgenden Befehl aus, um die Datenbankdatei zu trennen:

EXEC sp_detach_db ‚testdb1‘, ‚true‘;

  • Suchen Sie anschließend die problematischen MDF- und LDF-Dateien und verschieben Sie diese in ein neues Verzeichnis.
  • Bitte stellen Sie die Verbindung zur Datenbank mit dem folgenden Befehl wieder her:

CREATE DATABASE testdb1 ON

(FILENAME = ?C:\Program Files\Microsoft SQL Server..\MSSQL\DATA\testdb1.mdf?)

For ATTACH_REBUILD_LOG

GO

Sollte dieser Vorgang nicht erfolgreich sein, befolgen Sie bitte die folgenden Methoden.

Methode 2: Überprüfen und Wiederherstellen der Sicherung

Wenn Sie eine Sicherungsdatei (.bak) der MDF-Datei erstellt haben, überprüfen Sie zuerst, ob sie beschädigt ist. Um die Integrität der Datei (.bak) zu überprüfen, können Sie die Anweisung RESTORE VERIFYONLY ausführen. Sobald Sie sich vergewissert haben, dass Ihre Sicherungsdatei lesbar ist, stellen Sie die SQL Server-Datenbankdatei aus der Sicherung mit folgendem Befehl wieder her:

  • SSMS
  • Windows PowerShell
  • T-SQL-Abfragen

Um die MDF-Datei mithilfe von T-SQL-Abfragen wiederherzustellen, führen Sie den folgenden Befehl im Abfrage-Editorfenster Ihrer SQL Server-Instanz aus.

USE [master];

GO

RESTORE DATABASE [SQLTest1DB]

FROM DISK = N’C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB1.bak‘ WITH  FILE = 1, NOUNLOAD, STATS = 5;

GO

Methode 3: Verwenden Sie den Befehl DBCC CHECKDB

Wenn die Sicherung beschädigt ist oder beim Wiederherstellen der Sicherungsdatei Fehler auftreten, verwenden Sie den Befehl DBCC CHECKDB. Dieser Befehl wird in SQL Server verwendet, um die SQL-Datenbank (MDF-Datei) und ihre Komponenten wie Seiten, gespeicherte Prozeduren usw. zu überprüfen und zu reparieren. Er kann mit verschiedenen Reparaturoptionen verwendet werden. Um eine der Reparaturoptionen auszuführen, benötigen Sie Administratorrechte. Überprüfen Sie dazu die Berechtigungen auf Datenbankebene und erstellen Sie eine Sicherungsdatei der Datenbank, da die Reparatur mit diesem Befehl zu Datenverlusten führen kann. Führen Sie anschließend die folgenden Schritte aus, um den Befehl DBCC CHECKDB auszuführen und die beschädigte MDF-Datei zu reparieren:

  • Zuerst müssen Sie die Datenbank in den Modus SINGLE_USER versetzen. Sie können den folgenden Befehl ausführen, um den Datenbankmodus auf Einzelbenutzer umzustellen: 

ALTER DATABASE TestDB1 SET SINGLE_USER

  • Führen Sie anschließend den Befehl DBCC CHECKDB mit der empfohlenen Reparaturoption aus. 
  • Sie können die Option REPAIR_FAST in DBCC CHECKDB ausführen, um nur die Syntax für die Abwärtskompatibilität beizubehalten.

DBCC CHECKDB (‚TestDB1‘, REPAIR_FAST)

  • Wenn die Datenbank nur minimal beschädigt ist, können Sie die Option REPAIR_REBUILD verwenden.

DBCC CHECKDB (‚TestDB1‘, REPAIR_REBUILD)

Hinweis: Diese Option kann Ihnen helfen, kleinere Schäden an nicht gruppierten Indizes zu beheben, unterstützt jedoch keine Filestream-Daten.

  • Wenn die SQL-Datenbank oder ihre Seite schwer beschädigt ist, führen Sie bitte den Befehl DBCC CHECKDB mit der Option REPAIR_ALLOW_DATA_LOSS wie unten gezeigt aus. 

DBCC CHECKDB (‚TESTDB1‘, REPAIR_ALLOW_DATA_LOSS) WIT H ALL_ERRORMSGS, NO_INFOMSGS;

GO

Hinweis: Dies kann Ihnen helfen, schwer beschädigte MDF-Dateien zu reparieren, ist jedoch möglicherweise nicht immer die beste Option, da dabei Daten freigegeben werden können, insbesondere bei der Reparatur einer Reihe von Seiten oder Zeilen. Dies führt zu Datenverlusten. 

  • Nachdem die Datenbankdatei repariert wurde, setzen Sie die Datenbank wieder in den MULTI_USER-Modus zurück. Führen Sie dazu den folgenden Befehl aus:

ALTER DATABASE TESTDB1 SET MULTI_USER

Methode 4: Verwenden Sie ein professionelles Tool zur Reparatur von MDF-Dateien

Wenn die Sicherungsdatei nicht verfügbar ist oder die Seiten in der MDF-Datei schwer beschädigt sind, können Sie ein professionelles SQL-Datenbank-Reparaturtool wie Stellar Repair for MS SQL verwenden, um Datenverluste zu vermeiden. Es handelt sich um ein effizientes und zuverlässiges Tool zur Reparatur von MDF- und NDF-Dateien jeder Größe und in jedem Zustand. Es kann alle Objekte, einschließlich Seitenkopfzeilen, Seiten, Sortierungen, gespeicherte Prozeduren, Trigger, Tabellen usw., aus der beschädigten MDF-Datei mit vollständiger Integrität wiederherstellen.

Besondere Funktionen von Stellar Repair for MS SQL:

  • Repariert NDF/MDF-Dateien, die in jeder SQL Server-Version erstellt wurden. 
  • Ermöglicht die Datenrettung gelöschter Objekte aus beschädigten MDF/NDF-Dateien.
  • Ermöglicht das Speichern der reparierten Datenbank in einer Vielzahl von Dateiformaten wie CSV, HTML, XLS sowie in einer neuen Datenbank oder Live-Datenbank.
  • Bietet eine Option zur Auswahl der Sortierreihenfolge der Datenbank aus schwer beschädigten oder fehlerhaften Datenbankdateien.
  • Bietet eine Option zur Vorschau der reparierten Datenbank vor dem Speichern. 

Zusammenfassung

Es gibt viele Gründe für die Beschädigung von MDF-Dateien. Wenn die MDF-Datei aus einem dieser Gründe beschädigt wird, können Sie sie möglicherweise nicht mehr anhängen oder öffnen. Sie können die in diesem Artikel vorgestellten Reparatur- und Datenrettungsmethoden anwenden. Wenn die neueste Sicherungsdatei verfügbar ist, verwenden Sie diese, um die SQL-Datenbankdatei wiederherzustellen.

Wenn die Sicherungsdatei beschädigt ist, ist die Verwendung eines professionellen SQL-Reparaturtools – Stellar Repair for MS SQL – die beste Wahl, um die MDF-Datei mit absoluter Präzision zu reparieren. Dieses Tool kann Ihnen helfen, MDF/NDF-Dateien schnell wiederherzustellen und zu reparieren, und liefert stets zufriedenstellende Ergebnisse, selbst wenn die Datenbankdatei schwer beschädigt ist. 

DutchBullion Verlagsteam
DutchBullion Verlagsteamhttps://dutchbullion.de
Bei DutchBullion sind wir ein leidenschaftliches Team aus Autoren, Analysten und Alltagsbeobachtern, das sich dafür einsetzt, scharfsinnige, unabhängige Perspektiven auf aktuelle Nachrichten, Rezensionen und kulturelle Kommentare zu liefern. Von unserem Standort in Deutschland aus ist es unsere Mission, den Lärm zu durchbrechen und ehrliche, gut recherchierte Inhalte anzubieten, die unsere Leser informieren, herausfordern und inspirieren. Ob aktuelle Ereignisse, Technologietrends, Lifestyle-Einblicke oder Meinungsbeiträge – wir legen Wert darauf, dass unsere Berichterstattung relevant, durchdacht und stets leserorientiert ist.
Ähnliche Artikel

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

- Advertisment -

Am beliebtesten