http://blog.itpub.net/7259433/viewspace-2146710/
创新互联建站技术团队10余年来致力于为客户提供成都网站设计、成都网站建设、品牌网站制作、成都全网营销、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了上千网站,包括各类中小企业、企事单位、高校等机构单位。
Resetlogs命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,每次使用Resetlogs命令的时候,SCN不会被重置,不过oracle会重置日志序列号,而且会重置联机重做日志内容。Oracle把这个数据库逻辑生存期称为incarnation,每次使用resetlogs打开数据库,就会使incarnation + 1,也就是产生一个新的incarnation;
如果想要恢复到之前incarnation的scn/time,就需要先恢复到之前的incarnation;
rman recover后,resetlog打开后,如果要重新recover,那么需要 reset database to incarnation ....
--备份恢复
run {
set until scn 2122840;
shutdown immediate;
startup mount;
restore database;
recover database;
alter database open resetlogs;
}
--再次备份恢复
list incarnation;
startup mount;
reset database to incarnation 5;
restore database until scn ;
recover database until scn
incarnation在英文中是“化身”的意思。 那么在oracle中,它又是什么意思呢?有什么作用呢?
Current Incarnation(当前化身):数据库当前正在使用的化身。
Parent Incarnation(父化身):数据库当前化身的上一个化身。在父化身以 OPEN RESETLOGS 打开后,就生成当前化身。
Ancestor Incarnation(祖辈化身):在父化身之前,辗转生成父化身的各个化身。
Direct Ancestral Path(直接祖辈路径 / 宗谱):由数据库的起始化身辗转生成至当前化身的分支路径,包含数据库的历代祖辈及父化身。
Orphan Incarnation(孤儿化身):不在数据库当前化身的宗谱上的数据库其它化身。
Orphaned Backups(孤儿备份):不是数据库当前化身的宗谱上生成的数据库备份。当前化身不能使
首先,我们可以来看一张图,来对incarnation有个基本的了解
如图,SCN1到SCN1000过程中,数据库属于incarnation 1,一直发展到横向的SCN 2000,做了不完全恢复到了SCN 1
000,此时SCN1000之后到横向的SCN2000的便是(孤儿化身)。而SCN1000向上面的SCN2000发展形成incarnation 2。
incarnation 1便是incarnation 2的(父辈化身)。 而SCN2000往上继续发展到SCN3000时,又做了不完全恢复到SCN
2000,SCN2000继续横向发展到SCN3000,形成incarnation 3.所以incarnation 1便是incarnation 3的(祖辈化身),
incarnation 2便是incarnation 1的(祖辈化身)。
所有incarnation 1到 incarnation 3 的这条灰色轨迹便是Direct Ancestral Path。
Incarnation 1 中 SCN 1000 之后的所有备份 和Incarnation 2 中 SCN 2000 之后的所有备份便是孤儿备份。
自此应该能够对Incarnation又大概的了解了吧。