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

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

不幸的是,我不知道从哪里开始,我很难确定哪些是Google上的优秀文章。

我该怎么办?

你可以使用无证件

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 回滚事务

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

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

SQL函数:

DBCC LOG和fn_dblog – 更多细节在这里和这里 。

第三方工具:

Toad for SQL Server和ApexSQL日志 。

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

  • 使用事务日志回滚事务

  • SQL Server事务日志浏览器/分析器

  • 阅读SQL Server 2008中的日志文件(* .LDF)

我不小心在错误的环境中删除了大量的数据,这篇文章是我发现的第一个。

因为我正在同时掏裤子和寻找解决scheme,所以我首先看到了ApexSQL Logs ,这是一个可以接受的成本的2000美元。

但是,我发现Toad for Sql Server可以从事务日志中生成撤销脚本,只有$ 655。

最后,发现一个更便宜的SysToolsGroup日志分析器选项,它只有300美元。