通过bbed解决ORA-00600[4000]案例

数据库启动出现ORA-00600[4000]错误

Fri Nov  4 06:50:38 2011
Errors in file /u01/oracle/admin/XFF/udump/xff_ora_7046 .trc:
ORA-00600: internal error code, arguments: [4000], [5], [], [], [], [], [], []
Fri Nov  4 06:50:40 2011
Errors in file /u01/oracle/admin/XFF/udump/xff_ora_7046 .trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [4000], [5], [], [], [], [], [], []
Fri Nov  4 06:50:40 2011
Error 704 happened during db open , shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 7046
ORA-1092 signalled during: ALTER DATABASE OPEN...

查看trace文件

*** 2011-11-04 06:50:38.942
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [4000], [5], [], [], [], [], [], []
Current SQL statement for this session:
select ctime, mtime, stime from obj$ where obj # = :1
  
Block header dump:  0x0040007a
  Object id on Block? Y
  seg /obj : 0x12  csc: 0x00.1020770d  itc: 1  flg: -  typ: 1 - DATA
      fsl: 0  fnx: 0x0 ver: 0x01
  
  Itl           Xid                  Uba         Flag  Lck        Scn /Fsc
0x01   0x0005.029.0000029a  0x00802381.01f9.03  --U-    1  fsc 0x0000.1020770e

查询trace相关数据对应值

SQL> select DBMS_UTILITY.data_block_address_file (TO_NUMBER ( '0040007a' , 'xxxxxxxx' )) file_no,
   2  DBMS_UTILITY.data_block_address_block (TO_NUMBER ( '0040007a' , 'xxxxxxxx' )) block_no
   from dual;
  
    FILE_NO   BLOCK_NO
---------- ----------
          1        122
  
SQL> select to_number( '1020770e' , 'xxxxxxxxxxx' ) itl_commit from dual;
  
ITL_COMMIT
----------
  270563086
  
SQL> select to_number( '1020770d' , 'xxxxxxxxxxxx' ) csc from dual;
  
        CSC
----------
  270563085

通过这里的分析,我们可以得出file 1 block 122的内容未提交,可能是导致错误ORA-00600[4000],尝试这手工提交该事务

BBED> set file 1 block 122
         FILE #           1
         BLOCK #          122
  
BBED> map
  File: /u01/oracle/oradata/XFF/system01 .dbf (1)
  Block: 122                                   Dba:0x0040007a
------------------------------------------------------------
  KTB Data Block (Table /Cluster )
  
  struct kcbh, 20 bytes                      @0       
  
  struct ktbbh, 48 bytes                     @20      
  
  struct kdbh, 14 bytes                      @68      
  
  struct kdbt[1], 4 bytes                    @82      
  
  sb2 kdbr[108]                              @86      
  
  ub1 freespace[873]                         @302     
  
  ub1 rowdata[7013]                          @1175    
  
  ub4 tailchk                                @8188    
  
BBED> p ktbbh
struct ktbbh, 48 bytes                      @20
    ub1 ktbbhtyp                             @20       0x01 (KDDBTDATA)
    union ktbbhsid, 4 bytes                  @24
       ub4 ktbbhsg1                          @24       0x00000012
       ub4 ktbbhod1                          @24       0x00000012
    struct ktbbhcsc, 8 bytes                 @28
       ub4 kscnbas                           @28       0x1020770d
       ub2 kscnwrp                           @32       0x0000
    sb2 ktbbhict                             @36       1
    ub1 ktbbhflg                             @38       0x02 (NONE)
    ub1 ktbbhfsl                             @39       0x00
    ub4 ktbbhfnx                             @40       0x00000000
    struct ktbbhitl[0], 24 bytes             @44
       struct ktbitxid, 8 bytes              @44
          ub2 kxidusn                        @44       0x0005
          ub2 kxidslt                        @46       0x0029
          ub4 kxidsqn                        @48       0x0000029a
       struct ktbituba, 8 bytes              @52
          ub4 kubadba                        @52       0x00802381
          ub2 kubaseq                        @56       0x01f9
          ub1 kubarec                        @58       0x03
       ub2 ktbitflg                          @60       0x2001 (KTBFUPB)
       union _ktbitun, 2 bytes               @62
          sb2 _ktbitfsc                      @62       0
          ub2 _ktbitwrp                      @62       0x0000
       ub4 ktbitbas                          @64       0x1020770e
  
BBED> set count 16
         COUNT           16
  
BBED> m /x 0180 offset 60
  File: /u01/oracle/oradata/XFF/system01 .dbf (1)
  Block: 122              Offsets:   60 to   75           Dba:0x0040007a
------------------------------------------------------------------------
  01800000 0e772010 00016c00 ffffea00 
  
  <32 bytes per line>
  
BBED> p ktbbh
struct ktbbh, 48 bytes                      @20
    ub1 ktbbhtyp                             @20       0x01 (KDDBTDATA)
    union ktbbhsid, 4 bytes                  @24
       ub4 ktbbhsg1                          @24       0x00000012
       ub4 ktbbhod1                          @24       0x00000012
    struct ktbbhcsc, 8 bytes                 @28
       ub4 kscnbas                           @28       0x1020770d
       ub2 kscnwrp                           @32       0x0000
    sb2 ktbbhict                             @36       1
    ub1 ktbbhflg                             @38       0x02 (NONE)
    ub1 ktbbhfsl                             @39       0x00
    ub4 ktbbhfnx                             @40       0x00000000
    struct ktbbhitl[0], 24 bytes             @44
       struct ktbitxid, 8 bytes              @44
          ub2 kxidusn                        @44       0x0005
          ub2 kxidslt                        @46       0x0029
          ub4 kxidsqn                        @48       0x0000029a
       struct ktbituba, 8 bytes              @52
          ub4 kubadba                        @52       0x00802381
          ub2 kubaseq                        @56       0x01f9
          ub1 kubarec                        @58       0x03
       ub2 ktbitflg                          @60       0x8001 (KTBFCOM)
       union _ktbitun, 2 bytes               @62
          sb2 _ktbitfsc                      @62       0
          ub2 _ktbitwrp                      @62       0x0000
       ub4 ktbitbas                          @64       0x1020770e
  
BBED> sum apply
Check value for File 1, Block 122:
current = 0x6902, required = 0x6902

尝试重启库

SQL> startup
ORACLE instance started.
  
Total System Global Area  318767104 bytes
Fixed Size                  1219160 bytes
Variable Size              92276136 bytes
Database Buffers          218103808 bytes
Redo Buffers                7168000 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced

查看alert日志

Fri Nov  4 07:42:46 2011
Errors in file /u01/oracle/admin/XFF/udump/xff_ora_7702 .trc:
ORA-00600: internal error code, arguments: [ktbdchk1: bad dscn], [], [], [], [], [], [], []
Fri Nov  4 07:42:46 2011
Errors in file /u01/oracle/admin/XFF/udump/xff_ora_7702 .trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [ktbdchk1: bad dscn], [], [], [], [], [], [], []
Fri Nov  4 07:42:46 2011
Error 704 happened during db open , shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 7702
ORA-1092 signalled during: ALTER DATABASE OPEN...

分析trace文件

*** 2011-11-04 07:42:46.273
Recovery of Online Redo Log: Thread 1 Group 1 Seq 40 Reading mem 0
----- Recovery Hash Table Statistics ---------
Hash table buckets = 32768
Longest hash chain = 0
Average hash chain = 0 /0 = 0.0
Max compares per lookup = 0
Avg compares per lookup = 0 /0 = 0.0
----------------------------------------------
tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x1)
tkcrrpa: (WARN) Failed initial attempt to send ARCH message (message:0x1)
[ktbdchk] -- readers_dsz -- bad dscn
scn: 0x0000.1020770escn: 0x0000.0021fa09
*** 2011-11-04 07:42:46.530
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [ktbdchk1: bad dscn], [], [], [], [], [], [], []
Current SQL statement for this session:
select ctime, mtime, stime from obj$ where obj # = :1
  
Block header dump:  0x0040007a
  Object id on Block? Y
  seg /obj : 0x12  csc: 0x00.1020770d  itc: 1  flg: -  typ: 1 - DATA
      fsl: 0  fnx: 0x0 ver: 0x01
  
  Itl           Xid                  Uba         Flag  Lck        Scn /Fsc
0x01   0x0005.029.0000029a  0x00802381.01f9.03  C---    0  scn 0x0000.1020770e

根据这个错误提示ktbdchk–>bad dscn,猜测ktbdchk是header scn中的ktbdchk,查找1020770e发现是itl comomit scn,通过bbed查看

BBED>  p kcvfhckp.kcvcpscn
struct kcvcpscn, 8 bytes                    @484
    ub4 kscnbas                              @484      0x0021fa09
    ub2 kscnwrp                              @488      0x0000

通过这里可以知道ORA-00600[ktbdchk1: bad dscn]是因为itl comomit scn远大于datafile header scn,从而oracle认为datafile header scn是错误的,从而提示ktbdchk1: bad dscn.尝试bbed修改itl comomit scn

BBED> p ktbbh
struct ktbbh, 48 bytes                      @20
    ub1 ktbbhtyp                             @20       0x01 (KDDBTDATA)
    union ktbbhsid, 4 bytes                  @24
       ub4 ktbbhsg1                          @24       0x00000012
       ub4 ktbbhod1                          @24       0x00000012
    struct ktbbhcsc, 8 bytes                 @28
       ub4 kscnbas                           @28       0x1020770d
       ub2 kscnwrp                           @32       0x0000
    sb2 ktbbhict                             @36       1
    ub1 ktbbhflg                             @38       0x02 (NONE)
    ub1 ktbbhfsl                             @39       0x00
    ub4 ktbbhfnx                             @40       0x00000000
    struct ktbbhitl[0], 24 bytes             @44
       struct ktbitxid, 8 bytes              @44
          ub2 kxidusn                        @44       0x0005
          ub2 kxidslt                        @46       0x0029
          ub4 kxidsqn                        @48       0x0000029a
       struct ktbituba, 8 bytes              @52
          ub4 kubadba                        @52       0x00802381
          ub2 kubaseq                        @56       0x01f9
          ub1 kubarec                        @58       0x03
       ub2 ktbitflg                          @60       0x8001 (KTBFCOM)
       union _ktbitun, 2 bytes               @62
          sb2 _ktbitfsc                      @62       0
          ub2 _ktbitwrp                      @62       0x0000
       ub4 ktbitbas                          @64       0x1020770e
  
BBED> m /x 09fa2100 offset 64
  File: /u01/oracle/oradata/XFF/system01 .dbf (1)
  Block: 122              Offsets:   64 to   79           Dba:0x0040007a
------------------------------------------------------------------------
  09fa2100 00016c00 ffffea00 53046903 
  
  <32 bytes per line>
  
BBED> sum apply
Check value for File 1, Block 122:
current = 0xf404, required = 0xf404

启动数据库

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
  
Total System Global Area  318767104 bytes
Fixed Size                  1219160 bytes
Variable Size              92276136 bytes
Database Buffers          218103808 bytes
Redo Buffers                7168000 bytes
Database mounted.
Database opened.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值