Sql server 巨大的事务日志-这正常吗?
我有一个5GB的数据库和一个20GB的事务日志(SQLServer2005)。不确定它为什么这么大,或者是什么原因使它这么大,它过去的大小大约是DB的1/2。DB的增长速度约为1GB/月 对于事务日志相对于数据库文件大小应该有多大,是否有任何指导原则Sql server 巨大的事务日志-这正常吗?,sql-server,Sql Server,我有一个5GB的数据库和一个20GB的事务日志(SQLServer2005)。不确定它为什么这么大,或者是什么原因使它这么大,它过去的大小大约是DB的1/2。DB的增长速度约为1GB/月 对于事务日志相对于数据库文件大小应该有多大,是否有任何指导原则 编辑:我不是说我的事务日志很大(我知道有些DBA会嘲笑我的小数据库),只是相对于数据库文件,我认为它很大。如果你有很多事务行为,这一点也不少见。然而,您可能应该研究使其变小的方法。这方面有很多选择,但在不了解您的恢复模型的情况下,我永远无法提出建议
编辑:我不是说我的事务日志很大(我知道有些DBA会嘲笑我的小数据库),只是相对于数据库文件,我认为它很大。如果你有很多事务行为,这一点也不少见。然而,您可能应该研究使其变小的方法。这方面有很多选择,但在不了解您的恢复模型的情况下,我永远无法提出建议。从这个开始,这个,然后从那里开始。小心地……) 如果您的代码执行大量事务(相对于数据库的实际大小),那么它肯定会使日志膨胀 如果您现在还没有,我绝对建议您设置一个数据库维护计划来进行夜间备份(可能还有更频繁的事务日志备份)。通常,备份过程会在备份完成后将日志大小恢复到合理的大小 作为一般性的指导原则,我尝试将其保持在数据库大小的50%以下,尽管在备份计划中,我通常看不到我们的日志会接近这一点 如果您不关心保留事务记录,这种类型的查询将对其进行收缩,但我会先阅读收缩文件
Backup Log DatabaseName With Truncate_Only
GO
Declare @LogFileLogicalName sysname
select @LogFileLogicalName=RTRIM(Name) from sysfiles where filename like '%.ldf%'
--SELECT @LogFileLogicalName
DBCC Shrinkfile(@LogFileLogicalName,2)
呃。。。请原谅明显的出血,但是您是否有带有“备份日志”的定时备份 如果恢复模式已满,则需要这样做 我还将包括其他罕见的选项(并非详尽):
- 大型表索引重建/维护。但是,备份日志将清除此项
- 阻止备份日志删除条目的打开事务(因此它会增长)
- 与的连接(参见上一点)
免责声明:我在ApexSQL担任产品支持工程师我们每晚做一次完整备份,每3小时做一次增量备份(我有点偏执)。。。就交易而言。。我们的应用程序大多是只读的(电子商务),因此不知道它为什么如此庞大。我认为日志备份部分是可选的,因此可能是备份计划中没有打开它(gbn的回答是:这&其他可能性,如恢复模型也很有帮助)。