SQL 2005日志文件初始大小

时间:2014-03-04 22:06:42

标签: sql sql-server tsql sql-server-2005 transaction-log

我有一个关于SQL日志文件大小的问题以及日志文件备份后应该设置的内容。我知道这取决于很多因素,并且没有正确或错误的数量(相对而言,因为我没有按照默认值启动1 mb的日志),但是应该有多少VLF。日志文件,如果我们做了大约200 MB的事务(或者我们的.mdf文件增长了那么多),这些VLF有多大或日志文件有多大?我已经阅读过Kimberly Tripp和Paul Randal的博客,但它仍然充满了雾。

2 个答案:

答案 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。