SQL Server事务日志备份的一些疑问浅析

   

   SQL Server事务日志备份的一些疑问浅析    

2020-09-02 09:17 潇湘隐者  阅读(533)  评论(0) 编辑 收藏    html

这里简单总结一下关于SQL Server事务日志备份的一些疑问,若有其它更多疑问,欢迎大家留言讨论。sql

 

 

事务日志备份频繁有性能影响吗?数据库

 

关于事务日志备份,若是设置得很是频繁有什么性能影响吗? 这个是很多人的疑惑,频繁的事务日志备份是否影响性能呢?其实这是一个谬论。关于这些问题,咱们先来作个假设,假设两小时内产生了30G大小的事务日志,那么对于下面几种事务日志备份策略:ide

 

 

    1: 2小时作一次事务日志备份。post

    2: 1小时作一次事务日志备份。性能

    3:30分钟作一次事务日志备份。rest

    4: 15分钟作一次事务日志备份。日志

    5: 5分钟作一次事务日志备份。code

 

整体来讲,若是2小时内,产生了30G大小的事务日志,那么无论哪一种备份策略,事务日志备份的IO总量(或者事务日志备份文件大小)是同样的。并不会由于日志备份频率有所区别。可是若是2小时备份一次事务日志,那么一次将要备份30G大小的日志。这个对IO的影响将持续较长一段时间,若是是15分钟备份一次事务日志(这里为了说明,假设事务日志是均衡、平均产生的),那么一次事务日志备份只须要备份3.75GB大小的事务日志。若是从资源消耗的角度来讲,频繁的事务日志备份反而能分散IO到不一样时间段,避免较短期产生大量的IO操做。这样对系统IO性能反而好处较多。server

 

并且频繁的事务日志备份不只能够减小一次备份事务日志的大小,从时间范围上分散IO,并且频繁的事务日志备份,还有增长日志截断频率的优势,让事务日志文件不会变得很是大。

 

那么说了这么多,频繁的事务日志备份都是好处,那么是否是我设置的越频繁越好呢? 要不要设置为1分钟一次事务日志备份呢?这个也不尽然,咱们知道不少事务日志备份做业是串行备份多个数据库。若是一分钟作一次事务日志备份,那么可能出现做业在一分钟内运行不完的状况。另外,可能会产生大量的事务备份文件,管理和还原的时候也会有所干扰。正确的作法权衡多方面考虑,设置合适的备份频率。

 

如何设置日志备份的频率呢?官方文档有这样的描述:

 

·         事务日志备份频率应足够支持业务需求,尤为是对损坏的日志存储可能致使的数据丢失的容忍程度。

 

·         适当的日志备份频率取决于您对数据丢失风险的容忍程度与所能存储、管理和潜在还原的日志备份数量之间的平衡。 实现恢复策略时,请考虑必需的RTO和 RPO,特别是日志备份频率。

 

·         每 15 到 30 分钟进行一第二天志备份可能就已足够。 可是若是您的业务要求将工做丢失的风险最小化,请考虑进行更频繁的日志备份。 

   

 

 

完整备份包含事务日志备份吗?

 

数据库完整备份将备份整个数据库。 还包括部分的事务日志,以便在还原完整数据库备份后能够恢复完整数据库。其实差别备份也是如此。完整或差别备份须要日志来将数据库还原到当完整或差别备份结束时的事务一致性状态。因此,完整备份或差别备份包含部分事务日志备份。准确的说是从完整备份开始到结束这段时间的事务日志备份。

 

 

完整备份会截断事务日志吗?

 

首先,咱们先搞清楚一个概念,截断日志(log truncating)和日志清理(log clearing)实际上是同一件事情,它们表示事务日志的一部分被标记为再也不须要,能够覆盖重复使用了(有点相似Oracle下的redo log归档后,能够被从新覆盖了)。在完整或大容量事务日志恢复模式下,只有备份日志才会清除日志。咱们知道完整备份会包含事务日志备份,可是它确实不会截断日志(清除日志),跟多详细细节参考“Misconceptions around the log and log backups: how to convince yourself”

 

 

简单恢复模式下能作事务日志备份吗?

 

不行。简单的恢复模式下仅容许完整备份和差别数据库备份,而且没有进行事务日志备份的机会。 在简单恢复模型中建立检查点时,将从事务日志中删除全部已提交的事务。

 

 

 

参考资料:

https://www.sqlskills.com/blogs/paul/misconceptions-around-the-log-and-log-backups-how-to-convince-yourself/

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/transaction-log-backups-sql-server?view=sql-server-ver15

相关文章
相关标签/搜索