在处理事务日志备份时,了解什么是日志链很重要。用我的话说,日志链是为了将数据库恢复到给定时间点而需要恢复的一系列备份。为了开始恢复事务日志,您必须首先使用 WITH NORECOVERY 选项恢复完整备份。如果您还执行差异备份,您将希望使用相同的 WITH NORECOVERY 选项恢复您希望恢复到的时间点之前的最新差异备份。此时,您需要在除最终备份之外的所有备份上使用 WITH NORECOVERY 选项按顺序恢复事务日志备份。有关时间点还原的更多信息,请查看此链接。 http://msdn.microsoft.com/en-us/library/ms175093.aspx
日志传送不是备份方案。这是一个半高可用性方案。
对于备份,有完整备份、差异备份和事务日志备份。它们都应该一起使用。您的 SLA 决定了您如何使用它们。最典型的场景是在午夜进行完整备份,在中午进行差异备份,以及每 30 或 15 分钟备份一次事务日志。
请记住:在您从中恢复以测试它是否正常之前,您没有有效的备份。
可以说没有备份策略这样的概念:您有一个恢复策略,因为这决定了您需要多长时间才能恢复运行*。
所有策略都需要完整备份,以作为差异和/或日志备份的任何后续还原的基础。
在实践中,您可以使用 6 个月前的完整备份和 15 分钟的日志备份:但是您必须应用上次完整的每个日志备份。
作为一个随机示例,一个场景可以是完整的每周,每天的差异,记录 15 分钟。
备份间隔决定了在最坏的情况下您会丢失多少数据:15 分钟的日志备份会让您在 1 秒到 14 分 59 秒之间丢失数据,平均为 7.5 分钟。这可以接受吗?
日志传送是带有手动故障转移的热备用:它不是备份,而是一种高可用性选项。
没有适合所有情况的策略。但重要的是要了解您可以使用什么。完全备份正是它们听起来的样子:数据库的完全备份,减去事务日志。差异备份是自上次完整备份以来数据文件更改的备份。事务日志备份将备份自上次事务日志备份以来存储在事务日志中的所有事务。事务日志备份将允许您恢复到某个时间点。如果这是必需的,您需要将恢复模式设置为“完整”,并且您需要根据在恢复情况下愿意丢失的数据量定期备份事务日志。
在处理事务日志备份时,了解什么是日志链很重要。用我的话说,日志链是为了将数据库恢复到给定时间点而需要恢复的一系列备份。为了开始恢复事务日志,您必须首先使用 WITH NORECOVERY 选项恢复完整备份。如果您还执行差异备份,您将希望使用相同的 WITH NORECOVERY 选项恢复您希望恢复到的时间点之前的最新差异备份。此时,您需要在除最终备份之外的所有备份上使用 WITH NORECOVERY 选项按顺序恢复事务日志备份。有关时间点还原的更多信息,请查看此链接。 http://msdn.microsoft.com/en-us/library/ms175093.aspx
如前所述,日志传送不是一种备份策略,但它可以在发生灾难恢复情况时显着缩短恢复时间。需要注意的一个问题是,任何复制发布都需要编写脚本到日志传送服务器并进行初始化,以便复制能够像灾难之前一样工作。对于较大的出版物,这可能会导致恢复到生产水平所需的时间显着增加。
希望这可以帮助,
马特
我支持 Mladen Prajdic。本文将帮助您根据数据库的恢复模型选择正确的备份策略。
这些不是 SQL Server 的备份策略。完全备份和差异备份是您可以对 SQL Server 数据库执行的备份类型,而日志传送是一种高可用性策略(通过在预定时间将日志备份从服务器移动到另一个服务器并使这两个数据库同步到备份的限制)。
您可以在 MSDN 上找到有关灾难恢复(备份和恢复 :-))的好信息:此处和此处。简而言之,您需要选择在发生故障时可以从备份中恢复多少数据。一个合理的备份策略示例是每天进行一次完整备份,每小时进行一次日志备份(这取决于您的需要),因此在这种情况下,您将能够从完整备份 + 所有每日日志备份中恢复数据库。
您可以在Simple_Talk上找到有关 DR 的另一个很好的参考。
当然,您不仅需要恢复数据库,还需要在数据库所属的服务器和应用程序的上下文中进行恢复。我自己还没有使用过它,但如果您需要, Data Protection Manager看起来会做更全面的工作。
最好的方法是同时使用所有三种备份类型。当然,您可以忽略事务日志备份的差异备份。一切都取决于您的数据库、它的增长速度、您对数据库进行更改的频率等。在选择备份计划之前,请考虑您愿意丢失多少数据?您准备花多少时间来恢复数据库?
例如,如果您的数据库增长很快,您可以使用以下 SQL Server 备份策略:完全备份 - 每天一次,差异备份 - 每两小时和事务日志备份 - 每 20 分钟。在这种情况下,如果发生故障,您将损失不超过 19 分钟的工作时间。再比如,如果你的数据库增长缓慢,你可以每天做一次完整备份,每六个小时做一次差异备份,每小时做一次事务日志备份。
另一个提示 - 确保您的数据库安全,不时在测试服务器上恢复您的备份。