2008-11-17 78 views
7

作为this question的后续操作,我想知道您的SQL Server备份/维护计划是什么,以及如何让我的工作更好。什么是您的SQL Server备份/维护计划?

目前我正在从计划向导中运行两个简单的维护计划。

第一次运行每晚和不只是一切......

  • 完全数据库和事务日志备份
  • 完整性检查,重建索引,重新计算统计等(我查了一下,除了增量备份一切)

另一个每三个小时运行一次,并进行增量备份(我是偏执的,我知道这可能是矫枉过正)。

备份到磁盘时,将完整备份发送到SAN,保留一周。

您认为这是一个明智的计划吗?有什么建议么?

编辑:这是SQL Server 2005.数据库是5GB,增长约1GB /月。

回答

7

听起来不错。我更偏执。我每天进行两次完整备份和每小时事务日志备份。取决于数据库或课程的大小。备份将直接进行到磁盘,然后每晚备份到磁带。

您可能不需要每天都执行维护任务。我只在周末做这些,除了我们每天晚上重新编制的这张桌子。这又取决于数据库的大小和活动。

如果您有足够的cpu和磁盘空间,您可以压缩磁盘备份以节省空间并快速转移到磁带或其他位置。

2

我不认为你是每3小时运行一次备份。基本上,您的备份计划必须根据您的恢复要求进行衡量。在你恢复期间你能承受多久的损失,在你失败之前你愿意失去多少数据。对于SQL Server,通过将事务日志备份添加到备份计划中,您可以大大减少您愿意丢失的数据量。许多人每隔几分钟就会做一次这取决于通过系统的交易量。要执行恢复,只需恢复最后一次完整,最后一个增量,然后从增量开始恢复所有事务日志备份。这可以使您尽可能少地丢失数据,但应用所有事务日志备份可能需要一点时间。我看到了下面的漂亮定期: 完整备份 - 每周 增量备份 - 每晚 日志备份 - 根据要求每隔几分钟(可能是件好事每小时一次等)

3

你应该和你的用户/客户可以讲/数据保管员 - 不管你怎么称呼他们。他们需要清楚地了解他们会失去多少工作。如果你没有一个,写一个SLA。当涉及到坏消息时,你不希望有任何意外。

他们还需要了解恢复需要时间。您需要计划恢复计划以创建可接受的恢复时间。这可能意味着每5分钟进行一次每日完整备份,4次差异备份和日志备份。这与Marcus Erickson所说的那样并不疯狂或偏执 - 这一切都归结于您的信息和贵组织对其的投入。

1

请记住在您尝试从您创建的备份(到测试系统)恢复的地方执行firedrills。这应该每月进行一次。

1

我推荐给我的客户的最低要求是每晚对数据库进行一次全面备份,然后每3小时进行一次事务备份。它总是令我惊讶,有多少人从未设置备份。这些始终是不好的电话。

1

在我看来,最好的办法是:

制作的完整数据库备份,每12小时

BACKUP DATABASE database TO DISK = 'd:/full.bak'

差异备份每六小时,在失败的它让我们很容易恢复的情况下过程

BACKUP DATABASE database TO DISK = 'd:/diff.bak' WITH DIFFERENTIAL

,当然,事务日志备份whic h每个小时都更好。

BACKUP LOG database TO DISK = 'log.bak'

如果出现故障的情况下,复苏进程将是未来:

  • 上次完全备份
  • 上次差异备份
  • 的最后一个事务日志

必须承认,最好使用完全恢复模式以实现时间点恢复。