MS SQL Server 2008: Das System kann die angegebene Datei nicht finden e:\sql10_main_t\sql\mkmastr\databases\objfre\i386\modellog.ldf

Bei diesem Fehler handelt es sich um einen Bug im Microsoft SQL Server 2008 und 2008 R2. Dies kann nicht nur in den Express Versionen auftreten, sondern auch in allen anderen Versionen.

Die Ursache

Die beiden Oben aufgeführten Dateien MSDBData.mdf und modellog.ldf geören zu den Systemdatenbanken.  Es existieren exakt 4 Systemdatenbanken pro Instanz. Die Datenbanken sind master, model, msdb und tempdb.

Die master Datenbank beinhaltet die komplette Konfiguration der MS SQL Installation bzw. der Instanz.

Die model Datenbank ist die die Vorlagen-Datenabank für alle neuen Datenbanken. Sie enthält die Grundstruktur jeder neuen MS SQL Datenbank.

Die msdb Datenbank ist ebenfalls eine sehr wichtige Datenbank, da diese Berichte und Wartungsläufe beinhaltet.

Die tempdb Datenbank ist eine temporäre Datenbank Datei die nur im Ausführungsmodus genutzt wird. Sie enthält Tabellen die dynamisch erzeugt werden und nur temporär existieren. Sie wird bei jedem Neustart auf Basis der model Datenbank neu angelegt.

Das Problem der Fehlermeldung liegt darin begründet, dass der Microsoft SQL Server 2008 einen Fehler beinhaltet, der falsche Werte in die Konfiguration schreibt.

Die Lösung

Um das Problem nun zu lösen, müssen wir uns lokal mit der Datenbank verbinden und prüfen welche Konfigurationseinträge fehlerhaft hinterlegt sind.

Dazu starten wir die Problem-Instanz WEBDB mit dem Trace-Falg T3608. Somit werden alle Prüfvorgänge und Aktualisierungen ausgesetzt, außer für die master Datenbank. Der Startparameter f bewirkt das Starten des Servers mit einer Minimalkonfiguration im Einzelbenutzermodus.

Nun können wir uns mit dieser Instanz verbinden.

Die Abfrage der Speicherorte der einzelnen Datenbankdateien kann nun ausgelesen werden.

Wir erhalten danach eine Ausgabe in der Art wie die Folgende:

Damit sich die Instanz wieder starten lässt, müssen die fehlerhaften Einträge korrigiert werden.

Nachdem diese Einträge nun stimmen, muss der MS SQL Server gestoppt werden.

Die Datenbank kann nun wieder normal, ohne Probleme, gestartet und genutzt werden.