我有一个关于SQL日志文件大小的问题以及日志文件备份后应该设置的内容。我知道这取决于很多因素,并且没有正确或错误的数量(相对而言,因为我没有按照默认值启动1 mb的日志),但是应该有多少VLF。日志文件,如果我们做了大约200 MB的事务(或者我们的.mdf文件增长了那么多),这些VLF有多大或日志文件有多大?我已经阅读过Kimberly Tripp和Paul Randal的博客,但它仍然充满了雾。
答案 0 :(得分:1)
就像你说的那样,它非常依赖于'它取决于'。我可能会过分简化一些事情,但通常我会想象这样的过程:
在将'stuff'写入数据文件之前,每个事务首先写入日志。 日志永远不会被清除。当日志文件“翻转”时,写指针将移回文件顶部并继续再次写入旧文件。
因此,日志至少需要是最大事务的大小 日志大小。
下一个考虑因素是并发用户数。当你 有10个用户同时进行最大的交易,你明白了。
另一个考虑因素是使用强度。在检查点发生之前累积了多少数据。这是将日志数据以批处理方式写入mdf文件的时候。
最后要考虑的是恢复模式。在完全恢复 mode,日志文件中尚未被a“保护”的部分 事务日志备份,无法翻转,并将继续增长,直到完成事务日志备份。
每个数据库只需要一个物理日志文件。 Sql server一次只能写入一个文件。
您希望拥有尽可能少的虚拟日志文件。为日志文件提供足够的初始空间,以便从那里开始,尽可能减少自动增长。 VLF是由自动增长过程创建的。
当你自动成长时,确保它以适当的块状增长。还要记住,每个vlf需要首先归零。在使用之前,文件需要完全填充零。当您指定非常大的块(比如1 GB左右)时,此数据库中的每个“战斗中”查询都将排队,直到完成清零过程。
当我对日志需求一无所知时,我个人开始使用500 MB大小,自动增长100 MB块。从那里开始,我会监控自动增长事件并根据需要进行调整。
答案 1 :(得分:1)
历史通常是未来规模的最佳预测指标 日志通常在备份之间达到20 GB,然后您可以预期它在备份之间达到20 GB。
如果您的尺寸为20 gb,则不太可能需要增长。
如果日志必须增长20倍甚至100倍,那么就没那么大了
如果日志必须增长1000倍,那么您肯定应该确定错误的大小。
一个1 MB的日志,一次只增加1 mb,达到1000 mb是不好的
100 mb增长100%只需增长4倍即可达到1600 mb
最大尺寸也是如此
恢复模型对日志大小有很大影响
除初始尺寸外,还有很多要考虑的问题。
另请查看将日志放在单独的驱动器上以传播IO。
将温度放在单独的驱动器上以传播IO。