2008-09-24 5 views
6

Ich habe einen alten Server mit einer abgestorbenen Evaluierungsversion von SQL 2000 (ab 2006) und zwei Datenbanken, die darauf sitzen.Wie füge ich eine MSSQL 2000-Datenbank mit nur einer MDF-Datei an

Aus einem unbekannten Grund fehlen die LDF-Protokolldateien. Vermutlich gelöscht

Ich habe die MDF-Dateien (und in einem Fall auch eine ndf-Datei) für die Datenbanken, die auf diesem Server vorhanden waren, und ich versuche, sie auf einer anderen SQL 2000-Box, die ich habe sitzen.

sp_attach_db beschwert sich, dass die Protokolldatei fehlt und die Datenbank nicht anhängen. Versuche, es mit einer Protokolldatei aus einer Datenbank mit demselben Namen zu täuschen, scheiterten kläglich. sp_attach_single_file_db wird auch nicht funktionieren. Die MDF-Dateien wurden offensichtlich nicht sauber getrennt.

Wie bekomme ich die Datenbanken angehängt und lesbar?

Antwort

6

fand ich diese Antwort, die mit meinen SQL 2000 Maschinen gearbeitet:

Wie eine Datenbank mit einer nicht-sauber abgelöst MDF-Datei befestigen.

Schritt 1: Erstellen Sie eine neue Datenbank mit demselben Namen, und die gleichen Dateien wie die alte auf dem neuen Server verwendet.

Schritt 2: Stoppen Sie den SQL Server, und verschieben Sie Ihre MDF-Dateien (und alle ndf-Dateien, die Sie haben) über die neuen, die Sie gerade erstellt haben. Löschen Sie alle Protokolldateien.

Schritt 3: Starten Sie SQL und führen Sie dies aus, um den DB in den Notfallmodus zu versetzen.

sp_configure 'allow updates', 1 
go 
reconfigure with override 
GO 
update sysdatabases set status = 32768 where name = 'TestDB' 
go 
sp_configure 'allow updates', 0 
go 
reconfigure with override 
GO 

Schritt 4: Restart SQL-Server und beobachten, dass die DB erfolgreich im Notbetrieb ist.

Schritt 5: Führen diese undokumentierten dbcc Option, um die Protokolldatei (in der richtigen Stelle)

DBCC REBUILD_LOG(TestDB,'D:\SQL_Log\TestDB_Log.LDF') 

Schritt 6 neu zu erstellen: Möglicherweise müssen Sie den Status zurücksetzen. Selbst wenn Sie das nicht tun, wird es nicht schaden.

exec sp_resetstatus TestDB 

Schritt 7: stoppen und starten SQL Ihre neu restaurierten Datenbank zu sehen.

+1

Ich musste es später auch in den Multi-User-Modus zurücksetzen, da es aus irgendeinem Grund im eingeschränkten Benutzermodus gelandet ist: ALTER DATABASE TestDB SET MULTI_USER – ChrisWue

1

Klicken Sie im Enterprise Manager mit der rechten Maustaste auf den Server und wählen Sie Datenbank anhängen. Wählen Sie die MDF-Datei und klicken Sie auf OK. Sie werden dann gefragt, ob Sie eine neue Protokolldatei erstellen möchten oder nicht. Sag ja.

+0

Leider klagt es immer noch, dass der physikalische Dateiname blah.ldf falsch sein könnte . " wenn ich das mit einem schlecht abgelösten mdf versuche. – Jonathan

Verwandte Themen