Oracle incarnation
此图涉及三个版本的化身 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重建控制文件报错
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。