我必须(在工作中)做出决定,选择使用 SQL Server 2019 哪个选项更可行:
选项 1:每周发送一次完整备份,并在每周备份之间发送差异备份。选项 2:发送一次完整备份。每 15 分钟发送一次事务日志备份。如有需要,可根据需要发送额外的完整备份和差异备份。
我倾向于选项 1,因为管理每 15 分钟一次的事务日志似乎很困难。
哪种方法更有意义?
这是来自第三方供应商的少量数据,我们将其存储在 VM 中的 SQL Server 2019 中。数据被提取后,不会像从我们的 SSMS 分发给其他方那样进行任何操作。我不确定“时间点恢复”以及 RPO 或 RTO。我还没有进入完整或简单恢复模式部分。
第一个问题是你要解决什么问题?
您将如何使用您的备份?
您是否正在设置向其他方传送日志?
您需要时间点恢复吗?
您的数据库是否处于完整恢复模式或简单恢复模式?
您的 RPO 或 RTO 目标是什么?
完全不是。sp_DatabaseRestore会发挥神奇的作用。只需定期运行它,它就会拾取要应用的新日志。
编辑。
听起来您正在配置日志传送。无论如何,设置一个作业以定期运行 sp_DatabaseRestore。该作业不应每 15 分钟运行一次以应用最新日志。它可以每小时运行一次以应用多个日志,甚至可以每天运行一次以应用当天的所有日志。
参数有很好的例子。
这是我的参数。我们正在恢复日志并以只读模式打开数据库。
是的。
请参阅如何配置 Ola Hallengren 的数据库维护脚本以进行备份
总结一下:
您需要考虑的第一件事是发生灾难时您对数据丢失的容忍程度。
RTO/RPO 定义您的备份策略,而不是管理开销。例如:如果您的服务器崩溃或出现数据问题,您可以容忍多少数据丢失?
如果您说我们不能丢失 15 分钟的数据(理想情况下),那么您需要每 15 分钟运行一次定期日志备份。
现在,完整备份和差异备份将取决于您的数据库有多大。如果完整备份需要 2 分钟,那么我会在晚上进行一次完整备份,然后每 15 分钟进行一次常规日志备份。
如果发生灾难,您将恢复完整备份和所有可用的日志备份。
一旦您确定了策略,那么您就需要选择所需的备份方式。
避免将备份保存在同一台服务器上,最好将其移动到云存储(s3 或 azure 存储帐户)
Ola Hallengren 的解决方案或简单的 SQL Server 维护计划应该足够好。