转 LIST INCARNATION OF DATABASE
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相关推荐
- Oracle使用ancestor incarnation完成基于时间点的不完全恢复
每次以resetlogs选项打开数据库时一个新的数据库incarnation就会被创建.执行open resetlogs操作时就会对当前的联机重做日志文件进行归档.incarnation会将重做日志序 ...
- 诊断和响应故障_执行闪回和数据库时间点恢复(Flashback and Database Point-in-Time Recovery)
本章阐述如何调查不想要的数据库更改,基于Oracle闪回技术和数据库备份选择和执行适合的恢复策略. 1.Oracle闪回技术和数据库时间点恢复概述 本概述描述Oracle闪回技术和数据库时间点恢复的目 ...
- Oracle Database 12c RMAN全量+增量备份+归档日志恢复详解
Oracle可以非常方便的把数据库恢复到具体某个时间的状态,而且还支持全备和多级增备,备份无需停止应用服务.比起DB2需要手动逐级恢复增量备份和归档日志,RMAN是非常简单好用的数据库商业解决方案. ...
- Oracle Flashback: Database Administration Features
Oracle把闪回技能分为Database Administration Features与Application Development Features:Database Administrati ...
- oracle数据库是db还是dbnms,Oracle数据库中各种类型的文件损坏与修复过程详解(2)...
5.损坏全部联机日志 (1)故障模拟 删除日志文件:rm /u02/oradata/dbnms/*.log 关闭数据库:shutdown immediate; 启动数据库:startup; Datab ...
- RMAN的show,list,crosscheck,delete 命令整理
转自其他人的博客整理,以TA为榜样,加油↖(^ω^)↗掌声鼓励鼓励 不过命令还是要记得常用的比较好,记得不清的时候这个可是宝典哦 O(∩_∩)O哈哈~ 1.SHOW命令: 显示rman配置: ...
- rman备份恢复总结
Recovery Manager(RMAN)是一种用于备份(backup).还原(restore)和恢复(recover) 数据库的Oracle 工具.RMAN只能用于ORACLE8或更高的版本中.它 ...
- rman-incarnation
使用rman应用归档时的报错问题starting media recovery media recovery failed released channel: c0 released channel: ...
- 【转】RMAN 高级恢复
来源:http://blog.csdn.net/tianlesoftware/article/details/5722174 1. 不完全恢复 2. 基于RMAN 的恢复主题 3. 表空间时间点恢复 ...
最新文章
- 天元MegEngine训练推理
- MySQL视图的创建、修改与删除
- Pytorch CookBook
- 跨入安全的殿堂--读《Web入侵安全测试与对策》感悟
- Ruby中如何识别13位的时间戳
- 机器人码垛手持式编程_FANUC机器人码垛编程讲解
- azure夜校培训第四场3月8日18:00---网络服务
- Xcode10:library not found for -lstdc++.6.0.9 临时解决
- Twitter数据抓取的方法(一)
- 蓝桥杯题目 计算后续日期
- php 开发一元夺宝插件,yiyuanyungou 一元云购商城源码,商用 ci框架开发,带指定中奖插件 Other systems 其他 249万源代码下载- www.pudn.com...
- win7,win8系统为什么灵格斯老与office,adobe等软件冲突,怎么解决
- (十)统计表速查(标准正态分布、t分布、卡方分布)
- 3dmax linux版本,如何安装Linux版FLOW-3D及注意事项
- 深入了解电容器,电容器有哪些主要作用?
- 增值电信业务经营许可证怎么办理icp许可证
- 硅片/SOI绝缘硅片介绍,SOI圆片特点
- raid0,raid1,raid10,raid5,raid50,raid6,raid60的功能总结简述(转老金)
- 终于、我毕业叻,我最逗比的青春留给反作弊
- python集合应用场景_8.Python集合与字符串
热门文章
- python django web项目的构建步骤(一)
- OpenStack入门修炼之实战--实现阿里云ESC多FLAT网络(21)
- python 对象拷贝
- Zookeeper工作原理
- [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )
- 分享一个C#读取计算机信息的类
- python 管道游戏_Python实现超级玛丽游戏系列教程05添加地面,管道和阶梯冲突检测...
- android固定位置滚动文本,android – 滚动文本上方的按钮,按钮固定在底部
- C++ 引用类型简介
- 创建模板_UG中如何创建属于自己的编程模板界面?