Ich habe eine Datenbank gesichert:
BACKUP DATABASE MyDatabase
TO DISK = 'MyDatabase.bak'
WITH INIT --overwrite existing
Und dann versucht, es wiederherzustellen:
RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE --force restore over specified database
Und jetzt steckt die Datenbank im Zustand der Wiederherstellung fest.
Einige Leute haben die Theorie aufgestellt, dass es daran liegt, dass in der Sicherung keine Protokolldatei enthalten war und die Sicherung mit Hilfe von Rollforward durchgeführt werden musste:
RESTORE DATABASE MyDatabase
WITH RECOVERY
Außer natürlich, dass das nicht funktioniert:
Msg 4333, Level 16, State 1, Line 1
The database cannot be recovered because the log was not restored.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Und genau das, was Sie in einer katastrophalen Situation wollen, ist eine Wiederherstellung, die nicht funktioniert.
Die Sicherung enthält sowohl eine Daten- als auch eine Protokolldatei:
RESTORE FILELISTONLY
FROM DISK = 'MyDatabase.bak'
Logical Name PhysicalName
============= ===============
MyDatabase C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabase.mdf
MyDatabase_log C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabase_log.LDF