之前用RMAN做过一个数据库的全备,后来发现数据库mess up了,想要恢复到之前做备份的那个状态,这个用RMAN很好办,

RMAN> run{
2> set until scn 44712912;
3> restore database;
4> recover database;
5> alter database open resetlogs;
6> }
不过杯具的是,在resetlogs之后没有再做一次全备。这样在数据库run了一段时间后,发现还是要回到当初状态比较好。寻思着不如再回到从前吧,尝试重复执行上面的这段脚本,却得到如下错误,
executing command: SET until clause
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of set command at 10/25/2010 15:10:03
RMAN-20208: UNTIL CHANGE is before RESETLOGS change
突然意识到,这应该是在resetlogs之后,数据库进入了一个新的incarnation, 因此用上个incarnation的备份来恢复貌似不行了。不过文档上说得请清楚楚,10g加强了这方面的功能,即使resetlogs了,还是可以用之前的备份来恢复数据库的,但是为啥这样重复执行脚本失败了呢?莫非需要穿越到上一次“化身”中(想起了盗梦空间)吗?
通过 RMAN 的 LIST INCARNATION 命令可以看到当前数据库共有几层"化身"...
RMAN> list incarnation;
List of Database Incarnations
DB Key Inc Key DB Name DB ID            STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       1       ORCL     1257481935       PARENT 1          29-OCT-05
2       2       ORCL     1257481935       PARENT 518852     14-SEP-10
       3       ORCL     1257481935       CURRENT 44712913   22-OCT-10
根据reset scn, 可以看到上一次备份实在incarnation 2中做的,尝试把数据库穿越回上一个incarnation中,
RMAN> reset database to incarnation 2;
database reset to incarnation 2
接下来再次尝试用之前的脚本来恢复数据库,
RMAN> run{
2> set until scn 44712912;
3> restore database;
4> recover database;
5> alter database open resetlogs;
6> }
executing command: SET until clause
Starting restore at 25-OCT-10
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=539 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF
restoring datafile 00002 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF
restoring datafile 00003 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF
restoring datafile 00004 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF
restoring datafile 00005 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF
restoring datafile 00006 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/XXX001.DBF
restoring datafile 00007 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/XXX002.DBF
restoring datafile 00008 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/XXX003.DBF
restoring datafile 00009 to D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/XXX004.DBF
channel ORA_DISK_1: reading from backup piece D:/BACKUP/06LQGQTM_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=D:/BACKUP/06LQGQTM_1_1 tag=TAG20101015T123149
channel ORA_DISK_1: restore complete, elapsed time: 00:12:26
Finished restore at 25-OCT-10
Starting recover at 25-OCT-10
using channel ORA_DISK_1
starting media recovery
archive log thread 1 sequence 7180 is already on disk as file D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ORCL/ARCHIVEL
OG/2010_10_15/O1_MF_1_7180_6CHXFG68_.ARC
archive log filename=D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ORCL/ARCHIVELOG/2010_10_15/O1_MF_1_7180_6CHXFG68_.ARC
thread=1 sequence=7180
media recovery complete, elapsed time: 00:00:02
Finished recover at 25-OCT-10
database opened
Sum-up
看来虽然10g支持用跨incarnation的备份来恢复数据库,还是需要事先讲数据库set到相应的incarnation才成。
转贴: http://archive.cnblogs.com/a/1860583/

转载于:https://blog.51cto.com/369day/959016

