我有一个场景,其中SQL Server上的ldf文件在4-5天内增长到30GB以上。由于这存在潜在的空间问题(硬盘驱动器有点超过250GB),我搜索了一些解决方案但却感到困惑,因为我发现在缩小ldf文件时发现它会再次增长。一种解决方案是定期执行此操作,但我不确定它是否会长期有用。是否有可能以某种方式固定ldf文件的最大大小,然后SQL Server会自动删除其中的olders记录?
如果这听起来不太好请分享一些关于如何管理这个问题的想法?什么是最好的行动方案?
提前致谢!
答案 0 :(得分:3)
这种情况你有两种情况。
场景1 - 数据库处于简单恢复状态,并且有一个大型进程在增加事务日志。在这种情况下,您可以将事务日志保留为最大尺寸并尽可能升级您的驱动器空间。
方案2(最有可能) - 您的数据库处于完全恢复模式,并且您没有配置事务日志备份。一个好的备份实践是每日完整备份(如果您的数据库不是太大)和每小时的事务日志备份。在获得良好的完整备份,然后进行良好的事务日志备份后,您可以缩小事务日志。
以下是一些可能有用的代码:
收缩交易记录 - MSDN
DBCC SHRINKFILE (LogicalLogName, SizeInMB)
正在使用多少事务日志 -
USE DatabaseName
GO
DBCC SQLPERF (logspace)
如果在缩小事务日志后发现文件大小相同,请尝试在事务日志设置中手动调整文件大小。或者,您可以将数据库设置为简单恢复,然后再设置为完全恢复。虽然后者会破坏您的事务日志备份,直到下一次完整备份。