利用旧备份和日志文件还原数据库
仅仅有一个LDF日志文件是无法恢复数据库的. 但可以利用旧的备份文件进行恢复.
但是要求LDF文件是完整的,且旧的备份文件应该是完整备份(full)且最近的一次备份,不能太旧.
如过是从别的地方找来的LDF文件和BAK文件,请先执行以下1-5步:
(1)启动数据库服务。
在SQL Server Configuration Manager (管理器内) 启动数据库服务
(2)新建同名的数据库(数据库文件名,日志文件名 也要相同 )。
(3)停止数据库服务。
(4)破坏MDF文件
删除MDF文件, 新建一个TXT文件,改名为 MDF文件名,注意要和删除的MDF文件名相同,注意文件后缀名.
(5)复制 LDF
复制并覆盖, 第二步建立的数据库的LDF文件.
(6)启动数据库服务。
(7) (在查询窗口)运行 SQL,
执行如下:
backup log WMS TO DISK='D:/BakLog.bak' WITH NO_TRUNCATE
go
可能会出现错误, 请重复执行,直到成功.
因为数据库损坏,所一要用 WITH NO_TRUNCATE, 具体的用法参看MSDN
(8) 还原旧的数据库
执行如下:
RESTORE DATABASE DataBaseName FROM DISK='D:/DataBasebak.bak' WITH NORECOVERY
go
(9) 还原新数据库
执行如下:
RESTORE LOG DataBaseName FROM DISK='D:/BakLog.bak' WITH RECOVERY
go