我即将把数据库置于完整恢复模式并开始进行事务日志备份。我每晚都会将完整备份到另一台服务器,晚上晚些时候会将此文件和许多其他文件备份到磁带上。
我的问题是这样的。我将每小时(如果需要,可以更长时间)备份一次 t-log,并将其存储在另一台服务器上。但是,如果我的完整备份通过了 DBCC 和完整性检查,我是否需要将 T-Log 放在磁带上?
如果有人想要将时间点恢复到昨天下午 2 点,我需要之前的完整备份和事务日志。但是,除了这种情况之外,如果我知道我的完整备份是好的,那么保留前一天的事务日志备份是否有意义?
答案1
旧日志在某些情况下可能很有用,例如,如果您发现昨天发生了错误的更新操作并且需要恢复数据,则可以使用较旧的完整日志和较旧日志的时间点恢复来恢复到发生错误数据更新的时刻并复制出已删除的数据。基本上任何需要上次完整操作之前的数据库映像的操作。
假设您有 100% 的媒体信心,即上次完整备份 100% 保证可用并可恢复,则不需要比最近一次完整备份更早的日志备份。是否保留它们更长时间或将其丢弃将取决于历史保留策略要求和 DBA(健康)个人层面的偏执,而不是取决于恢复要求。
需要注意的一点是,如果没有进行过完整备份,那么早于上次完整备份的日志备份就毫无用处。
答案2
就我个人而言,我更喜欢将数据和事务日志备份到磁盘,然后将它们复制到另一组磁盘(在我的情况下是异地)。这使您的备份和恢复过程非常灵活。
保留旧事务日志对于时间点数据库恢复很有用。根据您的业务,将数据库恢复到几天前的特定事务可能会很有用(对于技术支持或开发回滚很有用)。
我过去曾使用 netbackup 将事务日志备份直接备份到磁带上,但发现必须摆弄磁带才能恢复备份(磁带由不同的团队处理,位于距离服务器机房很远的商店中),这很不方便。磁带也不可靠,尤其是当您真正需要它们时。
磁带备份的另一个问题是,如果确实发生严重故障,那么磁带驱动器将严重短缺,无法让您恢复备份。列表中将有一大堆其他服务和系统,您的备份可能不会排在首位!
答案3
如果有人想要将时间点恢复到昨天下午 2 点,我需要之前的完整备份和事务日志。但是,除了这种情况之外,如果我知道我的完整备份是好的,那么保留前一天的事务日志备份是否有意义?
您说得对,无论出于什么原因,旧事务日志的唯一用途就是恢复旧备份。保留前一个备份的时间完全取决于您对下一个备份的信心程度。我个人认为下一个备份将会失败,并且至少有最后一个备份可用。除非迫不得已,否则我不会删除它们(例如,保留 15% 的空间后,我仍有 400 GB 的空间,因此我不妨保留一个或两个备份)。
不要忘记海森堡的黄金法则 - 你的数据只有当它始终存在于两个地方时才存在。