结尾日志备份

结尾日志备份

2023年7月30日发(作者:)

结尾⽇志备份在⼤多数情况下,如在完成恢复模式或者⼤容量⽇志恢复模式下,SQLServer数据库要求管理员备份事务⽇志的结尾部分以获得尚未备份的⽇志记录。这个 在还原操作之前对⽇志尾部执⾏的⽇志备份就叫做结尾⽇志备份。对于SQLServer数据库来说,在事务⽇志恢复之前进⾏事务⽇志的尾部备份是⾮常必要 的。因为结尾⽇志备份作业可以防⽌⽤户修改数据的丢失并最终确保⽇志链的完整性 。在利⽤事务⽇志将数据库恢复到某⼀个指定的点,如数据库故障点的时候,结 尾⽇志备份是恢复计划中的最后⼀个相关备份。如果在还原之前⽆法备份⽇志的尾部,那么就只能够将数据库恢复为故障发⽣之前创建的最后⼀个备份。⽽不能够恢 复到故障发⽣的那⼀点。所以说,结尾⽇志备份对于SQLServer数据库⾮常的重要。

具体的来说,如果遇到如下两种情况,需要先对马上对事务⽇志进⾏尾部备份。  ⼀是需要对数据库进⾏还原操作,⽽且是要还原到最近到的⼀个点时,那么需要先对数据库进⾏事务⽇志尾部备份。即在数据库处于联机状态时,如果数 据库管理员需要对数据库进⾏的下⼀个操⾛就是还原操作,那么就需要在还原操作之前进⾏事务⽇志尾部备份。也就是说,在还原操作之前才能够进⾏事务⽇志尾部 备份 ,即在事务⽇志备份备份与数据库还原之间不能够再进⾏任何的数据库修改作业。否则的话在还原后这个修改会丢失。另外需要注意的是,为了出现⼀些不必要 的错误,最好在备份事务尾部⽇志的时候,采⽤N ORECOVERY选项。这个选项主要是为了确保数据库事务⽇志尾部备份之后数据库不能够再被修改。也就是 说,可以保证事务⽇志尾部备份到数据库还原中间的时间间隔之内,不再发⽣任何的数据库更改作业。以确保在利⽤事务⽇志尾部备份进⾏数据库还原的时候,能够 还原到⼀个最近的时点。 ⽽不 会有任何数据的丢失。这是在最正常的情况下对事务⽇志的尾部进⾏备份。

⼆是需要注意,有时候可能由于⼀些特殊的原因,数据库已经处于脱机状态,或者数据库重新启动后已经⽆法启动了,此时数据库管理员仍然要尝试着进⾏结尾⽇志 备份。数据库管理员需要注意的是,此时数据库事务⽇志结尾备份不⼀定能够成功,但是数据库管理员在恢复数据库之前仍然要做⼀个最后的尝试。也许运⽓好的 话,事务⽇志尾部备份能够成功进⾏。⼀般情况下,如果遇到数据库脱机或者⽆法启动时,即数据库发⽣故障时,只有当当前的事务⽇志⽂件没有受到损坏、数据库 处于⽀持结尾⽇志备份的状态并且不包含任何⼤容量⽇志更改时,结尾⽇⼦会备份才能够同时成功。也就是说,当数据库损坏时,只有同时满⾜三个条件,分别为⽇ 志⽂件没有损坏、数据库处于⽀持结尾⽇志备份的状态、不包含任何⼤容量的⽇志更改,事务⽇志尾部备份才会成功。但是在实际⼯作中,发⽣这种情况时,要让数 据库管理员判断数据库当前的状态是否符合这三种情况,往往具有⼀定的困难,甚⾄是⼀种苛刻的要求。所以笔者的建议是,数据库管理员如果遇到这种情况,先不 管三七⼆⼗⼀,先对事务⽇志的尾部进⾏备份。另外需要注意的是,此时即使能够正确备份事务⽇志结尾部分,也有可能其中的部分数据不可⽤。即仍然有可能存在 部分数据的丢失。虽然这是数据库管理员极不愿意看到的,但是这个事实毕竟存在。数据库管理员应该正确⾯对。在数据库损坏时如果要进⾏事务⽇志尾部备份,则 需要采⽤⽐较特殊的选项。如⼀般需要在备份语句中采⽤NO_TRUNCATE选项,否则的话备份不会成功。

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

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690652301a386861.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信