联系:手机(+86 13429648788)QQ(107644445)
标题:重现ORA-600 4000异常
作者:惜分飞?版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
对于数据库恢复感兴趣的人,一定对于ORA-600[4000]这个著名的错误记忆犹新,这里通过试验重现ORA-600[4000] 查询数据库obj$.con$记录
|
[oracle@xifenfei ~]$ sqlplus /
as
sysdba
SQL*Plus: Release 10.2.0.1.0 - Production
on
Fri Nov 4 06:32:36 2011
Copyright (c) 1982,2005,Oracle.
All
rights reserved.
Connected
to
an idle instance.
SQL> startup
ORACLE instance started.
Total System
Global
Area 318767104 bytes
Fixed
Size
1219160 bytes
Variable
92276136 bytes
Database
Buffers 218103808 bytes
Redo Buffers 7168000 bytes
mounted.
opened.
SQL>
select
OBJ#,dbms_rowid.rowid_relative_fno(rowid) rel_fno,
2 dbms_rowid.rowid_block_number(rowid) block_num
from
obj$
3
where
name
=
'CON$'
;
OBJ# REL_FNO BLOCK_NUM
28 1 122
SQL> shutdown immediate
closed.
dismounted.
ORACLE instance shut down.
bbed修改数据块
根据催华的研究,当OBJ$中部分数据块中的csc和itl的scn都大于header scn的时候,数据库启动就会报ORA-600[4000]
[oracle@xifenfei ~]$ bbed listfile=list mode=edit password=blockedit
BBED: Release 2.0.0.0.0 - Limited Production on Fri Nov 4 06:47:09 2011
/or
its affiliates. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> info
File
----- ---- ----------
1
/u01/oracle/oradata/XFF/system01
.dbf 0
2
/u01/oracle/oradata/XFF/undotbs01
.dbf 0
3
/u01/oracle/oradata/XFF/sysaux01
.dbf 0
4
/u01/oracle/oradata/XFF/users01
.dbf 0
5
/u01/oracle/oradata/XFF/datfttuser
.dbf 0
BBED>
set
block 1
BLOCK
set
file
1 block 1
FILE
# 1
BBED> p kcvfhckp.kcvcpscn
struct kcvcpscn,8 bytes @484
ub4 kscnbas @484 0x00210f97
ub2 kscnwrp @488 0x0000
block 122
# 122
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 <==csc(SCN of the last block cleanout)
ub4 kscnbas @28 0x0020770d
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 0x0020770e <==itl commit scn
count 16
COUNT 16
BBED> m
/x
0d772010 offset 28
Warning: contents of previous BIFILE will be lost. Proceed? (Y
/N
) y
File:
.dbf (1)
Block: 122 Offsets: 28 to 60 Dba:0x0040007a
------------------------------------------------------------------------
0d772010 00000000 01000200 00000000
<32 bytes per line>
0e772010 offset 64
.dbf (1)
Block: 122 Offsets: 64 to 96 Dba:0x0040007a
------------------------------------------------------------------------
0e772010 00016c00 ffffea00 53046903
<32 bytes per line>
BBED> p ktbbh
ub1 ktbbhtyp @20 0x01 (KDDBTDATA)
ub4 ktbbhsg1 @24 0x00000012
ub4 ktbbhod1 @24 0x00000012
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
ub2 kxidusn @44 0x0005
ub2 kxidslt @46 0x0029
ub4 kxidsqn @48 0x0000029a
ub4 kubadba @52 0x00802381
ub2 kubaseq @56 0x01f9
ub1 kubarec @58 0x03
ub2 ktbitflg @60 0x2001 (KTBFUPB)
sb2 _ktbitfsc @62 0
ub2 _ktbitwrp @62 0x0000
ub4 ktbitbas @64 0x1020770e
sum
apply
Check value
for
File 1,Block 122:
current = 0xc902,required = 0xc902
启动数据库
SQL> startup
ORACLE instance started.
Area 318767104 bytes
1219160 bytes
92276136 bytes
Buffers 218103808 bytes
Redo Buffers 7168000 bytes
mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
查看日志
Fri Nov 4 06:50:38 2011
Database mounted
in
Exclusive Mode
Completed: ALTER DATABASE MOUNT
Fri Nov 4 06:50:38 2011
ALTER DATABASE OPEN
Fri Nov 4 06:50:38 2011
LGWR: STARTING ARCH PROCESSES
ARC0 started with pid=16,OS
id
=7048
Fri Nov 4 06:50:38 2011
ARC0: Archival started
ARC1: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC1 started with pid=17,monospace!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; width:auto!important; direction:ltr!important; display:inline!important">=7050
ARC1: STARTING ARCH PROCESSES
Fri Nov 4 06:50:38 2011
ARC0: Becoming the
'no FAL'
ARCH
'no SRL'
ARCH
Fri Nov 4 06:50:38 2011
Thread 1 opened at log sequence 38
Current log
Successful
open
of redo thread 1
Fri Nov 4 06:50:38 2011
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not
set
Fri Nov 4 06:50:38 2011
SMON: enabling cache recovery
Fri Nov 4 06:50:38 2011
ARC2: Archival started
ARC1: STARTING ARCH PROCESSES COMPLETE
ARC1: Becoming the heartbeat ARCH
ARC2 started with pid=18,monospace!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; width:auto!important; direction:ltr!important; display:inline!important">=7052
Fri Nov 4 06:50:38 2011
Errors
in
/u01/oracle/admin/XFF/udump/xff_ora_7046
.trc:
ORA-00600: internal error code,arguments: [4000],[5],[],[]
Fri Nov 4 06:50:40 2011
.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
Fri Nov 4 06:50:40 2011
Error 704 happened during db
,shutting down database
USER: terminating instance due to error 704
Instance terminated by USER,pid = 7046
ORA-1092 signalled during: ALTER DATABASE OPEN...
在ORACL 11.2的版本中,同样的方法无法重新该错误,数据库依然能够正常打开,所以如果要测试的朋友请选择11G以下版本进行.
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!