另外为什么增量要设置的比较大,原因就是这个VLF, 在申请扩大日志文件的时候,其实就是生成了一个VLF,
如果设置的太小,例如有些人设置 1MB 的增量,想想如果有大量日志写入,对SQL SERVER 是一件多么奇怪
的事情。
日志文件本身内部也是顺序型,当VLF 文件的开头被截断了,这就说明这块VLF 虚拟文件可以使用了,的事务
日志开头的日志记录在日志结束时被截断,它就会回到开头,并覆盖之前的内容。
那原理基本上明确了,首先第一点日志不能shrink 的就是在“小气鬼” 自作聪明的申请日志空间的“抠门”行
为。如果我一个1000MB的日志文件里面都是1MB大小的VLF, 后面只要有一个VLF 文件日志不截断,你前边
的日志都截断,他也无法释放磁盘空间给你的操作系统。
另外从另一个观点来看如果一个系统你只设置一个LDF文件,也是让你的系统日志空间不容易被收回的根源,原
理就很简单了,自己想想就明白了。
所以建议是,1 SQL SERVER 日志文件,可以是多个,根据你的系统的繁忙程度和你对日志释放空间的“迫切
心情”。
2 日志的增量设置,别太抠门
这样就能大概率的让单机上几十,上百G的磁盘空间有可能被释放回来,当然不释放也不用太担心,因为会继续
循环使用。
当然如果想借用并行的概念到 SQL SERVER LDF 妄想通过多个文件,提高性能,那你就参见MYSQL 的
BINLOG ,POSTGRESQL WAL LOG,这方面的他们都是一样的,串行。
这时可能就有人问,到底为什么会有日志空间不足的情况,
评论