Oracle日志分析 之事务级精准恢复

一、挖出需要解决的问题

 

专业数据灾备软件中,对Oracle数据库的恢复,都需要以时间为基准来选择数据恢复点,用户希望数据能恢复到自己指定的时间上,更高级的用户则要求恢复到指定SCN。所以,目前在对Oracle数据备份后提供的恢复点有以下几种:

 

  • 恢复到数据备份的时间点。

  • 恢复到用户指定时间点。

  • 恢复到用户指定的SCN(System Change Number)等。

     

恢复到数据备份的时间点,这是最为基本的恢复点定位,要想在时间维度上提升恢复精准度,则是支持恢复到用户的指定时间点,再进一步的精准恢复就是指定SCN了。

 

但在实际生产环境所需的灾备场景中,提供的这些恢复精准度是不是真正达到用户期望值?让我们来分析以下场景:

 

  • 指定时间点恢复。时间点是以秒为单位,也就是说可以选择恢复到备份数据中的任意一秒上,恢复数据中包括了指定这一秒的事务,如果数据库事务请求密度不大,大于或等于1秒才有一个事务处理时,那么以秒为单位的恢复,的确已经做到精准恢复。但实际生产环境中,往往是1秒钟有成千上万,乃至百万个数据事务并发请求,或者会出现1个事务在多秒中处理完成。那么,采用恢复到某一秒时间,恢复后的数据不够精准。

  • 指定SCN恢复。SCN作为Oracle数据库中很重要的基础内容,是系统中维持数据的一致性和顺序恢复的重要标志,每个事务的每个操作都有一个唯一的SCN,要想数据恢复精准,就需要选择正确的SCN,但往往多数灾备系统中只提供了SCN号,没有提供SCN中关联的操作内容。要选择准确的SCN,经验丰富的DBA可以在数据库中执行指令来分析Oracle日志,从而得到恢复所需指定的SCN,但对于普通的维护人员,这却是比较难的操作。所以,如果要选择SCN做精准数据恢复,必须要具备专业的DBA知识,因此不利于通过指定SCN来恢复数据的普及使用。

 

通过以上场景分析,我们得知并未达到客户的预期值。所以,要想精准地恢复Oracle数据,最好的途径就是要选择正确的SCN,那么就要求能简易并清晰地了解每个SCN中的具体操作内容。但SCN信息在二进制日志文件中,直接解读的可能性几乎为零。这也就是提升恢复精准度的难点所在了。

 

二、鼎甲灾备产品推出日志解析

 

鼎甲的灾备产品在新一轮的产品提升中,正确解读出了Oracle数据库的日志文件,并在系统中提供直观展现。我们看看在鼎甲DBackup中,是如何解读和使用这些日志数据的。

 

  • 直观展现日志信息

     

鼎甲DBackup中采用列表方式直观展现日志文件的内容,即使是对于一个Oracle DBA高手来说,在进行数据恢复处理时也能提供有效的帮助。

 

 

  • 完整解析事务日志

     

要明了执行的事务,就需要完整解析出事务执行的内容,包括:谁做了操作,做了什么操作,关系到哪些表,具体SQL语句是什么,关联的SCN是什么,需要恢复到哪个SCN之前。只有完整地解析出这些信息,才能准确定位恢复的SCN。

 

鼎甲DBackup针对Oracle的重做日志和归档日志进行解析,获取出执行用户、操作类型、涉及表、执行SQL、SCN等信息,让用户完整了解事务执行内容。

 

  • 任意选择时间段

     

无需任何脚本指令的操作,只需在鼎甲DBackup界面上选择时间范围,系统将根据用户选定的时间段来自动提取日志数据分析,操作简单便利。

 

这非常适合于多数生产维护场景中,因为维护人员往往只是知道某时间段做了某些事情,更希望能从指定时间段来缩小范围,快速查找正确的SCN。

 

三、解决问题

 

  • 不难看出,鼎甲灾备产品的这次提升,又把Oracle数据库的恢复精准度向前推进了一大步,完美解决了文章开篇时描述的问题。

  • 在系统的界面上,点击几下鼠标,就可以把二进制日志文件简单易懂的呈现在您面前。

  • 不用再为选择哪个SCN点恢复而头痛了,因为您可以清楚地了解每个事务执行了哪些操作,每个操作对应的SCN是什么。

  • 同时,在审计上也起到显著作用,当数据库发生逻辑错误时,可以审计出是什么用户在什么时间造成的。

posted @ 2021-10-26 10:39  星火撩原  阅读(156)  评论(0编辑  收藏  举报