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

ata*_*mir 20 sql-server backup

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

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

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

  • 每个月的 1 号——做一次完整的数据库备份。
  • 每天午夜——做一个差异数据库备份。
  • 每 15 分钟——做一个事务日志备份。

这样,如果我的数据库在 12 号出现故障,我只需从 1 号恢复完整数据库备份,从 1 号到 12 号进行 12 次差异备份,然后最后恢复最近的事务日志(是事务日志差异?)。

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

Pat*_*ler 25

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

您需要做的第一件事是确保您了解每种类型的备份的作用。

Books Online 提供了所有粘糊糊的详细信息,但这是我的摘要。

完整备份包含数据库中的所有内容。DIFFERENTIAL 备份是累积而非增量的。在您的示例中,如果您的数据库在 12 日失败,那么您只需要从 1 日开始恢复完整备份,然后在 12 日恢复最近的差异,然后是所有事务日志备份,直到失败。只有使用完整或大容量日志恢复模型的数据库才需要事务日志备份。如果您使用的是简单恢复模型,则不需要事务日志备份。

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

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

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