BACKUP DATABASE MyDatabase
TO DISK = 'MyDatabase.bak'
WITH INIT --overwrite existing
然后尝试恢复它:
RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE --force restore over specified database
现在数据库被卡在恢复状态中。
有些人推测这是因为备份中没有日志文件,需要使用以下方法进行回滚:
RESTORE DATABASE MyDatabase
WITH RECOVERY
除此之外,当然是失败了。
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.
在灾难情况下,你最不希望的就是一个无法恢复的恢复。
备份包含了数据和日志文件:
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
DROP DATABASE db
命令,这样就成功了(之前我是通过另一台机器上的 SSMS 发出指令)。我猜其他的解决方案也会起作用的。 - Salman A