暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
SQL SERVER ALWAYS ON 为什么日志无法dump.pdf
56
7页
4次
2024-12-13
免费下载
SQL SERVER ALWAYS ON 为什么日志无法dump
原创 carol11 AustinDatabases
我也曾经像你一样
黄渤 - 我也曾经像你一样
SQL SERVER 还有人用,对的,很多人都在用,尤其很多企业,非互联网的企业。那今天就说说 SQL SERVER
ALWAYS ON 高可用集群中,为什么不切日志的问题。引起这篇文字的原因是有一个81G 都没有切除日志的
AWO集群。
虽然解决这个问题,可以三言两语就解决掉,但实际上不知道其中的原理,只会敲命令的模式,是不被推荐
的。
SQL SERVER 和其他的数据库在日志方面不大一样,其中有一个概念叫 VLFS,每个物理事务日志文件在内部划
分为许多虚拟日志文件(VLFs)。虚拟日志文件没有特定的大小,也不能指定物理日志文件中有多少个VLF,这些都
是数据库引擎来操作的,但实际当中SQL SERVER 是建议你减少 VLF的数量,虽然你的LDF文件可能只有一
个,但是LDF 里面的 VLF 的文件数量可能就与你的SQL SERVER 日志文件增长大小,与增长比率有关了。如果
你想获取较少的VLF,那就别吝啬,经常看到有人为了减小日志,给红色圈的位置设置LDF的大小,呵呵,呵呵
就是我对这样设置的表情,无知者无畏。
另外为什么增量要设置的比较大,原因就是这个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,这方面的他们都是一样的,串行。
这时可能就有人问,到底为什么会有日志空间不足的情况,
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