.:: TechBlog ::. 
- 25.05.2006Wiederherstellen einer Microsoft SQL 6.5 Datenbank (.dat) aus beschädigtem System
- Ich hatte beruflich vor kurzem mit folgendem Problem zu kämpfen: Ein älterer Rechner mit NT4 Workstation und SQL Server 6.5 konnte nach jahrelangem Betrieb nicht mehr neu starten. Nach kurzer Analyse stellte sich heraus, dass das NTFS Filesystem beschädigt war. Da kein aktuelles Backup existierte und der Rechner sowieso durch neue Hardware ersetzt werden sollte, bot es sich an das OS neu installiert werden. Wie die Datenbank dennoch auf der neuen Hardware wiederhergestellt werden konnte, möchte ich heute kurz beschreiben...
Der erste Schritt bestand darin zu retten was zu retten ging, d.h. ein vollständiges Backup des bestehenden Systems erstellen. Hierfür setzte ich Acronis True Image ein, welches auch das defekte Filesystem Sektor für Sektor sichern konnte. Wichtig war das Image da im alten Rechner das bestehende RAID1 bereits eine Festplatte vor ein paar Tagen verloren hatte. Mit Hilfe eines dritten Rechners ist man außerdem mit True Image im Stande die gesicherten Partitionen als Laufwerk zu mounten und so auch auf das defekte Filesystem zuzugreifen.
Der erste Versuch bestand darin die so zu erreichende <Datenbankname>.dat aus dem SQL-Verzeichnis zu kopieren und auf den neuen Rechner bei beendeten SQL Server in eine zuvor neu erstellte Datenbank mit dem gleichen Namen einzufügen (im Filesystem wohlgemerkt!). Die Datenbankgröße sollte dabei identisch eingestellt werden - laut verschiedenen Newsgroupeinträgen. Leider misslang der Versuch und die Datenbank wurde als korrupt dargestellt.
Die Lösung des Problems mag auf den ersten Blick etwas verzweifelt klingen, erwies sich aber als äußert effektiv. Es war klar, dass alle Datenbankeinstellungen in der master.dat gehalten werden. Wenn man also die gleiche Basis auf dem neuen Rechner schaffen kann wie sie auf dem alten herrschte (z.B.: Pfadangaben etc.), war ein Übernahme der master Datenbank eine logische Lösung. Gesamt getan: Den SQL Server angehalten, aus C:\MSSQL\Data des Images alle Files (*.dat) transferiert und die Finger gekreuzt + SQL Server neu gestartet. Ergebnis: Die Datenbank war i.O, alle Nutzer waren vorhanden und selbst die Publikationen für die Replikation funktionierten einwandfrei.
Anmerkung: Benötigt man ausschließlich die Datenbank (ohne Nutzer(-rechte), Replikationseinträgen etc.) kann man alle genannten Schritte auf einem Hilfsrechner anwenden, anschließend ein Sicherung aus dem Enterprise Manager durchführen (damit wird nur die Datenbank gesichert) und anschließend auf dem eigentliche Rechner wiederherstellen. Notwendig kann dies werden, wenn die Replikationspartner nicht mehr existieren und so die Publikationen nicht gelöscht werden können – man diese aber nicht mehr benötigt.
Kommentare:
Keine Kommentare vorhanden!