当前位置:  数据库>oracle

ORA-600(3020) 错误解决

    来源: 互联网  发布时间:2017-05-30

    本文导语: 今天在恢复一套测试库的时候遇到了ora-600(3020)错误SQL> recover datafile 6;ORA-00279: change 1981277 generated at 01/03/2014 14:24:15 needed for thread 1ORA-00289: suggestion : /opt/arch/archive_1_45_834576965.arcORA-00280: change 1981277 for thread 1 is in sequence #45 Specify log: ...

今天在恢复一套测试库的时候遇到了ora-600(3020)错误
SQL> recover datafile 6;
ORA-00279: change 1981277 generated at 01/03/2014 14:24:15 needed for thread 1
ORA-00289: suggestion : /opt/arch/archive_1_45_834576965.arc
ORA-00280: change 1981277 for thread 1 is in sequence #45

Specify log: {=suggested | filename | AUTO | CANCEL}
auto
。。。
。。。
ORA-00283: recovery session canceled due to errors
ORA-00600: internal error code, arguments: [3020], [6], [59], [25165883], [],[], [], [], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 6, block# 59, file
offset is 483328 bytes)
ORA-10564: tablespace GOOLEN
ORA-01110: data file 6: '/opt/app/Oracle/oradata/goolen/goolen01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 74195
ORA-01112: media recovery not started

alter日志报错:
Fri Jan 03 17:21:06 2014
ALTER DATABASE RECOVER  datafile 6 
Media Recovery Start
Serial Media Recovery started
ORA-279 signalled during: ALTER DATABASE RECOVER  datafile 6  ...
ALTER DATABASE RECOVER    CONTINUE DEFAULT 
Media Recovery Log /opt/arch/archive_1_45_834576965.arc
Errors in file /opt/app/oracle/diag/rdbms/goolen/goolen/trace/goolen_ora_11763.trc:
ORA-00308: cannot open archived log '/opt/arch/archive_1_44_834576965.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-10567: Redo is inconsistent with data block (file# 6, block# 59, file offset is 483328 bytes)
ORA-10564: tablespace GOOLEN
ORA-01110: data file 6: '/opt/app/oracle/oradata/goolen/goolen01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 74195
Errors in file /opt/app/oracle/diag/rdbms/goolen/goolen/trace/goolen_ora_11763.trc  (incident=15025):
ORA-00600: internal error code, arguments: [3020], [6], [59], [25165883], [], [], [], [], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 6, block# 59, file offset is 483328 bytes)
ORA-10564: tablespace GOOLEN
ORA-01110: data file 6: '/opt/app/oracle/oradata/goolen/goolen01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 74195
Incident details in: /opt/app/oracle/diag/rdbms/goolen/goolen/incident/incdir_15025/goolen_ora_11763_i15025.trc
Media Recovery failed with error 600

