ITPub博客

首页 > 数据库 > Oracle > Oracle incarnation

Oracle incarnation

原创 Oracle 作者:DBhanG 时间:2020-06-26 20:08:26 0 删除 编辑

. 官方图示例

此图涉及三个版本的化身 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重建控制文件报错

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69975956/viewspace-2700694/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-05-28

  • 博文量
    59
  • 访问量
    32766