日期:2014-05-16 浏览次数:20428 次
刚用SQLServer的时候遇到一个情况,由于用户的误操作导致一张表被删除,由于数据库没有备份,所有不能用Restore还原(现在知道备份是多么的重要)。
去网上查看了第三方的数据恢复工具然后找到了LumigentLog Explorer。照着操作进行了恢复,但是恢复完成后竟然没有发现数据,百思不得器解。不过好在可以通过一些其他的数据把这张表找回来。
现在我们谈谈问什么数据没有被恢复出来。首先SQLServer是通过Log文件对Transaction进行管理的,包括Redo/Undo. Lumigent Log Explorer的原理是一样的,通过解析在线Log或者备份Log将数据还原回来。但是如果Log不存在数据怎么找回来呢?
当时我们的情况是数据库为简单恢复模式,在数据删除后的一段时间当时的日志已经被Truncate掉了,所以及时用恢复工具也没有办法恢复出来。
今天自己做了一个测试删除数据然后运行CHECKPOINT,fn_dblog信息全部消失了,无法看到当时的操作。
看来及时使用Lumigent Log Explorer也要确保你有足够的日志信息。