分类: DB2/Informix
2012-12-20 22:02:54
首先,建立测试数据:
原有备份中,test表中只有一条数据;然后插入几条数据后,进行备份:
离线备份:
DB2在进行恢复时,如果是使用归档日志模式,如果要恢复到曾经的一个脱机离线备份版本, 必须在restore之后,使用前滚操作,使用已有的日志进行前滚,否则,数据库将处于DB pending的状态,例如:
只有经过前滚后,才能继续联机数据库:
查看数据,发现数据已经根据日志进行了补齐:
但是,如果,就是不要某个版本之后的数据,单纯的恢复到某个版本呢?这个时候,需要加入参数 [WITHOUT ROLLING FORWARD]
例如:
查看数据库状态和数据:
数据库并没有处于前滚暂挂的状态,而数据也少了此备份版本之后新增的数据。
结论:这样的版本恢复,对于根据生产备份迅速建立测试环境是可行的,但是,如果是用于生产环境的恢复,必然导致数据的丢失,因此,生产环境的备份恢复,需要增加前滚到日志最后的操作。
2013年6月修订:
之前的调查不够全面。其实,还可以在rollforward 使用end of backup选项,然后stop,就可以直接前滚到备份的结束;当然,也可以使用前滚到指定时间点的方式,将数据库前滚到某一个时间点。对于之前的不全面结论,表示愧疚。