SQL数据被删除如何恢复

我的数据库被SQL注入了 一些内容被替换掉了 我有一个3月26日的完全备份,以后的是日志备份,如何用这2个还原到8月6日的数据。请说的详细些,分数可以追加。
解决了 感谢大家 我的方法希望可以帮助更多人!
比如早上8:00对数据库做一个完全备份.
由于误操作,在中午12:00的时候,删几百行数据.
那么,你现在要做的是把当前数据库的日志做一下备份.
然后将数据库进入单用户模式,把数据库恢复到8:00的数据
再通过日志,指定时间点11:59恢复
这样数据就恢复到删除几百行之前的数据了
关键性操作如下:
----使用master数据库
USE MASTER
GO

---将数据库RES进入单用户状态

SP_DBOPTION 'RES','single user',true
go

--(将数据库RES的完整备份恢复,备份文件路径d:\sql-back\res.bak)

restore database res from disk='d:\sql-back\res.bak' with norecovery
go

--通过日志文件 (d:\sql-back\restran.bak),指定时间点恢复
RESTORE log res from disk='d:\sql-back\restran.bak' with stopat='2007/05/28 11:59'
go

----将数据库RES恢复多用户模式
SP_DBOPTION 'RES','single user',false
go

----完全备份RES和日志文件通过图形的企业管理器做就可以

个人认为,这是很价值的东东

企业管理器
--右键"数据库"
--所有任务
--还原数据库
--"还原为数据库库"中输入还原后的数据库名
--还原选择"从设备"--选择设备--添加--添加你的备份文件--确定,回到数据库还原的界面
--备份号--选择内容--选择你要恢复那次备份的内容
--选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名
--如果要还原的数据库已经存在,选择"在现有数据库上qz还原"-
-确定

--或用SQL语句:
restore database 数据库 from disk='c:\你的备份文件名'

还原数据库
企业管理器中的操作:

1.进行完整恢复
企业管理器--右键"数据库"--所有任务--还原数据库
--"还原为数据库库"中输入还原后的数据库名,设为:test
--还原选择"从设备"--选择设备--添加--添加你的备份文件
--确定,回到数据库还原的界面
--"还原备份集",选择"数据库--完全"
--选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名
--如果要还原的数据库已经存在,选择"在现有数据库上qz还原"
--"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"
--确定

--或用SQL语句:
restore database 数据库 from disk='c:\你的完全备份文件名' with norecovery

2.进行差异恢复
企业管理器--右键"数据库"--所有任务--还原数据库
--"还原为数据库库"中选择数据库名:test
--还原选择"从设备"--选择设备--添加--添加你的备份文件
--确定,回到数据库还原的界面
--"还原备份集",选择"数据库--差异"
--"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"
--确定

--或用SQL语句:
restore database 数据库 from disk='c:\你的差异备份文件名' with norecovery

3.进行日志恢复
企业管理器--右键"数据库"--所有任务--还原数据库
--"还原为数据库库"中选择数据库名:test
--还原选择"从设备"--选择设备--添加--添加你的备份文件
--确定,回到数据库还原的界面
--"还原备份集",选择"事务日志"
--"恢复完成状态",选择"使数据库可以继续运行,但无法还原其它事务日志"
--确定

--或用SQL语句:
restore log 数据库 from disk='c:\你的日志备份文件名' with recovery

--解决还原数据库目录不对的详细步骤:

1.企业管理器中的方法:
--右键"数据库"
--所有任务
--还原数据库
--"还原为数据库库"中输入还原后的数据库名
--还原选择"从设备"--选择设备--添加--添加你的备份文件--确定,回到数据库还原的界面
--备份号--选择内容--选择你要恢复那次备份的内容
--选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名
--如果要还原的数据库已经存在,选择"在现有数据库上qz还原"-
-确定

2.用SQL语句的方法(假设你的备份文件名为: c:\xx.bak

--列出备份文件中的逻辑文件名
restore filelistonly from disk='c:\xx.bak'

--用语句恢复,根据上面列出的逻辑文件名使用move选项
restore database 恢复后的数据库名
from disk='c:\xx.bak'
with move '逻辑数据文件名1' to 'c:\物理数据文件名1'
,move '逻辑数据文件名2' to 'c:\物理数据文件名2'
...
,move '逻辑数据文件名n' to 'c:\物理数据文件名n'

没有什么要特别注意的,和企业版之间的备份/还原要注意的东西一样:

1.要注意备份时的设置问题,不要指定多个备份文件,否则还原时也要指定多个备份文件

2.要注意备份的媒体处理方式问题,用重写,而不是追加,否则还原的时候要指定备份号

3.要注意备份的方式,用完全备份,而不是其他备份方式,否则还原时还要其他备份文件支持
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-12
其实最后的办法是你下载一个数据还原软件,因为你的SQl文件存在于磁盘上,不就是一个文件吗?这样你就可以恢复了
第2个回答  2009-08-12
使用Log Explorer进行数据恢复,下面的网址中有详细说明和用法:
http://www.th7.cn/Article/sj/ms/200709/60238.html

下载地址:
http://download.csdn.net/source/278909

---
以上,希望对你有所帮助。
第3个回答  2009-08-11
做个标记。
相似回答