[ORACLE 恢复]重现ORA-600 4000异常---惜分飞

前端之家收集整理的这篇文章主要介绍了[ORACLE 恢复]重现ORA-600 4000异常---惜分飞前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

联系:手机(+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 # Name Size(blks)
----- ---- ----------
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 # 1
set file 1 block 1
FILE # 1
# 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 <==回滚段序号
@H_870_403@ 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 # 3 seq# 38 mem# 0: /u01/oracle/oradata/XFF/redo03.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以下版本进行.

原文链接:https://www.f2er.com/oracle/211984.html

猜你在找的Oracle相关文章