[原创]在恢复期间ORA-1547 & ORA-1194错误诊断_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4771 | 回复: 0   主题: [原创]在恢复期间ORA-1547 & ORA-1194错误诊断        下一篇 
大红薯
注册用户
等级:少校
经验:1440
发帖:159
精华:0
注册:2011-7-21
状态:离线
发送短消息息给大红薯 加好友    发送短消息息给大红薯 发消息
发表于: IP:您无权察看 2011-8-29 10:47:32 | [全部帖] [楼主帖] 楼主

     在恢复期间ORA-1547 & ORA-1194错误诊断

适用于:            

Oracle Server - Enterprise Edition - Version: 9.0.0 to 10.2.0
Information in this document applies to any platform.


目标:

下面的记录提供了一个ORA-1157和ORA-1194的例子并且如何去解决它。

错误信息描述

ORA 1157


文本:警告:RECOVER成功但是OPEN RESETLOGS将报错

——————

原因:后台进程不能找到其中一个数据文件。数据库将禁止访问该文件但是其他文件将不受影响。

但是,数据库打开的第一个实例将需要访问所有在线的数据文件。

操作系统的相关信息将描述为何找不到该文件。

ORA 1194


文本:文件需要更多的恢复来实现一致性

————

原因:一个不完全恢复会话开始了,但是重做日志的数量不足以应用到保持文件一致性。

命名文件并没有完全关闭当它被数据库最后一个打开的时候。

最可能的原因是该信息在不完全恢复之前从一个备份恢复文件时候被忽略

解决方案

在进行如下的恢复尝试时,通常会同时收到错误ORA-1157 和 ORA 1194

SQL> recover database using backup controlfile until cancel
ORA-00279: change 2008250 generated at 06/07/2007 11:50:32 needed for thread 1
ORA-00289: suggestion :
/recovery_area/V102/archivelog/2007_06_07/o1_mf_1_2_%u_.arc
ORA-00280: change 2008250 for thread 1 is in sequence #2
Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 3 needs more recovery to be consistent
ORA-01110: data file 3: '/oradata/V102/sysaux01.dbf'
Following this error message issue the following SQL command, you will most commonly find at least one datafile which is in FUZZY mode.
SQL> select file#,STATUS, FUZZY from v$datafile_header;
FILE# STATUS FUZ
-------- ------------ ------
1 ONLINE NO
2 ONLINE NO
3 ONLINE YES
4 ONLINE NO


该例子在file#3中可以找到。

这时候最好的解决方案是应用更多的归档日志为了使数据文件摆脱 FUZZY 模式。

在很多情况下恢复会话可能需要一个没有被生成的归档日志。这个原因可能是恢复子句里面包含了“using backup controlfile”

如果在这种情况下,你需要应用当前在线的重做日志来完成恢复:

该命令将返回当前在线的重做日志。

SQL> select member from v$logfile lf , v$log l where l.status='CURRENT' and lf.group#=l.group#;
then proceed to issue:
SQL> recover database using backup controlfile until cancel;


当恢复会话提示需要一个以上指定在线的重做日志,并单击ENTER。这将完成恢复并且你将可以打开数据库

SQL> alter database open resetlogs;


注意:

如果应用所有的归档日志之后和在线重做日志之后,数据库仍旧打不开,请提供以下的脚本输出给ORACLE支持来协助恢复(请上传 recovery_info.txt)

set pagesize 20000
set linesize 180
set pause off
set serveroutput on
set feedback on
set echo on
set numformat 999999999999999
Spool recovery_info.txt
select substr(name, 1, 50), status from v$datafile;
select substr(name,1,40), recover, fuzzy, checkpoint_change# from v$datafile_header;
select GROUP#,substr(member,1,60) from v$logfile;
select * from v$recover_file;
select distinct status from v$backup;
select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh;
select distinct (fuzzy) from v$datafile_header;
spool off
exit


显示相关信息

产品

* Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition


关键词

ORA-1110; ORA-1157; ORA-1194; ORA-1547; ORA-279; ORA-280; ORA-289
Errors
ORA-01194; ORA-01547; ORA-1110; ORA-1157; ORA-1194; ORA-1547; ORA-279; ORA-280; ORA-289




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