如何在SQL Server 2008中查看事务日志

时间:2010-12-22 08:47:28

标签: sql-server transaction-log

我需要在SQL Server 2008上查看数据库的事务日志,以便找到删除事务并希望将其回滚。

不幸的是,我不知道从哪里开始,而且我发现很难确定Google上哪些好的文章。

我该怎么办?

3 个答案:

答案 0 :(得分:52)

您可以使用未记录的

DBCC LOG(databasename, typeofoutput)

其中typeofoutput:

0: Return only the minimum of information for each operation -- the operation, its context and the transaction ID. (Default)
1: As 0, but also retrieve any flags and the log record length.
2: As 1, but also retrieve the object name, index name, page ID and slot ID.
3: Full informational dump of each operation.
4: As 3 but includes a hex dump of the current transaction log row.

例如, DBCC LOG(数据库,1)

您也可以尝试fn_dblog。

要使用事务日志回滚事务,我将查看Stack Overflow post Rollback transaction using transaction log

答案 1 :(得分:20)

您无法轻松阅读事务日志文件,因为没有正确记录。基本上有两种方法可以做到这一点。使用未记录或半文档化的数据库函数或使用第三方工具。

注意:只有在数据库处于完全恢复模式时才有意义。

SQL函数:

DBCC LOG和fn_dblog - 更多详情herehere

第三方工具:

Toad for SQL ServerApexSQL Log

您还可以查看讨论过的其他几个主题:

答案 2 :(得分:5)

我在错误的环境中意外删除了一大堆数据,这篇文章是我发现的第一篇文章之一。

因为我同时恐慌并寻找解决方案,所以我第一眼就看到了 - ApexSQL Logs,这是2000美元,这是可以接受的费用。

但是,我发现Toad for Sql Server可以从事务日志生成撤消脚本,而且只需655美元。

最后,找到了更便宜的选项SysToolsGroup Log Analyzer,它只有300美元。