我让Windows调度程序调用每天凌晨3点进行完整数据库备份的程序。
我还想每十分钟做一次事务日志备份。
同步这些的最佳方式是什么?
据我所知,事务日志独立于完全备份,但如果两个不同的任务都在凌晨3点进行备份,那么这是一个问题吗?即要求数据库在完全相同的时间生成完整的备份和事务日志备份。
也许我应该有一个任务并查询SQL Server以查看上次完整备份是否超过24小时。如果没有,则执行事务日志备份。
答案 0 :(得分:0)
只要您运行SQL 2005或更高版本,就可以在完全备份的同时运行日志备份而不会出现问题。对某些细节进行着色,日志备份基于日志备份开始时的上次完成的完整备份。真正重要的唯一一次是当你需要进行恢复时,即便如此,它只是“有争议”(即“我应该恢复哪个完整备份,因为我想要恢复到这个时间点?”)完整备份正在进行时记录的日志备份。
如果您需要在这段时间内进行时间点恢复,那么您将向后工作。也就是说,首先找到包含所述时间点的日志备份。然后,要查找它所基于的完整备份,请在msdb.dbo.backupset
中查看该日志备份的数据库备份lsn,或在日志备份上运行restore headeronly
。从那里,找到具有该值的完整备份作为检查点lsn。现在,您只需要恢复那个完整备份(使用norecovery
选项)和基于它的每个日志备份,包括您在第一步中确定的日志备份(同样,全部使用norecovery
)。然后运行restore database [yourDB] with recovery
以运行崩溃恢复,然后重新开始运营。