ORA-19909:当进行不完全恢复之后使用open database resetlogs_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 6894 | 回复: 0   主题: ORA-19909:当进行不完全恢复之后使用open database resetlogs        下一篇 
匿名用户
发表于: IP:您无权察看 2011-11-24 15:01:50 | [全部帖] [楼主帖] 楼主

<P></P><P>Applies to: Oracle Server - Enterprise Edition - Version: 8.1.7 to 10.2 This problem can occur on any platform. Symptoms - 执行不完全恢复,在最后会出现错误 recover automatic database until cancel using backup controlfile; ORA-00283: recovery session canceled due to errors ORA-19909: datafile 1 belongs to an orphan incarnation ORA-01110: data file 1: '/u67/oradata/SUREXP/system01.dbf‘ 下面全部出现在警告日志里: Media Recovery Start Warning: Recovery target destination is in a sibling branch of the controlfile checkpoint. Recovery will only recover changes to datafiles. Fri May 16 13:14:36 2008 Media Recovery failed with error 19909 ORA-283 signalled during: ALTER DATABASE RECOVER automatic database until cancel using backup controlfile Changes 数据库已经被升级,控制文件从为升级之前的备份中恢复 Cause 控制文件中的备份的文件的信息被错误列出,换句话说,还原的是控制文件的旧的副本(升级之前),控制文件中显示的incarnation是1,而实际的数据文件的incarnation 是 2,因此出现了不匹配的问题。 可以通过下面的查询确认这种情况: -- Gather Information for RECOVERY -- -- Spooled outputfile: recover.lst set pagesize 20000 set linesize 1000 set pause off set serveroutput on set feedback on set echo on set numformat 999999999999999 Spool recover.lst show parameter pfile; archive log list; select * from v$backup; select file#, status, substr(name, 1, 70) from v$datafile; select distinct checkpoint_change# from v$datafile_header; -- select status, resetlogs_change#, resetlogs_time, checkpoint_change#, to_char(checkpoint_time, 'DD-MON-YYYY HH24:MI:SS') as checkpoint_time, count(*) from v$datafile_header group by status, resetlogs_change#, resetlogs_time, checkpoint_change#, checkpoint_time order by status, checkpoint_change#, checkpoint_time ; -- select substr(name,1,60), recover, fuzzy, checkpoint_change#, resetlogs_change#, resetlogs_time from v$datafile_header; select name, open_mode, checkpoint_change#, ARCHIVE_CHANGE# from v$database; select GROUP#,THREAD#,SEQUENCE#,MEMBERS,ARCHIVED,STATUS,FIRST_CHANGE# from v$log; select GROUP#,substr(member,1,60) from v$logfile; select * from v$log_history; select * from v$recover_file; select * from v$recovery_log; select HXFIL File_num,substr(HXFNM,1,70) File_name,FHTYP Type,HXERR Validity, FHSCN SCN, FHTNM TABLESPACE_NAME,FHSTA status ,FHRBA_SEQ Sequence from X$KCVFH; select hxfil FileNo,FHSTA status from x$kcvfhall; spool off 以上的输出将会显示incarnation 的值是不匹配的 Solution 我们除了重建控制文件别无他法,其他任何的方法针对这种情况都不会是有效地解决方案; 1、 先装载实例,获得重建控制文件的脚本文件 sql> startup mount .. sql> alter database backup controlfile to trace ; 这样将会在“udump”目录下产生一个跟踪文件,确认后执行创建控制文件的脚本来创建控制文件 see also Reference: ---------- Note:1012929.6 How to Recreate the Controlfile(查看Note:1012929.6 了解如何创建控制文件) 2、 当有了新创建的控制文件再尝试open database resetlogs,并检查所有的数据文件是否在线 sql> reocver database until cancel using backup controlfile apply all logs needed sql> alter databse open resetlogs ; Errors ORA-1110; ORA-19909; ORA-283</P><P></P>


赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论