要实现informix的数据恢复,只有2个方法,一个是onbar,一个是ontape,只有onbar才具有指定时间点恢复的功能,但onbar的配置相对复杂,而且限制不小。相对来说,ontape虽然没有提供指定时间点恢复的功能,但ontape的日志恢复原理上是恢复归档日志上的所有数据库操作,也就是说只要我们把归档日志上超过我们指定时间点的操作去掉,再用ontape -l做日志恢复,实际上是可以实现指定时间点恢复的。
换言之,我们第一步就是分析归档日志的结构,然后将所有操作收集起来,把超过指定时间点的操作去掉,最后再按照日志结构生成一份新的日志做日志恢复即可。当然了,如果能把归档日志结构分析出来,还能得到日志的增量数据,之前老板还问我能不能把在线日志的数据也拿过来,我当时还没研究好,现在想起来其实也是有办法的,也许后面会写篇关于获取informix在线日志数据的文章。
首先我们来看看归档日志的内容
图1
上图中的66号日志就是用来测试和分析的对象,用od打开可以看到内容如下
图2
我们看到第0000000行开头有6个字节的ffff ffff ffff,然后01