如何查看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美元。