您的 SQL Server 备份/维护计划是啥?

Posted

技术标签:

【中文标题】您的 SQL Server 备份/维护计划是啥?【英文标题】:What is your SQL Server Backup/Maintenance Plan?您的 SQL Server 备份/维护计划是什么? 【发布时间】:2008-11-17 20:58:02 【问题描述】:

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

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

第一个每晚运行,几乎完成所有工作......

完整的数据库和事务日志备份 完整性检查、重建索引、重新计算统计信息等(我检查了除增量备份之外的所有内容)

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

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

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

编辑:这是 SQL Server 2005。DB 为 5GB,每月增长约 1GB。

【问题讨论】:

【参考方案1】:

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

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

如果您有足够的 CPU 和磁盘空间,您可以压缩磁盘备份以节省空间并更快地传输到磁带或其他位置。

【讨论】:

【参考方案2】:

您应该与您的用户/客户/数据保管人交谈 - 无论您如何称呼他们。他们需要清楚地了解他们可以失去多少工作。如果您没有 SLA,请编写一份 SLA。当遇到坏消息时,您不希望有任何意外。

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

【讨论】:

【参考方案3】:

我认为您每 3 小时运行一次备份并不偏执。基本上,您的备份计划必须根据您的恢复要求来衡量。恢复时您可以承受多长时间的停机,而在停机之前您愿意丢失多少数据。对于 SQL Server,您可以通过将事务日志备份添加到备份计划中来大大减少您愿意丢失的数据量。许多人每隔几分钟就会执行一次这些操作,具体取决于通过系统的交易量。要进行还原,您只需还原最后一次完整备份、最后一次增量备份,然后是自增量备份以来的所有事务日志备份。这可以使您的数据丢失最少,但应用所有事务日志备份可能需要一点时间。我经常看到以下内容: 完整备份 - 每周 增量备份 - 每晚 日志备份 - 根据要求每隔几分钟备份一次(可能每小时一次等)

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

我向客户推荐的最低要求是每晚对数据库进行一次完整备份,然后每 3 小时进行一次事务备份。有多少人从未设置备份,这总是让我感到惊讶。那些总是不好的电话。

【讨论】:

【参考方案6】:

我认为最好的方法是:

每 12 小时进行一次完整的数据库备份

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

每六个小时进行一次差异备份,以防万一发生故障,恢复过程更容易

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

当然还有事务日志备份,最好每小时备份一次。

BACKUP LOG database TO DISK = 'log.bak'

如果失败的情况下恢复过程将是下一个:

最后一次完整备份 最后一次差异备份 最后的事务日志

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

【讨论】:

以上是关于您的 SQL Server 备份/维护计划是啥?的主要内容,如果未能解决你的问题,请参考以下文章

配置SQL Server维护计划-定时备份

在 SQL Server 的维护计划中添加 T-SQL

SQL SERVER 2005如何建立自动备份的维护计划

SQL Server 维护计划实现数据库备份(策略实战)

sql server使用维护计划定时备份完整数据库差异数据库

使用SQL Server 2008 维护计划(图解)