trace文件内容:
buffer tsn: 6 rdba: 0x0180003b (6/59)
scn: 0x0000.00158d60 seq: 0x01 flg: 0x04 tail: 0x8d600601
frmt: 0x02 chkval: 0xf96d type: 0x06=trans data
on-disk scn: 0x0.158d60
DUMP REDO
 Opcodes *.*
 DBAs (file#, block#):
 (6, 59) .
 SCNs: scn: 0x0000.00158d60 (1412448) thru scn: 0x0000.001e3b9c (1981340)
 Times: creation thru eternity
*Error 308 when opening Archive Log -
 /opt/arch/archive_1_44_834576965.arc
*Error is non fatal for dump - Dump will continue
*Error 308 when opening Archive Log -
 /opt/arch/archive_1_44_834576965.arc
*Error is non fatal for dump - Dump will continue
*Error 308 when opening Archive Log -
 /opt/arch/archive_1_39_834576965.arc
*Error is non fatal for dump - Dump will continue
*Error 308 when opening Archive Log -
 /opt/arch/archive_1_39_834576965.arc

 SQL> select segment_name, segment_type, owner
  2  from dba_extents
  3  where file_id = &file_id
  4    and &block_id between block_id and block_id + blocks - 1;
Enter value for file_id: 6
old  3:  where file_id = &file_id
new  3:  where file_id = 6
Enter value for block_id: 59
old  4:  and &block_id between block_id and block_id + blocks - 1
new  4:  and 59 between block_id and block_id + blocks - 1

no rows selected

SQL> select *
  2  from dba_free_space
  3  where file_id = &file_id
  4  and &block_id between block_id and block_id + blocks - 1;
Enter value for file_id: 6
old  3: where file_id = &file_id
new  3: where file_id = 6
Enter value for block_id: 59
old  4: and &block_id between block_id and block_id + blocks - 1
new  4: and 59 between block_id and block_id + blocks - 1

no rows selected

SQL> SELECT owner, segment_name, segment_type, partition_name
  2              FROM dba_segments
  3            WHERE header_file =&file_id
  4    and header_block=&block_id;
Enter value for file_id: 6
old  3:            WHERE header_file =&file_id
new  3:            WHERE header_file =6
Enter value for block_id: 59
old  4:    and header_block=&block_id
new  4:    and header_block=59

no rows selected

由于出现这个错误,恢复中断
Metalink上解释:
  This is called a 'STUCK RECOVERY'.
  There is an inconsistency between the information stored in the redo and the information stored in a database block being recovered
 
+++从以上信息,我们可以大概猜测,oracle在做恢复时(0x0180003b (6/59)),发现redo信息与要恢复的数据块信息不一致,导致恢复无法继续
SCNs: scn: 0x0000.00158d60 (1412448) thru scn: 0x0000.001e3b9c (1981340)

由于测试库没有备份,只能损失部分数据来恢复数据库

SQL> recover datafile 6 allow 1 corruption;
ORA-00279: change 1981277 generated at 01/03/2014 14:24:15 needed for thread 1
ORA-00289: suggestion : /opt/arch/archive_1_45_834576965.arc
ORA-00280: change 1981277 for thread 1 is in sequence #45

Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 1981343 generated at 01/03/2014 14:25:15 needed for thread 1
ORA-00289: suggestion : /opt/arch/archive_1_46_834576965.arc
ORA-00280: change 1981343 for thread 1 is in sequence #46

Log applied.
Media recovery complete.
SQL>
SQL> alter database datafile 6 online;


Database altered.

相关阅读:

Oracle ORA-01555 快照过旧 说明

ORA-01078 和 LRM-00109 报错解决方法

ORA-01555超长的Query Duration时间

ORA-00471 处理方法笔记

ORA-00314,redolog 损坏,或丢失处理方法

ORA-00257 归档日志过大导致无法存储的解决办法


    
 
 

您可能感兴趣的文章:

  • 出现ORA-01401和ORA-01008错误?
  • Eclipse连接Oracle数据库的ORA-00604 ORA-12705错误
  • oracle ORA-01114、ORA-27067错误解决方法
  • Oracle不能删除表 ORA-00604 ORA-01422 错误
  • ORA-12514及ORA-28547错误解决方案
  • plsql连接oracle数据库报ora 12154错误解决方法
  • oracle 11g导出数据时报ORA 1455错误的处理方法
  • Oracle 数据库闪回功能设置出现ORA-19809和ORA-19804错误
  • 为什么我读取数据库时出现:ORA-00600: 内部错误代码,参数: [ttcgcshnd-1], [0], [],错误?
  • ORACLE出现错误1033和错误ORA-00600的解决方法
  • Linux 下数据库oracle出现ORA-27102错误的解决办法
  • PHP连接Oracle错误ORA-24324服务句柄未初始化的解决方法
  • Orcle的package中访问其它Schema的表报错ORA-00942解决方法
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • 解决报错ora-32035的方法分析
  • 基于ORA-12170 TNS 连接超时解决办法详解
  • 安装oracle出现error:ora-01031:insufficient privilleges的解决
  • zilong28提问:Tomcat3.2报错内容是Error occurs when connecting DB: ORA-00020: maximum number of processes(59) exceeded 我应该如何解决,先谢了
  • ORA-28002 Oracle 11g存在密码过期问题解决方案
  • Oracle ORA-22908(NULL表值的参考)异常分析与解决方法
  • 如何解决ORA-01843与NLS_DATE_FORMAT问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何得到带有ora的行的下一行
  • 如何配置 linux 下 oracle 的 listener .ora 和
  • 浅析如何在tnsnames.ora中配置监听
  • Oracle ORA-22908(NULL表值的参考)异常分析与解决方法 iis7站长之家
  • aq.executeQuery: ORA-00020: maximum number of processes (59) exceeded
  • ORA-00947:Not enough values (没有足够的值)的深入分析
  • solaris10 安装 ora9.2.0.1 时报错
  • 在UNIX下,我的ORA817该怎么样才可以自己启动呀?
  • 谁能帮忙解释一下: ORA-01000 : maximun open cursors exceeded
  • 关于Oracle游标的问题(ORA-01000: maximum open cursors exceeded)
  • 我在Linux7。3下面装了一个Oracle8i,但是现在启动不起来了,总是报错ORA-01031: insufficient privileges
  • oracle报错(ORA-00600)问题处理
  • Oracle 10g之ORA-32004问题
  • 在客户端配置TNS测试报错ORA-12170:TNS:连接超时


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,