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 1000,此时SCN1000之后到横向的SCN2000的便是(孤儿化身)。而SCN1000向上面的SCN2000发展形成incarnation 2。incarnation 1便是incarnation 2的(父辈化身)。

而SCN2000往上继续发展到SCN3000时,又做了不完全恢复到SCN2000,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又大概的了解了吧。

下面我们来通过实验来了解下

RMAN> backup as compressed backupset database plus archivelog delete all input;

RMAN> list incarnation;

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       ORCL     1446008355       PARENT  1          18-SEP-11

2       2       ORCL     1446008355       PARENT  787897     26-JUL-16

3       3       ORCL     1446008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       CURRENT 906785     15-AUG-16

[oracle@linfan ~]$ sqlplus / as sysdba

SQL> grant dba to scott;

Grant succeeded.

SQL> begin

for i in 1 .. 10 loop

insert into test  select current_scn from v$database;

commit;

end loop;

end;  2    3    4    5    6

7  /

SQL> select * from test;

CUR_SCN

----------

1400123

1400126

1400129

1400132

1400135

1400138

1400141

1400144

1400147

1400150

10 rows selected.

rman target /

RMAN> run {

startup mount force;

set until scn 1400138;

restore database;

recover database;

alter database open resetlogs;

}

查看数据,发现还原成功

SQL> select * from test;

CUR_SCN

----------

1400123

1400126

1400129

1400132

1400135

查看以下incarnation

RMAN> list incarnation  ;

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       ORCL     1446008355       PARENT  1          18-SEP-11

2       2       ORCL     1446008355       PARENT  787897     26-JUL-16

3       3       ORCL     1446008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       PARENT  906785     15-AUG-16

6       6       ORCL     1446008355       CURRENT 1400139    05-DEC-16

发现诞生了DB为6的incarnation,5号已经成为PARENT

再次执行之前的存储过程

SQL> select * from test;

CUR_SCN

----------

1400123

1400126

1400129

1400132

1400135

1400972

1400975

1400978

1400981

1400984

1400987

CUR_SCN

----------

1400990

1400993

1400995

1400999

15 rows selected.

再次进行不完全恢复

RMAN> run {

startup mount force;

set until scn 1400990;

restore database;

recover database;

alter database open resetlogs;

}

恢复成功,演化出了DB为7的incarnation

RMAN> list incarnation ;

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       ORCL     1446008355       PARENT  1          18-SEP-11

2       2       ORCL     1446008355       PARENT  787897     26-JUL-16

3       3       ORCL     1446008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       PARENT  906785     15-AUG-16

6       6       ORCL     1446008355       PARENT  1400139    05-DEC-16

7       7       ORCL     1446008355       CURRENT 1400991    05-DEC-16

查看test表

SQL> select * from test;

CUR_SCN

----------

1400123

1400126

1400129

1400132

1400135

1400972

1400975

1400978

1400981

1400984

1400987

11 rows selected.

此时,我们若是想还原到1400132的状态,可以实现吗?
注:1400132是DB为5的incarnation下的SCN

RMAN> run {

startup mount force;

set until scn 1400132;

restore database;

recover database;

alter database open resetlogs;

}

很遗憾地,爆出了RMAN-20208的错误。

Starting restore at 05-DEC-16

using target database control file instead of recovery catalog

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 12/05/2016 17:10:14

RMAN-20208: UNTIL CHANGE is before RESETLOGS change

那么怎么解决RMAN-20208的错误呢

要回到DB为5的incarnation,再进行恢复

RMAN>  reset database to incarnation 5;

database reset to incarnation 5

RMAN> run {

startup mount force;

set until scn 1400132;

restore database;

recover database;

alter database open resetlogs;

}

RMAN> list incarnation ;

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       ORCL     1446008355       PARENT  1          18-SEP-11

2       2       ORCL     1446008355       PARENT  787897     26-JUL-16

3       3       ORCL     1446008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       PARENT  906785     15-AUG-16

8       8       ORCL     1446008355       CURRENT 1400133    05-DEC-16

6       6       ORCL     1446008355       ORPHAN  1400139    05-DEC-16

7       7       ORCL     1446008355       ORPHAN  1400991    05-DEC-16

SQL> select * from test;

CUR_SCN

----------

1400123

1400126

1400129

由此可见,数据已经还原到之前状态,演化出DB为8的化身,DB为6和7的化身变成了孤儿化身(ORPHAN),数据库恢复成功。

总结:如果想要恢复到之前 incarnation 的 scn,就需要先切换到之前的 incarnation

https://blog.csdn.net/u012232730/article/details/83413851