Recover through incarnations: RMAN-20208相关推荐

  1. oracle中recover作用,Oracle rman中restore和recover的区别

    在Oracle的备份与恢复的知识点中,经常会出现Restore 和 Recovery两个词. 由于这两个词在字典中的解释很接近,Oracle的官方文档中看到了以下解释. Restoration:A c ...

  2. linux ora27040,使用RMAN recover database时遇到ORA-01119 ORA-27040 错误的解决办法

    问题描述: DATA COLLECTED =============== CUSTOMER STATEMENT ------------------ 不过在恢复数据的过程中,用8月1号的全备份,恢复到 ...

  3. Oracle RMAN Recover中使用BBED 跳过缺失的归档 继续 Recover 的测试

    一.背景说明 Oracle RMAN 备份的恢复分2个步骤:RESTRE 和 RECOVER. 在这个过程中,Recover 是依赖与归档文件的. 假设一种情况:周一对数据库做了全备,然后保留归档.周 ...

  4. 12c RMAN新特性之Recover Table

    关注我们获得更多内容 周玉其 云和恩墨南区技术顾问,曾在电信.物流等行业从事多年数据库开发.管理工作. 摘要 12c 的 rman 有了很大的增强,其中一个亮点就是可以进行表(或分区)级别的恢复,相比 ...

  5. 【12c】12c RMAN新特性之通过网络远程恢复数据库(RESTORE/Recover from Service)

    [12c]12c RMAN新特性之通过网络远程恢复数据库(RESTORE/Recover from Service) 通过网络远程恢复数据库(Restore/Recover from Service) ...

  6. oracle rman实时备份吗,ORACLE-RMAN自动备份和恢复

    以下介绍的是每周1-6增量备份,每周日全量备份. 通过系统启动自动化任务 [oracle@orcl ~]$ crontab -l 10 00 * * 0  /home/scripts/rmanleve ...

  7. Oracle 12c RMAN全攻略

    文章目录 1. RMAN命令 2. RMAN备份 2.1 控制RMAN备份 2.2 备份保留策略 2.3 快速恢复区(Fast Recovery Area) 2.4 backup...plus arc ...

  8. ORACLE11G 将dataguard的rman备份恢复到测试环境的单机oracle中的详细过程

    2019独角兽企业重金招聘Python工程师标准>>> ORACLE11G 将dataguard的rman备份恢复到测试环境的单机oracle中的详细过程 原创 2015年08月21 ...

  9. RMAN简明教程之五——RMAN还原和恢复

     一.常规还原与恢复       RMAN 的整个恢复过程可以分为还原(restore)与恢复(recover) ,他们在含义上是有很大差别的,一个是指物理意义的文件的还原与拷贝,一个是指数据库一致性 ...

  10. 非系统表空间损坏,rman备份恢复

    实验条件:有完整可用备份 --查询表空间情况 SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME S ...

最新文章

  1. PHP的优点和缺点分别是什么,CSS的优点和缺点分别是什么
  2. 互联网企业烧钱抢占公交Wi-Fi市场
  3. oracle删除排序数据库,数据库的数据操作:增删改查和排序
  4. A Data Access Layer to persist business objects using attributes and reflection - Part III [无常译]...
  5. c99什么意思_C语言中%c,%s分别代表什么意思?
  6. 11 二叉查找树中搜索区间
  7. CPU漏洞可导致RSA被攻击
  8. Java 之 注释介绍
  9. 你是多大年龄感觉自己开窍了,明白许多人世间的道理?
  10. pl/sql中添加 shortcuts插件
  11. 成功从小公司跳槽!java并发编程实践pdf完整百度云
  12. 位图和矢量图转换工具推荐
  13. C语言自学之路八(数组(重点)详解)
  14. Js拼接Json供echarts的地图使用
  15. 高德地图中自定义色块标识任意省市县区域
  16. Python编写的com组件大全与解决对策
  17. 阿里在人工智能发展治理方向的思考和实践
  18. 网络安全面试、实习、校招经验打包分享
  19. 中国羊奶皂市场趋势报告、技术动态创新及市场预测
  20. 【内存】内存对齐 的原理

热门文章

  1. iOS 算法的前世今生:算法原理、常用算法(一)排序算法
  2. 基础课教材推荐-数字设计、体系结构
  3. 并发编程---死锁||递归锁---信号量---Event事件---定时器
  4. 2010年imac从移动硬盘启动Win10
  5. 编译用户Orcle的package中访问其它Schema的表
  6. 【R语言实用技巧】类别变量的顺序自定义设置
  7. 为何你的网络爬虫技术提升缓慢?甚至小白无从下手学习?
  8. 简单的时间间隔调度任务
  9. BZOJ1123: [POI2008]BLO
  10. sql中exist()的用法