Wie man Microsoft SQL Server 2022-Datenbankdateien (MDF, LDF und BAK) wiederherstellt
In diesem Artikel untersuchen wir, wie Microsoft SQL Server 2022-Datenbankdateien wiederhergestellt werden. Wir zeigen, was zu tun ist, wenn eine Datenbank oder ihre Dateien versehentlich gelöscht werden, sowie wie mithilfe eines verfügbaren Backups die Datenbank wieder in einen funktionsfähigen Zustand versetzt werden kann.

- SQL-Server-Funktionen
- So greifen Sie auf die Serverdatenträger zu
- So stellen Sie eine gelöschte SQL Server 2022-Datenbank wieder her
- Fazit
- Häufig gestellte Fragen
- Bemerkungen
Zur Wiederherstellung der Dateien verwenden wir Hetman RAID Recovery. Das Programm kann MDF-, LDF- und BAK-Dateien auf physischen Laufwerken, RAID-Arrays und dynamischen Datenträgern erkennen sowie mit sektorweise erstellten Datenträgerabbildern arbeiten. Die wiederhergestellten Dateien können anschließend für Restore oder Attach mithilfe von Microsoft SQL Server verwendet werden.
Hetman RAID Recovery unterstützt Windows, Linux und macOS.
SQL Server 2022: Gelöschte Datenbank wiederherstellen (MDF, LDF, BAK)
SQL-Server-Funktionen
Welche Dateien Microsoft SQL Server verwendet und warum sie bei der Wiederherstellung wichtig sind:
- MDF – die primäre Datenbankdatei. Sie enthält die Datenbankstruktur, Tabellen, Datensätze, Indizes und andere Objekte. Diese Datei ist die Hauptdatenquelle, wenn eine gelöschte Datenbank wieder in SQL Server eingebunden werden muss.
- LDF – die Transaktionsprotokolldatei. SQL Server zeichnet darin Datenbankänderungen auf. Das Protokoll dient der Sicherstellung der Datenkonsistenz und ist eine wichtige Komponente beim Anfügen einer Datenbank aus ihren physischen Dateien.
- BAK – die Sicherungsdatei. In unserem Test ist dies ein vollständiges Datenbankbackup, das von SQL Server erstellt wurde. Wenn eine solche Datei vorhanden und nicht beschädigt ist, kann sie für Restore verwendet werden, ohne dass die ursprünglichen MDF- und LDF-Dateien angefügt werden müssen.
Daher hängt das Wiederherstellungsszenario davon ab, welche Dateien erhalten geblieben oder gefunden wurden:
- Wenn eine BAK-Datei verfügbar ist, wird die Datenbank aus dem Backup wiederhergestellt.
- Wenn kein Backup vorhanden ist, die MDF- und LDF-Dateien jedoch wiederhergestellt wurden, können sie für Attach verwendet werden, sofern die Dateien weiterhin lesbar und konsistent sind.
| Funktion | Beschreibung |
|---|---|
| Relationales Datenmodell | SQL Server speichert Informationen in Tabellen, die über Schlüssel und Einschränkungen miteinander verbunden sind. |
| T-SQL-Abfragesprache | Eine Erweiterung von SQL, die zum Erstellen von Abfragen, Verwalten von Daten, Schreiben von Prozeduren und Ausführen administrativer Aufgaben verwendet wird. |
| MDF- und NDF-Datenbankdateien | MDF ist die primäre Datenbankdatendatei, und NDF ist eine zusätzliche Datendatei. Sie enthalten Tabellen, Indizes und andere Datenbankobjekte. |
| LDF-Transaktionsprotokolldatei | Speichert Aufzeichnungen von Transaktionen und Änderungen in der Datenbank. Das Protokoll wird für die Absturzsicherung und die Datenkonsistenz verwendet. |
| Sicherung und Wiederherstellung | SQL Server unterstützt vollständige, differenzielle und Transaktionsprotokoll-Backups, wodurch es möglich ist, eine Datenbank mit der entsprechenden Konfiguration zu einem bestimmten Zeitpunkt wiederherzustellen. |
| Transaktionen und ACID | Gewährleisten Atomarität, Konsistenz, Isolation und Dauerhaftigkeit von Datenoperationen. |
| Indizes | Beschleunigen Suchvorgänge und Abfrageausführungen, können jedoch nach bestimmten Fehlern beschädigt werden oder neu erstellt werden müssen. |
| Mechanismen zur Integritätsprüfung | Primär- und Fremdschlüssel, Einschränkungen und Prüfbedingungen helfen, die Datenkorrektheit sicherzustellen. |
| Wiederherstellungsmodelle | Die Wiederherstellungsmodelle Einfach, Vollständig und Massenvorgangsprotokolliert bestimmen die Möglichkeiten für Transaktionsprotokollsicherungen und Datenbankwiederherstellungsoptionen. |
| Diagnosetools | Der Befehl DBCC CHECKDB prüft die logische und physische Integrität einer Datenbank und hilft, Beschädigungen zu identifizieren. |
Für Tests wurde Windows Server 2022 mit Microsoft SQL Server 2022 vorbereitet. Die Datenbank TestDB befindet sich auf einem Dynamic Spanned Volume mit dem NTFS-Dateisystem. Sie enthält Tabellen, Testkundendatensätze und im Feld VARBINARY(MAX) gespeicherte Dateien. Die MDF-Datei befindet sich im Verzeichnis SQLData, die LDF-Protokolldatei in SQLLogs und das vollständige Backup TestDB_Full.bak im Verzeichnis SQLBackup.
So greifen Sie auf die Serverdatenträger zu
METHODE 1. Laufwerke an einen Workstation-Computer anschließen
Wenn die SQL-Server-Dateien auf einem separaten physischen Datenträger gespeichert sind, kann dieser über einen SATA-Adapter, USB-Adapter oder eine Dockingstation an einen Workstation-Computer angeschlossen werden.
Wenn die Datenbank auf einem Dynamic Spanned Volume oder in einer anderen Multi-Disk-Konfiguration gespeichert war, ist es vorzuziehen, Zugriff auf alle Datenträger zu haben, aus denen sie bestand.
Wenn es nicht möglich ist, alle Datenträger gleichzeitig anzuschließen, können Sie sektorweise Abbilder davon erstellen. Wählen Sie dazu in Hetman RAID Recovery das physische Laufwerk aus, starten Sie Datenträger speichern, geben Sie den Speicherort an und warten Sie, bis der Kopiervorgang abgeschlossen ist.

