一个失败的总结,日志分析

dbcc log和fn_dblog函数真的是分析日志文件吗?

这个问题需要了解CheckPoint和sql的存储机制,首先参考如下文档
http://msdn.microsoft.com/zh-cn/library/ms188748.aspx

CheckPoint
将当前数据库的全部脏页写入磁盘。“脏页”是已输入缓存区高速缓存且已修改但尚未写入磁盘的数据页。CHECKPOINT 可创建一个检查点,在该点保证全部脏页都已写入磁盘,从而在以后的恢复过程中节省时间。

什么时候执行它?大致有几种情况:
手动调用、sql自动定时执行、数据库脱机之类操作、数据库进程正常终止等情况。

简单日志模型的原理就是每次checkpoint后自动截断日志。

dbcc log到底有什么用?和checkpoint有什么关系
在事物外执行过CheckPoint后,dbcc log语句将无法获取之前的日志。所以我推断此语句是系统为了在非正常关闭数据库的状态下,来保证日志,内存中的脏页和数据文件的一致性的措施,此方法并不是读取日志文件的全部信息。

log explorer的原理
还没有搞清楚,此前的推断是错误的,它不是通过dbcc log 或者fn_dblog方法实现的,不但CheckPoint对它没有影响,而且他会主动调用这个语句。


日志分析工具宣告流产,不过基本上搞清了日志和数据文件的存储结构,希望以后仍然可以用的上这些经验



原文地址:https://www.cnblogs.com/cl1024cl/p/6204882.html