急问题:还原SQL数据库!

时间:2021-03-31 20:47:16
昨天网站不幸被黑,数据库的表全部被删,更不幸的是也没有做备份。现在只剩下:.mdf和.ldf文件。

请问一下,有没有办法可以通过日志文件进行还原数据???急啊!

8 个解决方案

#1


尝试用final data,Easy Recovery等数据恢复软件恢复

#2


老大,没有log文件恢复太有难度了,到网上找找看看有相关工具没有?

#3


用第三方工具

Log Explorer for SQL Server v4.0.2
http://js.fixdown.com/soft/8324.htm

注册机产生的是注册码,是两个

用解压缩密码解开后,压缩包里也有一个注册机的

打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
点击“View DDL Commands”里面就有很多drop table 命令
点击下面的“undo”按钮是生成表结构的语句(create table ....)
点击下面的“Salvage”按钮是生成插入语句的(insert into ...values....)
(以上lynx1111提供)

想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....


使用经验总结帖:
http://community.csdn.net/Expert/topic/2954/2954818.xml?temp=.9148676
------------------------------------------------------------------------

log explorer使用的几个问题

1)对数据库做了完全 差异 和日志备份
备份时选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时
提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才的记录了


如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志

2)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复

3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.

3)
不要用SQL的备份功能备份,搞不好你的日志就破坏了.

正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.

然后启动SQL服务,用log explorer恢复数据

4)
如果你的数据库的日志恢复模型是simple,那就不可能用log explorer恢复

5)
Log explorer必须安装在要恢复数据库的sql server服务器上,或者在sql server服务器上安装服务端,在操作的电脑上安装客户端进行数据恢复

#4


楼上的老大,你写了这么多,到底有没有希望还原啊?

#5


这估计只能靠运气了。

#6


如楼上所言,利用第三方日志恢复工具恢复。
如果日志被截断导致无法从.ldf文件恢复,那就没有恢复的希望了。

#7


你试试在目前的情况下,备份事务日志,仍后在从日志恢复的过程中,看看能否选择恢复到被破坏前的情况。原则上是需要一个数据库在出错前的一个完全备份外加一个事务日志备份才能这样做,但现在你也只能如此试试。

#8


还有没有其他的方法呀?

#1


尝试用final data,Easy Recovery等数据恢复软件恢复

#2


老大,没有log文件恢复太有难度了,到网上找找看看有相关工具没有?

#3


用第三方工具

Log Explorer for SQL Server v4.0.2
http://js.fixdown.com/soft/8324.htm

注册机产生的是注册码,是两个

用解压缩密码解开后,压缩包里也有一个注册机的

打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
点击“View DDL Commands”里面就有很多drop table 命令
点击下面的“undo”按钮是生成表结构的语句(create table ....)
点击下面的“Salvage”按钮是生成插入语句的(insert into ...values....)
(以上lynx1111提供)

想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....


使用经验总结帖:
http://community.csdn.net/Expert/topic/2954/2954818.xml?temp=.9148676
------------------------------------------------------------------------

log explorer使用的几个问题

1)对数据库做了完全 差异 和日志备份
备份时选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时
提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才的记录了


如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志

2)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复

3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.

3)
不要用SQL的备份功能备份,搞不好你的日志就破坏了.

正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.

然后启动SQL服务,用log explorer恢复数据

4)
如果你的数据库的日志恢复模型是simple,那就不可能用log explorer恢复

5)
Log explorer必须安装在要恢复数据库的sql server服务器上,或者在sql server服务器上安装服务端,在操作的电脑上安装客户端进行数据恢复

#4


楼上的老大,你写了这么多,到底有没有希望还原啊?

#5


这估计只能靠运气了。

#6


如楼上所言,利用第三方日志恢复工具恢复。
如果日志被截断导致无法从.ldf文件恢复,那就没有恢复的希望了。

#7


你试试在目前的情况下,备份事务日志,仍后在从日志恢复的过程中,看看能否选择恢复到被破坏前的情况。原则上是需要一个数据库在出错前的一个完全备份外加一个事务日志备份才能这样做,但现在你也只能如此试试。

#8


还有没有其他的方法呀?