日期:2014-05-16  浏览次数:20470 次

SQL2008根据日志还原数据库

本功能偶自己亲自用过.所以可以确保好用.但偶只是处理这一个问题,如果各位还有什么不同意见或补充,请给我留言,我再测试更新本文,

 

我们在操作数据库是,难免有些误操作,如果无法恢复,将会给我们造成很大的损失.这里就给大家说一个,当误操作发生时,我们可以把数据库还原成误操作之前的状态.

 

 

--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)
RESTORE DATABASE YP FROM DISK='D:\YP.bak' WITH REPLACE,NORECOVERY
GO
--**这里的"NORECOVERY"非常关键,手动还原在初始数据库,可能会用日志还原时报错.**

--将事务日志还原到删除操作前[50分钟前](这里的时间对应上面的删除时间,并比删除时间略早
DECLARE @dt datetime
SELECT @dt=DATEADD(n,-50,GETDATE() )
--获取比表被删除的时间略早的时间:YP_LOG.bak是发生误操作后的日志备份
RESTORE LOG YP FROM DISK='D:\DATAZY\YP_LOG.bak' WITH RECOVERY,STOPAT=@dt
GO


 

这个功能以前只是在书本上了解过,后来一直没用过,今天突然犯了个错误,一不小心把我的数据给删除了!这是我辛辛苦苦半个月的整理数据呀!就这么个不小心给删除了!后来我想到这个功能,就在网上找了一下,结果又还原到误操作之前的数据库了!哈哈.

 

这里应该有几个条件:

1,这个数据库有原始的状态[备份/新建库].

2,在这个原始状态之后,日志没有被删除过.

3,记住你误操作的时间.

如果你删除过日志,或者说没有最被的状态,那应该就没有戏了!