0

我想讨论一下SQL Server的事务日志,我四处寻找,找到了一些完成的产品,例如Lumigent Log Explorer。但我仍然对它感兴趣。

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

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

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

4

3 回答 3

6

打开 LDF 文件的方法有很多种,其中大多数都是这样做的——打开它。获取任何人类可读的信息并加以利用是很棘手的

ApexSQL Log 是一个 SQL Server 事务日志阅读器,它可以读取在线事务日志、分离的事务日志和事务日志备份——包括本地和本地压缩的。作为一个 LDF 查看器,它专注于操作(DML 和 DDL,总共 45 个),以及执行这些操作后发生的变化:打开 LDF 文件并查看 LDF 文件内容

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

于 2013-10-07T20:17:59.283 回答
3

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

唯一真正擅长于此的工具是ApexSQL Log,但您也可以尝试Quest Toad

于 2013-05-17T09:09:50.563 回答
1

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

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

SQL Server 2008 内部,Kalen Delaney

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

于 2011-09-11T05:45:31.100 回答