日期:2014-05-17  浏览次数:20614 次

急求sql server 2012 日志恢复工具!!!
谁有SQL SERVER 2012日志查看工具,我网上搜了下,SQL SERVER2000,2005,2008的版本的当有日志查看工具,就是2012版本的没有找到,假如在SQL SERVER2012中误删了数据,谁有什么好方法可以恢复误删的数据。
------解决方案--------------------
 可以参考一下我的文章http://blog.csdn.net/dba_huangzj/article/details/8491327
------解决方案--------------------
引用:
Quote: 引用:

试下3楼的方法

我又试过了,是可以用,但一次只能恢复一条数据,比如我执行一条更新命令影响了10000行,我就得执行10000次的恢复(他没有多选功能),这是不可取的吧。
这个跟多少条没关系啊,比如你在12点delete了整表,你把数据还原到11:59,就可以找回这批数据
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

3楼的方法,不是我要的,我要的是只恢复误删的数据,或是错误更新的数据,一般是执行了一条不带where语句的命令。


如果你有完全备份,另外也有日志,可以考虑:

把数据库还原成另一个数据库,比如你原来的数据库是xxx,那么用完全备份先还原成数据库yyy,注意,必须要修改文件的路径,然后用事务日志,恢复到错误操作之前的一个时间点,然后再把数据导出来,再导入到当前数据库中,这样就可以恢复被删除的数据了。


假如是我,我也想到的是这个方法,呵呵
真正的敢去恢复整个生产库的,没经历过,也没见过,
我这里oracle的又一次也是采用这种方式恢复了
一个同事误删了一张表,DBA把备份文件在备份服务器上恢复了,然后拿出来这张表的数据导出来还原的
毕竟,不能说为了某个人的一张表,要停掉整个数据库。

另外,微软自己都没有公布根据日志生成基于脚本的还原技术,第三方的工具可靠吗?
我一直没有接触过这种第三方的工具,难不成是从微软离职sqlserver工程师的人写的,呵呵。


另外,这个命令很重要,可以研究日志:

dbcc log(数据库名称,1)

我刚才研究了一下,发现当执行:
begin tran
 delete from a
 rollback;

 
然后:dbcc log(数据库名称,1)

会有:

LOP_BEGIN_XACT
LOP_DELETE_ROWS
LOP_DELETE_ROWS
LOP_DELETE_ROWS
LOP_SET_FREE_SPACE
LOP_SET_FREE_SPACE
LOP_INSERT_ROWS
LOP_INSERT_ROWS
LOP_INSERT_ROWS
LOP_ABORT_XACT

说明,对于这种回滚的事务,也会有先删除,然后再插入的日志
------解决方案--------------------
引用:
谢谢yupeigu 阳泉酒家小当家 
要用备份和还原的方法我也知道,问题是数据库没有备份的情况下,或是日志不全(中间被truncate)
,就只能使用日志恢复工具了。现在网上没有类似log explorer(最高支持2008),能支持2012的第三方工具吗?
试试其他第三方软件,不过如果不买的话,只能使用了。但是事后处理毕竟不是好办法,还有一些要钱的,是针对MDF文件进行还原
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

3楼的方法,不是我要的,我要的是只恢复误删的数据,或是错误更新的数据,一般是执行了一条不带where语句的命令。


如果你有完全备份,另外也有日志,可以考虑:

把数据库还原成另一个数据库,比如你原来的数据库是xxx,那么用完全备份先还原成数据库yyy,注意,必须要修改文件的路径,然后用事务日志,恢复到错误操作之前的一个时间点,然后再把数据导出来,再导入到当前数据库中,这样就可以恢复被删除的数据了。


假如是我,我也想到的是这个方法,呵呵
真正的敢去恢复整个生产库的,没经历过,也没见过,
我这里oracle的又一次也是采用这种方式恢复了
一个同事误删了一张表,DBA把备份文件在备份服务器上恢复了,然后拿出来这张表的数据导出来还原的
毕竟,不能说为了某个人的一张表,要停掉整个数据库。

另外,微软自己都没有公布根据日志生成基于脚本的还原技术,第三方的工具可靠吗?
我一直没有接触过这种第三方的工具,难不成是从微软离职sqlserver工程师的人写的,呵呵。


另外,这个命令很重要,可以研究日志:

dbcc log(数据库名称,1)

我刚才研究了一下,发现当执行:
begin tran
 delete from a
 rollback;

 
然后:dbcc log(数据库名称,1)

会有:

LOP_BEGIN_XACT
LOP_DELETE_ROWS
LOP_DELETE_ROWS
LOP_DELETE_ROWS
LOP_SET_FREE_SPACE
LOP_SET_FREE_SPACE
LOP_INSERT_ROWS
LOP_INSERT_ROWS
LOP_INSERT_ROWS
LOP_ABORT_XACT

说明,对于这种回滚的事务,也会有先删除,然后再插入的日志



试了,也查阅了相关资料,这个问题好像比较复杂,不能一概而论
http://www.cnblogs.com/zhouqiang52154/archive/2009/06/20/1507488.html