最近我通过运行 DBCC LOGINFO 命令发现我们的 2012 SQL Server 数据库包含超过 100,000 个虚拟日志文件。在进行了大量研究之后,对于缩小后我应该设置 Log 的确切大小,我仍然感到不安。
使用下面的代码片段并根据我的详细信息,我应该将我的日志文件设置为什么建议大小,你会建议我更改我的自动增长吗?
USE AdventureWorks
GO
BACKUP LOG AdventureWorks TO DISK='d:\adtlog.bak'
GO
-- Get Logical file name of the log file
sp_helpfile
GO
DBCC SHRINKFILE(AdventureWorks_Log,TRUNCATEONLY)
GO
ALTER DATABASE AdventureWorks
MODIFY FILE
(NAME = AdventureWorks_Log,SIZE = 1GB)
GO
DBCC LOGINFO
GO
- 当前数据库大小:39,482,368 KB
- 初始数据库大小:38,557,000 KB
自动增长:128 MB
当前日志文件大小:34,964,480 KB
- 初始日志文件大小:34,145,000 KB
- 自动增长:128 MB
每周 6 天,每天进行 8 次日志备份,而自动增长几乎每周发生一次。日志文件也位于与数据库不同的存储设备上
另外:许多 VLF 可能是上一个 DBA 没有缩小文件时遗留下来的。自从我们将自动增长从默认值更新为 128 MB 并设置此初始大小以来,已经过去了一两年。
我认为您会在这里找到一个很好的起点 -设置事务日志大小和增长
从链接总结:
在旁注中,您的问题表明您每天要备份 8 次事务日志(每周 6 天)。我强烈建议您阅读每分钟备份事务日志。对真的。