需要关于备份策略的建议

Cha*_*kya 5 sql-server backup t-sql restore sql-server-2012

我们的客户已同意一天数据丢失的 RPO。所以我将改变备份策略以消除空间限制。

数据库处于完全恢复模式。

现有的备份计划:-

  1. 我们每天对数据库进行一次完整备份。

想改变如下: -

  1. 每周,在周日或周六,我们都会对数据库进行完整备份。
  2. 并计划每天对​​数据库进行一次事务备份或差异备份。

这将避免我的空间限制。

如果我们备份事务日志,那么 RTO 会不会更大,因为我们每天只备份一个事务?

无论如何,我们需要执行事务日志备份以在日志文件中腾出空间。

那么你能建议哪种备份类型会更好,差异或事务日志?

如果我走错了方向,请根据我的 RPO 建议一个备份策略。

谢谢。

Joh*_* N. 8

为了澄清

RPO = 恢复点目标;在数据丢失的情况下您将恢复到的时间点。
RTO = 恢复时间目标;恢复到 RPO 中定义的时间所需的持续时间。

如果我为您提供充足的信息并给您一些思考的想法,您也许可以自己回答您的问题。

恢复点目标 (RPO)

业务定义的RPO真的可行吗?企业能否在一天(或 24 小时)的 RPO 下生存?

恢复时间目标 (RTO)

您能否将数据库恢复到 RPO 定义的时间点?请不要忘记:RPO 是一个持续时间。如果您的数据库在下午 2 点崩溃,那么您必须至少能够将数据恢复到前一天下午 2 点。(而且不仅仅是在您进行备份的那天晚上 6 点之前)。

事务日志备份:是/否?

既然您现在知道 RPO 和 RTO 可能与您的备份概念相关,我现在可以回答您关于数据库事务日志的问题。如果数据库处于完整恢复模式,则数据库的差异和/或完整备份不会释放事务日志。

参考:关于日志和日志备份的误解:如何说服自己(SQLSkills.com,Paul Randall)

您必须执行BACKUP LOG ....CHECKPOINT 事务日志并允许它在需要时释放空间。

现有备份概念

如果您的 RPO 是 24 小时数据丢失,而 RTO 是 4 小时(对于一个数据库系统),如果您必须重建 10 个系统或 20 个系统,您将如何公平?您能否在给定的 24 小时 RPO 和 4 小时 RTO 的情况下将所有 20 个数据库还原到某个时间点?

可能的解决方案

  1. BACKUP DATABASE ...每周执行一次(例如周日)
  2. BACKUP DATABASE ... WITH DIFFERENTIAL...每隔一天执行一次,例如星期日除外
  3. BACKUP LOG ...每隔一小时执行一次
  4. 将数据存储在主数据库以外的不同位置,甚至存储在异地位置(地理冗余

这有助于确保您可以恢复到贵公司业务连续性 (BC) 团队和信息技术服务连续性 (ITSC) 团队要求的 RPO。

您还必须以某种方式保证数据库备份(FULL、DIFF 和 TLOG)存储在不受当前位置停机/数据丢失影响的位置(例如单独的数据中心、异地数据中心)。

在异地存储数据时,如果您必须额外计算一些时间进行数据复制操作或通过较慢的网络连接进行恢复,请确保您仍然可以保证 RTO。

参考


Sha*_*nky 6

既然客户可以承受一天的数据丢失,为什么不将数据库的恢复模式更改为简单和仅使用full backup and differential backup。差异备份可以每天进行一次。当您说客户可以承受一天的数据丢失时,我认为客户不需要时间点恢复。如果是这样,他们不需要将数据库保持在完整恢复模式中。保持简单的恢复将消除频繁进行日志备份的麻烦。

另一种方法是将数据库保持在简单恢复状态,并进行每周一次的完整备份和每天的差异备份,每天两次。只需按照 RTO 商定的方式调整差异备份的频率。如果有足够的空间,我更喜欢每日完整备份和差异备份。

确保在使用时验证备份的完整性,您可以选择维护计划。最好在其他服务器上恢复备份并运行 checkdb 以确保备份一致

  • @Smart003 我建议将数据库保持在简单恢复状态,以便在检查点发生或日志文件大小增加 70% 时自动截断事务日志。所以基本上日志截断将由 SQL Server 处理。 (2认同)
  • 这就是为什么建议额外的差异备份以减少数据丢失的原因。是的,简单恢复,因为您没有日志备份,时间点恢复是不可能的 (2认同)