sqlserver日志文件的收缩实践

系统性能越来越差,用户终于无法忍受,希望我能够帮助解决。经过分析,我认为问题应该还是出在数据库服务器的性能上,用户也同意,并由开发该系统的软件公司提供了一份数据库优化清单。在该清单中有一条是删除数据库的日志文件,以提高数据库的性能。

当然,数据库的日志文件一般是以ldf作为扩展名的,是无法直接删除的,因为这些日志文件有时候是非常重要的。我搜索到这样一个方法:先将数据库分离,然后删除日志文件,再附加该数据库,会自动生成一个比较小的日志文件,但实际做的时候失败了,系统会因为找不到必须的日志文件而引发一个异常。

我尝试用右键点击数据库,弹出菜单中有一项叫收缩文件,可选择数据文件或日志文件。选择日志文件,会有三个收缩方式供选择,但无论试哪一种都无法真正使日志文件变小。原来,在进行收缩前,应先打开数据库的属性页,将恢复模式设为简单,再进行上面的收缩操作,就能看到效果了。日志文件收缩完成后应该把恢复模式改为完整,以提高系统的安全性。至于为什么必须改成简单恢复模式是因为在该模式下数据库系统是不会对日志文件进行备份的,而完整模式下会自动备份日志,所以造成无法收缩(删除)日志文件,但简单模式由于不备份日志文件,当系统遇到故障需要还原时,只能以最后一次备份的数据作为最后的还原点,而完整模式对于备份后所做的修改依然会有记录,故其还原点可更接近故障发生那一刻,从而减少要补录的数据。

在进行这些操作之前,记得一定对数据进行备份,否则一旦出现意外那就麻烦了。

你可能感兴趣的:(sqlserver日志文件的收缩实践)