转载于:https://www.cnblogs.com/feiyun8616/p/10602599.html

转 LIST INCARNATION OF DATABASE相关推荐

  1. Oracle使用ancestor incarnation完成基于时间点的不完全恢复

    每次以resetlogs选项打开数据库时一个新的数据库incarnation就会被创建.执行open resetlogs操作时就会对当前的联机重做日志文件进行归档.incarnation会将重做日志序 ...

  2. 诊断和响应故障_执行闪回和数据库时间点恢复(Flashback and Database Point-in-Time Recovery)

    本章阐述如何调查不想要的数据库更改,基于Oracle闪回技术和数据库备份选择和执行适合的恢复策略. 1.Oracle闪回技术和数据库时间点恢复概述 本概述描述Oracle闪回技术和数据库时间点恢复的目 ...

  3. Oracle Database 12c RMAN全量+增量备份+归档日志恢复详解

    Oracle可以非常方便的把数据库恢复到具体某个时间的状态,而且还支持全备和多级增备,备份无需停止应用服务.比起DB2需要手动逐级恢复增量备份和归档日志,RMAN是非常简单好用的数据库商业解决方案. ...

  4. Oracle Flashback: Database Administration Features

    Oracle把闪回技能分为Database Administration Features与Application Development Features:Database Administrati ...

  5. oracle数据库是db还是dbnms,Oracle数据库中各种类型的文件损坏与修复过程详解(2)...

    5.损坏全部联机日志 (1)故障模拟 删除日志文件:rm /u02/oradata/dbnms/*.log 关闭数据库:shutdown immediate; 启动数据库:startup; Datab ...

  6. RMAN的show,list,crosscheck,delete 命令整理

    转自其他人的博客整理,以TA为榜样,加油↖(^ω^)↗掌声鼓励鼓励  不过命令还是要记得常用的比较好,记得不清的时候这个可是宝典哦  O(∩_∩)O哈哈~ 1.SHOW命令:    显示rman配置: ...

  7. rman备份恢复总结

    Recovery Manager(RMAN)是一种用于备份(backup).还原(restore)和恢复(recover) 数据库的Oracle 工具.RMAN只能用于ORACLE8或更高的版本中.它 ...

  8. rman-incarnation

    使用rman应用归档时的报错问题starting media recovery media recovery failed released channel: c0 released channel: ...

  9. 【转】RMAN 高级恢复

    来源:http://blog.csdn.net/tianlesoftware/article/details/5722174 1. 不完全恢复 2. 基于RMAN 的恢复主题 3. 表空间时间点恢复 ...

最新文章

  1. 天元MegEngine训练推理
  2. MySQL视图的创建、修改与删除
  3. Pytorch CookBook
  4. 跨入安全的殿堂--读《Web入侵安全测试与对策》感悟
  5. Ruby中如何识别13位的时间戳
  6. 机器人码垛手持式编程_FANUC机器人码垛编程讲解
  7. azure夜校培训第四场3月8日18:00---网络服务
  8. Xcode10:library not found for -lstdc++.6.0.9 临时解决
  9. Twitter数据抓取的方法(一)
  10. 蓝桥杯题目 计算后续日期
  11. php 开发一元夺宝插件,yiyuanyungou 一元云购商城源码,商用 ci框架开发,带指定中奖插件 Other systems 其他 249万源代码下载- www.pudn.com...
  12. win7,win8系统为什么灵格斯老与office,adobe等软件冲突,怎么解决
  13. (十)统计表速查(标准正态分布、t分布、卡方分布)
  14. 3dmax linux版本,如何安装Linux版FLOW-3D及注意事项
  15. 深入了解电容器,电容器有哪些主要作用?
  16. 增值电信业务经营许可证怎么办理icp许可证
  17. 硅片/SOI绝缘硅片介绍,SOI圆片特点
  18. raid0,raid1,raid10,raid5,raid50,raid6,raid60的功能总结简述(转老金)
  19. 终于、我毕业叻,我最逗比的青春留给反作弊
  20. python集合应用场景_8.Python集合与字符串

热门文章

  1. python django web项目的构建步骤(一)
  2. OpenStack入门修炼之实战--实现阿里云ESC多FLAT网络(21)
  3. python 对象拷贝
  4. Zookeeper工作原理
  5. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )
  6. 分享一个C#读取计算机信息的类
  7. python 管道游戏_Python实现超级玛丽游戏系列教程05添加地面,管道和阶梯冲突检测...
  8. android固定位置滚动文本,android – 滚动文本上方的按钮,按钮固定在底部
  9. C++ 引用类型简介
  10. 创建模板_UG中如何创建属于自己的编程模板界面?