欢迎光临
我们一直在努力

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重建控制文件报错

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。