Ich kenne zwei Arten von Kunden: Die einen, die Datensicherungen machen und jene, die noch keinen Festplattencrash oder Ähnliches hatten oder einfach durch Beratungsresistenzen die Empfehlung einer Datensicherung in den Wind schießen. Aber wie auch immer wieder, werden wir EDV Techniker zu Hilfe geholt um die Scherben zu begutachten und durch wundersame Weise zu retten.
Eine defekte Datenbank im SQL Server wird im SQL-Manager als ‚SUSPECT‘ angezeigt und man kann eigentlich nichts damit anfangen. Ein schneller weg um Daten auszulesen ist, sie in den Notfallsmodus, ‚EMERGENCY‘ zu versetzen, wo sie zumindest lesbar ist und man so einige Daten extrahieren und in eine neue Datenbank kopieren kann. Zur Sicherheit schränken wir den Zugriff noch auf einen einzigen Benutzer ein:
ALTER DATABASE dbName SET EMERGENCY
ALTER DATABASE dbName SET SINGLE_USER
Nachdem man die Datenbank nun vorbereitet hat, kann man einen Reparaturversuch starten, mit CheckDB:
DBCC CheckDB (dbName , REPAIR_ALLOW_DATA_LOSS)
Wenn das geklappt haben sollte, kann man die Datenbank wieder in den Normalzustand versetzen und eine Datensicherung anstoßen.
ALTER DATABASE dbName SET MULTI_USER
Ich persönlich würde die Datenbank danach noch in eine neue Datenbank kopieren, unabhängig davon, ob die Reparatur geklappt hat oder nicht um Folgeschäden zu verhindern…