Mittwoch, 20. Oktober 2010

MS SQL Server: Anhängen einer Datenbank mit korruptem Logfile

Situation: Von einer vorliegenden SQL Datenbank ist die mdf-Datei lesbar, die ldf-Datei jedoch nicht.
Aufgabe: Die Datenbank soll dennoch angehangen werden.
Vorgehensweise:

1. Erzeuge eine neue Datenbank mit dem gleichen Namen und den gleichen mdf und ldf Dateien.
2. Stop Sql Server.
3. Umbennen der existierenden mdf Datei.
4. Kopiere original mdf Datei an die Stelle der vorherigen.
5. Lösche die ldf Datei.
6. Start SQL Server
7. Nun ist die Datenbank als suspect gekennzeichnet.
8. Nun müssen die Systemdatenbanken aktualisiert werden, um im Emergency Mode zu starten.
Dadurch werden beim Startvorgang die logfiles nicht benutzt.

Sp_configure "allow updates", 1
go
Reconfigure with override
go
Update sysdatabases set status = 32768 where name = "Bad_Db_Name"
go
Sp_configure "allow updates", 0
go
Reconfigure with override
go

9. Restart Sql Server. Die Datenbank ist jetzt im Emergency Mode.
10. Ausführen des DBCC Kommandos zum Anlegen eines Logfiles

DBCC REBUILD_LOG(yourdbname,'c:\yourdbname.ldf') -- Undocumented step to create a new log file.

11. Ausführen T-SQL-Statement "Execute sp_resetstatus "
12. Restart SQL Server.
13. Datenbank ist jetzt online.

Keine Kommentare: