当前位置:  数据库>oracle

ORA-00600: 内部错误代码,参数: [6122]

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

    本文导语: 分析过程: 1、tjcw数据库后台alert告警大量出现如下的ora-00600错误告警        Fri Jul 06 15:59:13 2012        Errors in file f:Oracleadmintjcwudumptjcw_ora_3200.trc:        ORA-00600: 内部错误代码,参数: [6122], [0], [1], [0], [], [], [], []   ...

分析过程:
1、tjcw数据库后台alert告警大量出现如下的ora-00600错误告警
        Fri Jul 06 15:59:13 2012
        Errors in file f:Oracleadmintjcwudumptjcw_ora_3200.trc:
        ORA-00600: 内部错误代码,参数: [6122], [0], [1], [0], [], [], [], []
       Recovery of Online Redo Log: Thread 1 Group 2 Seq 3588 Reading mem 0
       Mem# 0 errs 0: F:ORACLEORADATATJCWREDO02.LOG
2、从 f:oracleadmintjcwudumptjcw_ora_3200.trc日志可以看到如下的信息。
     Block header dump:  0x0248f58c
       Object id on Block? Y
      seg/obj: 0x19d7e  csc: 0xbae.b4053409  itc: 120  flg: E  typ: 2 - INDEX
       brn: 0  bdba: 0x248f589 ver: 0x01
       inc: 0  exflg: 0
3、从oracle metalink的doc[ID 99300.1],可以看出ora-00600 [6122]和索引损坏有关。
4、从上面2,3两步基本上可以确认是索引损坏导致600错误。
5、现在需要证实是否真的是索引损坏导致的错误。
      A. 从seg/obj: 0x19d7e可以计算出这个Oracle的对象的object_id,因为是16机制,
           需要换算成10机制。
          0x19d7e=14+7*16+13*16*16+9*16*16*16+1*16*16*16*16=105854
      B. 找出是什么数据库对象。
          SQL> select owenr,object_name,object_type from dba_objects where     
                    object_id=105854;                                                                                  
          OWNER       OBJECT_NAME       OBJECT_TYPE                                         
            -----------          ---------------             ----------------------------------
          BDCWYB      SYS_EVENT_IDX_1   INDEX
     C. 这个索引存放在哪些Datafile上面。
          SQL>select distinct FILE_ID from dba_extents where wner='BDCWYB' and
            segment_name='SYS_EVENT_IDX_1';
         FILE_ID
           ----------
            9        
       SQL> select file_name from dba_data_files where file_id=9;     
           FILE_NAME                                                      
          ---------------------------------------------------------------
          F:ORACLEORADATATJCWUSERS01.DBF  
    D. 是用Oracle dbv工具测试user01.dbf是否真的存在坏块. 从失败的页总数
        (索引):1再次确认存在索引坏块.                                                       
      C: >dbv file=F:ORACLEORADATATJCWUSERS01.DBF
             blocksize=8192                                                                                           
       DBVERIFY: Release 9.2.0.1.0 - Production on 星期五 7月 6 15:46:23   
        2012                                          
       Copyright (c) 1982, 2002, Oracle Corporation.  All rights  
     reserved.                                                                                                                               
      DBVERIFY - 验证正在开始 : FILE =   
       F:ORACLEORADATATJCWUSERS01.DBF                              
      Block Checking: DBA = 38335884, Block Type = KTB-managed data 
      block                              
    **** actual rows locked by itl 1  = 1 != # in trans. header = 2                                  
     ---- end index block validation                                                                  
      页 587148 失败,校验代码为 6401                                                                                                                                                                  
      DBVERIFY - 验证完成                                                                              
      检查的页总数         :589600                                                                    
      处理的页总数(数据):455602                                                                     
      失败的页总数(数据):0                                                                          
      处理的页总数(索引):113755                                                                     
      失败的页总数(索引):1                                                                          
      处理的页总数(其它):12760                                                                      
      处理的总页数 (段)  : 0                                                                           
      失败的总页数 (段)  : 0                                                                           
      空的页总数            :7483                                                                     
     标记为损坏的总页数:0                                                                            
    汇入的页总数           :0  
6、从上面的分析得知,确实是索引坏块导致的600错误,故需要重建索引,消除600告警.
处理步骤:
1. 从上面的分析得知确实是索引坏块导致的600错误,现在重建索引,不能使用rebuild index,因为索引损坏的部分是索引段头,rebuild index会报如下的错误。
      SQL> alter index BDCWYB.SYS_EVENT_IDX_1 
              rebuild;                                                                                         
    alter index BDCWYB.SYS_EVENT_IDX_1 rebuild         c                
*                                                                  
    ERROR 位于第 1 行:                                                 
   ORA-00600: 内部错误代码,参数: [6122], [0], [1], [0], [], [], [], []
    drop index BDCWYB.SYS_EVENT_IDX_1;
    create index BDCWYB.SYS_EVENT_IDX_1 on BDCWYB.SYS_EVENT(EVT_GUID) 
    tablespace users;
2. 索引重建好了之后之后,再次检查是否还存在坏块,现在无坏块。
       C:>dbv file=F:ORACLEORADATATJCWUSERS01.DBF blocksize=8192
     DBVERIFY: Release 9.2.0.1.0 - Production on 星期五 7月 6 16:35:38 2012
     Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
     DBVERIFY - 验证正在开始 : FILE = F:ORACLEORADATATJCWUSERS01.DBF
    DBVERIFY - 验证完成
      检查的页总数         :590720
      处理的页总数(数据):455602
      失败的页总数(数据):0
      处理的页总数(索引):114951
      失败的页总数(索引):0
      处理的页总数(其它):12760
      处理的总页数 (段)  : 0
      失败的总页数 (段)  : 0
      空的页总数            :7407
      标记为损坏的总页数:0
      汇入的页总数           :0


























































































    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何得到带有ora的行的下一行
  • 如何配置 linux 下 oracle 的 listener .ora 和
  • 浅析如何在tnsnames.ora中配置监听
  • Orcle的package中访问其它Schema的表报错ORA-00942解决方法
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • [Oracle] 浅析令人抓狂的ORA-01555问题
  • 解决报错ora-32035的方法分析
  • aq.executeQuery: ORA-00020: maximum number of processes (59) exceeded
  • ORA-00947:Not enough values (没有足够的值)的深入分析
  • solaris10 安装 ora9.2.0.1 时报错
  • 在UNIX下,我的ORA817该怎么样才可以自己启动呀?
  • 基于ORA-12170 TNS 连接超时解决办法详解
  • 安装oracle出现error:ora-01031:insufficient privilleges的解决
  • 谁能帮忙解释一下: ORA-01000 : maximun open cursors exceeded
  • 关于Oracle游标的问题(ORA-01000: maximum open cursors exceeded)
  • 我在Linux7。3下面装了一个Oracle8i,但是现在启动不起来了,总是报错ORA-01031: insufficient privileges
  • zilong28提问:Tomcat3.2报错内容是Error occurs when connecting DB: ORA-00020: maximum number of processes(59) exceeded 我应该如何解决,先谢了
  • ORA-28002 Oracle 11g存在密码过期问题解决方案
  • Oracle ORA-22908(NULL表值的参考)异常分析与解决方法
  • oracle报错(ORA-00600)问题处理


  • 站内导航:


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

    ©2012-2021,