读取SQL Server事务日志的方法

时间:2011-09-11 05:31:52

标签: sql-server transaction-log

我想讨论SQL Server的事务日志,我搜索了一下,发现了一些已完成的产品,例如Lumigent Log Explorer。但我仍然对它感兴趣。

我知道的方法: 1.直接从物理日志文件中读取 2.使用数据库命令/查询,DBCC LOG或通过fn_dblog

问题/难题: 1.日志文件结构很难逆向工程。 2.当我执行大量INSERT时,fn_dblog没有全部,例如,当我插入50000条记录时,fn_dblog只有29616条LOP_INSERT_ROWS条记录,这意味着20384条记录被截断了?我不知道内部有关fn_dblog的逻辑,有人可以解释一下吗?fn_dblog有限制吗?

很高兴听到有关SQL Server事务日志的一些研究。

3 个答案:

答案 0 :(得分:6)

有多种方法可以打开LDF文件,而且大部分都是这样做 - 打开它。获取任何人类可读的信息并使用它是很棘手的

ApexSQL Log是一个SQL Server事务日志阅读器,它读取在线事务日志,分离的事务日志和事务日志备份 - 本机和本机压缩。作为LDF查看器,它专注于操作(DML和DDL,总共45个),以及执行这些操作所改变的内容:Open LDF file and view LDF file content

免责声明:我在ApexSQL担任产品支持工程师

答案 1 :(得分:3)

正如paulsm4已经指出的那样 - 事务日志并不是人类可读的,但有一些方法可以使用第三方工具来阅读它。

只有真正专注于此的工具是ApexSQL Log,但您也可以尝试Quest Toad

答案 2 :(得分:1)

SQL Server事务日志不是意味着是“人类可读的”。它旨在支持SQL Server,允许事务,读取一致性等等。

建议: 如果您真的想了解SQL Server内部(包括事务日志的工作原理),我强烈建议您获取本书的副本:

SQL Server 2008 Internals, Kalen Delaney

这是一本很好的书;你将学到很多实用而重要的信息。保证满意!