此图涉及三个版本的化身 Incarnation。
Incarnation 1:
最低位黑色水平线从 SCN1 开始,经历 SCN1000,直到 SCN2000,这个为数据库第一个化身,称之为 Incarnation 1,这时 候, 化身1 就为 当前化身(current incarnation) 。
Incarnation 2:
假设在化身1中,我们执行了一个时间点恢复(不完全恢复),且指定的地方是 SCN1000 的位置,然后我们通过使用 Resetlogs 选项打开了数据库,这时,化身2 就出现了(45°倾斜黑色实线),化身2 从SCN1000开始,持续到 SCN3000。这时候,我们称 化身1 是 化身2 的 父级化身(parent incarnation),化身2 变为当前化身(current incarnation) 。
Incarnation 3:
我们观察下向右上角45°倾斜的这条黑色实线,它是化身2。在化身2中,它从 SCN1000开始,经过 SCN2000,持续到 SCN3000。假设在化身2 中,我们执行了一个时间点恢复(不完全恢复),且指定的地方是 SCN2000 的位置,然后通过 Resetlogs 选项打开数据库,这时,化身3 就出现了(位于最高位的黑色水平线),化身3 从 SCN2000开始,持续到黑色水平线 的 SCN3000。这时候,我们称 化身2 是 化身3 的 父级化身 ,称 化身1 是 化身3 的 祖辈级化身(ancestor incarnation),化身3 变为当前化身(current incarnation) 。
场景模拟:
( 1 )
(2)由于表A被删除,需要进行不完全恢复,恢复到SCN1046437,此时Open resetlogs打开,开启一个新的化身incarnation 2,表A被找回,但是表B,表C已丢失。
(3)此时如果想继续恢复到创建表C时刻,需要指定化身1(reset database to incarnation 1),然后进行restore +recover实现恢复 到创建表C时刻,此时Open resetlogs打开,开启一个新的化身incarnation 3,此时化身2变为孤儿化身(ORPHAN),当前情况为表 B,表C存在,表A丢失。
(4)再次回到化身2,需要指定化身2(reset database to incarnation 2),然后进行restore+recover实现恢复到化身2,此时需要 Open resetlogs打开,开启一个新的化身4,此时化身3变为孤儿化身(ORPHAN),化身2变为父化身(Parent)
//当前化身为化身4,进行一次冷备份
//恢复到化身3,开启化身5,当化身5数据文件损坏时,使用化身4时的冷备份进行恢复测试
//open报错
//recover报错
//trace重建控制文件报错
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。