什么是好的SQL Server备份计划?


18

关于设置备份任务的过程似乎有很多信息,但是关于数据库备份的全局视图却没有太多信息。至少,很难制定出能够为您提供该信息的搜索引擎查询。我知道有三种不同类型的备份:

  • 完整的数据库备份
  • 差异数据库备份
  • 事务日志备份

看来我应该全部使用这三个。那么,这是一个有意义的时间表吗?

  • 每月的1号 -进行完整的数据库备份。
  • 每天午夜 -进行差异数据库备份。
  • 每15分钟 -进行事务日志备份。

这样,如果我的数据库在第12个数据库上发生故障,则只需从第1个数据库还原完整的数据库备份,从第1个数据库还原到第12个数据库的差异备份,然后最终还原最新的事务日志(交易记录差异?)。

最后,完整的数据库备份是否是自包含的?即在2月1日进行完整的数据库备份后,是否可以删除1月的所有文件?当然,我会保留前几个月的设置,以防万一,但是这个问题是概念性的。

Answers:


24

与SQL Server中的所有内容一样,这取决于。

您需要做的第一件事是确保您了解每种备份的功能。

联机丛书提供了所有详细信息,但这是我的摘要。

完整备份包含数据库中的所有内容。差异备份是累积的,不是增量的。在您的示例中,如果数据库在12日发生故障,则只需要从1日恢复完整备份,然后在12日恢复最近的差异,然后再恢复直到失败的所有事务日志备份。只有使用完整或批量记录的恢复模型的数据库才需要TRANSACTION LOG备份。如果使用简单恢复模型,则不需要事务日志备份。

现在我们已经清除了这个问题……设计备份计划实际上取决于您需要恢复多少数据以及在发生灾难时恢复数据的速度。我建议每天从完整备份开始。您以后可以随时降低频率。请记住,差异备份自上次完全备份以来是累积的,因此几天后,根据数据库中发生的变化量,差异可能大于完整备份。如果每天进行一次完整备份,则可能根本不需要使用差异。但是您仍然可以每天执行一次,并将其安排在中午12点。事务日志备份仅备份日志。日志备份的频率将确定发生故障时您愿意丢失多少数据。如果您每15分钟运行一次日志备份,那么您可能会丢失丢失的最后15分钟的数据。15分钟是一个很好的频率,但是每30分钟对我的环境来说效果最佳。

正如我之前所说,这完全取决于您的环境。设计并设置备份时间表后,请记住在备用服务器上对其进行测试。练习还原完整备份,差异备份和日志备份,以使您知道一切工作都像您设计的一样。

如果您计划使用维护计划,那么Online Books会提供一些很好的信息,但是如果您真的想要灵活性,请查看Ola Hallengren的备份脚本


感谢您的出色回答。我有一个小问题要问-您是否在完全备份之前也重新构建/重组了索引?
atanamir 2012年

是的,在完全备份之前是个好主意。这样,如果数据库失败,则完整备份将已经包含所有重新索引更改。
Patrick Keisler 2012年

在大多数情况下,活动的尾部日志在发生故障仍可以进行备份,因此即使您仅每天备份日志,对工作损失的影响也很小。话虽如此,通常没有理由不经常对其进行备份。
很快死了2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.