Was tun, wenn man das LDF-File einer Datenbank gelöscht hat

Bei einem Kunden hatten wir das Problem, das der MS SQL Server sein Transaction Log (LDF-Datei) mit 40 GB so groß geschrieben hatte, dass die Serverplatte voll war und unser Produktivsystem abgestürzt ist.

Da die LDF-Datei ja „nur“ ein Logfile ist, habe ich den SQL Server gestoppt und die Datei gelöscht und mit 0 Byte neu angelegt. Der SQL Server ließ sich dann auch wieder starten. Aber auf die Datenbank war kein Zugriff mehr möglich, alle Daten weg! Da habe ich ganz schön geschwitzt. Ich musste eh schon schwizen, weil das System 24 h im Volleinsatz ist, und der Serverabsturz selbst schon genug Ärger gemacht hat. m(

Zum Glück kann man das LDF-File neu schreiben lassen. Per SQL-Befehlen ist wie folgt vorzugehen:

ALTER DATABASE MYCRASHEDDB REBUILD LOG ON (NAME=MYCRASHEDDB_log, FILENAME=’C:\Program Files\Microsoft SQL Server\MSSQL10_50.I01\MSSQL\DATA\MYCRASHEDDB_log.ldf’)
DBCC CHECKDB (MYCRASHEDDB)
ALTER DATABASE SET MULTI_USER
ALTER DATABASE SET SINGLE_USER
GO
DBCC CHECKDB(‘MYCRASHEDDB’, REPAIR_ALLOW_DATA_LOSS)
GO

Und Du bist gerettet, mein Freund. ;-)

dev/sql/mssql08crash.txt · Zuletzt geändert: 17.12.2015, 23:53 Uhr von wikiredaktion@reneknipschild.de
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
rkWiki wird freundlich bereitgestellt von
René Knipschild – Custom Software Development, Ihr Partner in Sachen IT-Beratung & individueller Software-Entwicklung. www.IT-Beratung-Nordhessen.de – Made in Germany
Copyleft inverted copyright sign 2012-2024 René Knipschild | www.reneknipschild.net | Impressum | Datenschutz