Anschließend kann das Laufwerk getrennt und auf dieselbe Weise ein Abbild des nächsten Laufwerks erstellt werden. Mounten Sie die fertigen Abbilder über Datenträger einbinden und verwenden Sie sie zusammen mit den physischen Datenträgern für die Analyse.

Dieser Ansatz ermöglicht es außerdem, mit Kopien weiterzuarbeiten, ohne die Quelldatenträger zusätzlich zu belasten.

METHODE 2. SSH-Zugriff konfigurieren
Es gibt eine weitere Möglichkeit, auf die Laufwerke zuzugreifen, ohne sie physisch zu entfernen. Wenn Windows Server 2022 noch läuft und über das Netzwerk erreichbar ist, können die Laufwerke per SSH remote mit Hetman RAID Recovery verbunden werden.
Dazu konfigurieren Sie vorab OpenSSH Server auf dem Windows Server.

Starten Sie den Dienst OpenSSH SSH Server – sshd – und stellen Sie ihn bei Bedarf auf automatischen Start.


Überprüfen Sie außerdem den Zugriff über TCP-Port 22 und stellen Sie sicher, dass das für die Verbindung verwendete Konto über die erforderlichen Berechtigungen für den Zugriff auf die Serverlaufwerke verfügt.
Öffnen Sie nach der Serverkonfiguration Hetman RAID Recovery. Gehen Sie im oberen Menü zu Tools und wählen Sie Connect via SSH.

Geben Sie im Feld Remote server die IP-Adresse des Windows Servers ein und im Feld Port 22. Wählen Sie im Abschnitt Credentials die erforderliche Authentication method aus und geben Sie Benutzernamen und Kennwort des Kontos ein. Falls erforderlich, können Sie Save server details und Save authentication data aktivieren, damit diese Parameter nicht erneut eingegeben werden müssen. Klicken Sie anschließend auf Next.

Nach einer erfolgreichen Verbindung zum Server werden im nächsten Fenster die verfügbaren physischen Datenträger und logischen Arrays angezeigt. Wählen Sie die Laufwerke aus, die zum erforderlichen JBOD gehören, und fahren Sie fort.

Nach der Bestätigung werden sie im Hauptfenster von Hetman RAID Recovery angezeigt, wo mit ihnen auf die gleiche Weise wie mit lokal angeschlossenen Laufwerken gearbeitet werden kann.
Achten Sie auf die Netzwerkinfrastruktur. Da Vorgänge mit den Laufwerken über das Netzwerk ausgeführt werden, ist für eine stabile und komfortable Verbindung vorzuziehen, dass Workstation, Windows Server und das lokale Netzwerk Datenübertragungsraten von 1 Gbit/s und höher unterstützen. Dies trägt dazu bei, die Laufwerksanalyse und die Übertragung wiederhergestellter Dateien zu beschleunigen.
Diese Methode ist besonders praktisch, wenn der Server noch läuft und das physische Entfernen und Anschließen einer großen Anzahl von Laufwerken an einen anderen Computer unerwünscht oder schwierig ist.
So stellen Sie eine gelöschte SQL Server 2022-Datenbank wieder her
METHODE 1. Wiederherstellung einer Datenbank aus einer BAK-Datei
Gehen wir nun zum ersten Szenario über. In diesem Fall ist die vollständige Sicherungsdatei TestDB_Full.bak nach der Wiederherstellung verfügbar und kann zum Wiederherstellen der Datenbank verwendet werden.
Öffnen Sie Microsoft SQL Server Management Studio und verbinden Sie sich mit der erforderlichen SQL Server-Instanz.

Öffnen Sie im Baum Object Explorer das Kontextmenü für Databases und wählen Sie Restore Database.

