如何错开备份

How to stagger backups

我有 Windows 调度程序调用每天在 3:00am 执行完整数据库备份的程序。

我还想每十分钟备份一次事务日志。

同步这些内容的最佳方式是什么?

我知道事务日志独立于完整备份,但是如果两个不同的任务都在 3:00am 进行备份,这会不会有问题?即要求数据库同时生成完整备份和事务日志备份。

也许我应该有一个任务并查询 SQL 服务器以查看上次完整备份是否超过 24 小时前。如果没有,则进行事务日志备份。

只要您 运行ning SQL 2005 或更高版本,您就可以 运行 在记录备份的同时作为完整备份而不会出现问题。忽略一些细节,日志备份基于日志备份开始时最后完成的完整备份。唯一真正重要的是当您需要进行恢复时,即使在那时,也只有 "contentious"(即 "which full backup should I restore given that I want to restore to this point in time?")用于在进行完整备份时进行的日志备份。

如果您需要为这样的时间执行时间点恢复,您需要倒退。即先找到包含该时间点的日志备份。然后,要找到它所基于的完整备份,请在 msdb.dbo.backupset 或 运行ning restore headeronly 中查看该日志备份的数据库备份 lsn。从那里,找到具有该值作为检查点 lsn 的完整备份。现在,您只需要还原 that 完整备份(使用 norecovery 选项)和基于它的每个日志备份,包括您在第一步中确定的日志备份(同样,全部使用 norecovery)。然后 运行 restore database [yourDB] with recovery 到 运行 崩溃恢复,您就可以恢复业务了。