您的位置:首页 > 数据库

SQL2005学习(十二),使用日志文件恢复到故障点

2014-03-18 15:46 183 查看



如上图,我们周一对数据库进行完整备份,周二对数据库进行日志备份,周三还没有对数据库进行备份这时候数据库文件出现了问题,但是日志文件没有出现问题,那么我们就可以在数据库损坏的情况下备份日志文件,从而进行数据库还原。
 
如下图,我目前有一个zxta的数据库,在这个数据库中有一个档案表,这个表中目前没有任何数据



 
我在档案表中插入50条“老三”记录



 
插入50条老三的记录后我们对数据库进行备份,我们输入 backup database zxta to disk='D:\zxta.bak’



 
如下图,备份成功



 
备份成功后视图如下



 
完整备份成功后,我再次在档案表中插入 20条记录"老四",插入过程我不解图了,如下图,目前有70行



 
我们在插入20条老四记录后后对数据库zxta进行日志备份,仍然备份到zxta.bak中,默认为追加不会覆盖以前的备份,我们输入 backup log zxta to disk='D:\zxta.bak'



 
如下图,命令执行后备份成功



 
在老四备份成功后,我们再次插入30条记录"老五",如下图,记录变成了100行



 
现在数据库突然坏了,我们如果想搞坏数据库我们可以停止SQL服务,然后用把数据库以记事本形式打开,最后删除一些记事本中的数据即可,如下图,我删除里面一些记录



 
如下图,重新启动SQL服务后,数据库zxta无法展开了,主要没有+号了,这样我们的数据库就挂了



 
在数据库挂了的情况下,我们对zxta进行日志备份,需要加一个参数,如下图,我们备份成功



 
下面我们就需要还原数据库了,在前面的备份中我们都备份到了d:\zxta.bak文件中,这个文件中的备份我们可以使用一个命令进行查看



 
如下图,我们输入restore headeronly from disk='D:\zxta.bak’就可以查看里面有哪些备份,在备份类型中,1代表完整备份,2代表日志备份



 
下面我们将使用命令来还原zxta数据库,依次输入1 ,2 ,3 这三条命令,然后先执行1,在执行2,最后执行3,其中with fie=就是序号
第一条命令用来恢复数据库,replace参数用来覆盖数据库,norecovery参数代表后面还需要使用日志进行恢复
第二条命令用来恢复日志,norecovery代表后面还需要日志进行恢复
第三条命令,因为后面没有日志了顾不需要norecovery参数



 
如下图,执行完上面的命令后,我们再次查询档案表,发现有100条记录,最后都是老五,说明我们恢复成功



 
刷新下数据库,发现zxta前面的+号 出现了



 
以上,我们就完成了使用日志文件恢复到故障点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: