Fanr

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  在进行SQL Server培训的时候,人们总是会有这样的一个疑问:“当事务日志增长到一定程度的时候,我该怎么办?”我一般会用另一个问题来回答,那就是:“你进行备份了吗?”对于这一问题,人们的回答往往是:“当然,我们每天晚上都会备份整个数据库。”但是你对日志进行备份了吗?在这一点上,学员们认为如果能解决这一难题,这个培训就是值得的。

  进行事务日志备份的时候,不仅仅是只将最新提交的事务备份,与此同时还会截断相应的日志文件。截断就意味着备份过的事务将会从日志文件中移除,为新的的事务腾出空间。事实上,如果你不备份事务日志,它就会无限制地增长,直到你的硬盘空间不足为止。菜鸟SQL Server DBA总是认为完全备份会截断事务日志,但其实并不会。它会在结束时对事务日志进行快照,这样在进行完全备份的时候事务也得到了备份,并不会截断日志。

  在我看到的学员中,有些人的数据库只有100MB,而事务日志竟然达到了16GB,这是多么令人惊讶的事!那么,最有效的解决方法,就是频繁地备份事务日志。这将保证你的事务日志致精致简。但是问题又来了,频繁到什么程度呢?这要看情况了。通常,我们会把事务日志控制在整个数据文件大小的一半。如果超过了这个限度,我们就需要增加备份的频率。有时,对于一些十分活跃的数据库,我们要每15分钟进行一次备份。

  在进行讨论的时候,我们首先假设备份模式为“完全备份”,对于生产数据库来说我们建议使用这种备份模式。这一模式允许进行事务日志备份,因此你可以将数据库恢复到故障点之前,只需按顺序恢复日志就可以了。“简单备份”模式会周期性地截断事务日志,无法进行日志备份,所以你只能使用上次的数据库备份进行恢复,不能恢复到故障点,有事务丢失的可能性。这一模式基本上只适用于测试数据库或只读数据库。

posted on 2011-03-17 22:35  Fanr_Zh  阅读(636)  评论(0编辑  收藏  举报