如何做好SQLServer 2008结尾日志备份
三、 何时不需要采用结尾日志备份?
从上面的分析中可以看出,并不是在任何场合下都需要使用结尾日志备份。在一些特殊点场合下,可能进行结尾日志备份也是一种浪费。为此作为数据库管理员,要有这个能力来判断这个结尾日志备份作业时否是必须的。从数据库性能或者其他的角度考虑,只有在必要的时候才对数据库进行日志结尾备份。根据笔者的了解,一般情况下如果遇到如下几种情况,就不要进行日志结尾备份。
一是如果要将数据库恢复到先前日志备份中包含的某个时点。也就是说,如果不需要将数据库还原到故障发生点或者用户指定的任何一个时点,那么就可以不备份日志结尾部分。不过需要注意,此时可能会丢失最近对数据库所作的更改。这也是SQLServer数据库备份与还原的一个特性。在数据库中,支持将命名标记插入到特定的事务日志中。在恢复的时候,就可以选择恢复到那一个标记。不过在采用事务标记的时候,数据库管理员必须清晰的认识到,事务标记会消耗日志空间,并会对数据库的性能产生不利的影响。所以一般只有在必要的情况下,才会启用事务标记。另外需要注意的是,如果一个事务标记跨越同一个数据库服务器或者不同服务器上的多个数据库时,这些标记将记录在所有受影响的数据库的日志内。此时显然会在很大程度影响到数据库的性能,并浪费不少的事务日志的空间。故除非有特殊的必要,不要启用事务标记的功能。有时候我们在培训的时候,由于对于数据库性能的要求并不是很高,也不用担心事务日志的大小,所以比较喜欢使用事务标记。以去除一些实验过程中的垃圾数据。
二是将数据库移动到新的位置,即在不同的数据库服务器之间进行数据库还原的时候,也没有必要进行结尾日志备份作业。另外在完整覆盖原有数据库的时候,也不需要再继续进行结尾日志备份了。
总之,在大部分情况下,如果要对数据库进行还原操作,都需要先对数据库继续结尾日志备份操作。而只有在一些个案中,如通过事务标记来恢复数据库或者覆盖数据库作业中,才不需要采用结尾日志备份。如果数据库管理员由于各方面的限制,不知道是否需要进行结尾日志备份的时候,那么笔者建议各位管理员,最好还是执行一下结尾日志备份作业为好。毕竟相对于数据库性能而言,这个数据安全还是第一位的。况且,如果将这个作业和数据库还原作业放到用户使用数据库表较少的时刻进行,也不会对其他用户的访问产生很大的负面影响。