【摘要】对于每一个企业来讲,数据备份恢复是企业 IT 运维当中非常重要的一部分。如何保障必要的数据在必要的时间完成必要模式的备份,并且能在需要的时刻将正确的数据在正确的位置恢复,这是数据备份恢复运维工作必然的考核指标。本文通过大量的运维实践总结出备份系统运维工作当中遇到的一些关键问题,并且按照实际解决方案提炼解决思路。希望能给企业日常的备份系统运维带来一些启示和帮助。
1. 如何解决平衡数据库归档频度和数据恢复完整性
对于数据库的恢复来说有很多种,我们只讨论需要介质恢复的情况。在这种场合下,首先我们需要找到一个最近时刻点的全量备份进行恢复;然后需要从备份介质上找到这个时刻点之后的重做日志进行数据追平,最后我们需要找到本地没有丢失的重做日志进行再次追平直到没有可用日志。如下图所示:

图1 数据库恢复原理示意图
如图所示,在时刻 A ,我们开始做在线全库备份,在 B 时刻全库备份结束。当数据库运行到 E 时刻之后数据库发生了重大介质故障,只能通过介质恢复。那么在 A~C 时间段内,大部分 REDO 日志文件都已经归档到备份介质池当中,服务器本地存储目录当中只剩下 C~E (小于一个归档备份时间间隔)的归档日志和没有来得及归档的 REDO 日志文件。假设发生的故障严重到服务器本地存储目录也无法恢复的时候,那么相当于在 C-E 这段时间产生的重做日志就丢失掉了。相当在这种极端场合下,数据丢失的最大窗口就是一个归档间