我们的测试数据库突然缺少行。我们希望他们回来。

有没有办法筛选今天发生在数据库中的所有内容?每个SQL语句?我假设这种东西在事务日志中,但我不确定如何查看它。

有没有办法撤消删除操作?

顺便说一句:是的,我们确实有备份,但也希望找到删除的原因......

有帮助吗?

解决方案

您可以使用 Red Gate 的某些工具执行此操作,但需要付费。请查看 SQL Log Rescue

否则,我很想恢复。

其他提示

[迟到的答案,但希望有用]

有一种方法可以使用事务日志恢复已删除的行,但前提是您使用的是第三方工具,并且只有您的数据库处于完全恢复模式。

戴尔(前身为Quest)有 Toad for SQL Server 和ApexSQL有 ApexSQL日志 ApexSQL Recover ,它还可以读取t-log和恢复数据。不幸的是,Red Gate的Log Rescue只能读取SQL Server 2000上的日志。

还有一种方法可以使用未记录的dbcc log命令读取t-log。有关详情,请参阅此处

考虑到您已经拥有数据库备份,您可以在单独的数据库中恢复它们,然后使用市场上存在的许多数据比较工具之一将缺失的数据插入生产数据库。当然,这只能在创建备份之前恢复数据删除。

您需要第三方工具才能执行此操作。该工具必须能够进入事务日志并查看日志条目,以便您可以查看发生的情况。我没有使用过任何这些工具,但我会为初学者尝试Red Gate的SQL Log Rescue。试一试:

http://www.red-gate.com/products/SQL_Log_Rescue将/index.htm

我会给ChronicDB一个尝试,它有一个免费版本而不是支付红门

http://chronicdb.com/blogs/undelete_from_whoops

您可以在SQL Server中使用 Rollback 命令撤消事务。但是,如果事务是在 Begin 事务中执行的,那么您需要知道事务可以回滚。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top