Wählen Sie als Quelle Device, geben Sie die Datei TestDB_Full.bak an und überprüfen Sie, ob SQL Server das Backup korrekt erkannt hat.

Um die ursprüngliche Datenbank TestDB nicht zu ändern, stellen Sie sie unter einem separaten Namen wieder her, TestDB_Restored.

Geben Sie in den Wiederherstellungseinstellungen separate Namen und Pfade für die physischen Datenbankdateien an, damit keine Konflikte mit den Dateien der ursprünglichen TestDB entstehen. Verwenden Sie für die neue Instanz TestDB_Restored.mdf und TestDB_Restored_log.ldf.

Starten Sie Restore und warten Sie, bis der Vorgang abgeschlossen ist. Nach einer erfolgreichen Wiederherstellung wird die Datenbank TestDB_Restored im Object Explorer angezeigt.

Öffnen Sie sie und überprüfen Sie die Tabellen und Datensätze. Stellen Sie außerdem sicher, dass die im Feld VARBINARY(MAX) gespeicherten Daten verfügbar sind. Auf diese Weise überprüfen wir nicht nur die Erstellung der Datenbank, sondern auch die Verfügbarkeit ihres Inhalts nach der Wiederherstellung aus der BAK-Datei.

METHODE 2. Wiederherstellung einer gelöschten Datenbank
Im nächsten Fall wurde die Datenbank TestDB_Restored versehentlich gelöscht und wird in Microsoft SQL Server Management Studio nicht mehr angezeigt. Ihre physischen Dateien TestDB_Restored.mdf und TestDB_Restored_log.ldf waren ebenfalls nicht mehr verfügbar.
Das Dynamic Spanned Volume selbst bleibt jedoch zugänglich, sodass eine erneute Rekonstruktion des JBOD nicht erforderlich ist.

Öffnen Sie Hetman RAID Recovery, wählen Sie das logische NTFS-Volume aus, auf dem sich die SQL-Server-Dateien befanden, und starten Sie einen Schnellscan.

Nach Abschluss der Analyse wechseln Sie in die Verzeichnisse, in denen die MDF– und LDF-Dateien gespeichert waren, und prüfen Sie die Ergebnisse. Suchen Sie die gelöschten Dateien TestDB_Restored.mdf und TestDB_Restored_log.ldf und notieren Sie deren Namen, Größe und Speicherort.


Wenn der Schnellscan die erforderlichen Dateien nicht findet oder das Ergebnis unvollständig ist, kehren Sie zur Auswahl des Analysemodus zurück und starten Sie den Vollscan. Dieser führt eine tiefere Analyse von NTFS durch und kann weitere gelöschte Daten finden.
Nachdem die erforderlichen MDF– und LDF-Dateien gefunden wurden, fügen Sie sie der Wiederherstellungsliste hinzu und speichern Sie sie auf einem anderen physischen Datenträger.

Es wird nicht empfohlen, die Dateien zurück auf das ursprüngliche Dynamic Spanned Volume wiederherzustellen, da neue Schreibvorgänge andere Daten überschreiben können, die möglicherweise noch wiederhergestellt werden können.
Nachdem die physischen Dateien wiederhergestellt wurden, kehren Sie zu Microsoft SQL Server Management Studio zurück. Wählen Sie im Kontextmenü für Databases Attach.

Fügen Sie die wiederhergestellte Datei TestDB_Restored.mdf hinzu und überprüfen Sie, ob SQL Server die zugehörige Protokolldatei TestDB_Restored_log.ldf erkennt.

Wenn beide Dateien lesbar und konsistent sind, führen Sie Attach aus. Nach dem Anfügen wird die Datenbank wieder in der SQL-Server-Liste angezeigt.

Öffnen Sie die Tabellen und überprüfen Sie die Datensätze. Prüfen Sie außerdem die Verfügbarkeit der im Testdatensatz verwendeten VARBINARY(MAX)-Daten. Wenn Struktur, Datensätze und gespeicherte Dateien verfügbar sind, kann die Wiederherstellung als erfolgreich betrachtet werden.

Fazit
Wir haben zwei Hauptszenarien für die Arbeit mit Microsoft SQL Server 2022-Datenbankdateien untersucht:
- Im ersten Fall wurde die verfügbare BAK-Sicherungsdatei verwendet, um die Datenbank mit Restore wiederherzustellen.
- Im zweiten Fall wurden nach dem Löschen der Datenbank die physischen MDF- und LDF-Dateien gefunden und mit Hetman RAID Recovery wiederhergestellt, wonach sie über Attach wieder an SQL Server angefügt wurden.
Hetman RAID Recovery ermöglicht die Arbeit mit physischen Datenträgern, sektorweise erstellten Abbildern und entfernten Datenträgern über SSH und unterstützt außerdem Windows, Linux und macOS. Dadurch ist es möglich, die Wiederherstellung auch dann zu organisieren, wenn SQL-Server-Dateien auf Multi-Disk-Konfigurationen gespeichert sind oder wenn das Entfernen und Anschließen der Serverlaufwerke an einen anderen Computer umständlich ist.




