由于自己最近在模拟各种故障,通过特殊手段恢复之后发现数据库不能创建表,创建表提示ORA-08102。具体的处理过程如下:
--//数据库创建表提示ORA-8102错误
[oracle@QXY1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 26 02:48:03 2020
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create table x (id int);
create table x (id int)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-08102: index key not found, obj# 39, file 1, block 62281 (2)
--//查询obj#=39的对象
select object_name,object_type from dba_objects where object_id=39;
OBJECT_NAME OBJECT_TYPE
------------------------------ --------------------------------------
I_OBJ4 INDEX
SQL>
--//参考MOS文章SRDC - Required Diagnostic Data Collection for ORA-08102 Using TFA Collector (Recommended) or Manual Steps (Doc ID 1949651.1)
--//查询ind$索引表里面有,obj$表里面没有
select /*+ index(t i_obj4) */ DATAOBJ#,type#,owner# from obj$ t
minus
select /*+ full(t1) */ DATAOBJ#,type#,owner# from obj$ t1;
SQL> select /*+ index(t i_obj4) */ DATAOBJ#,type#,owner# from obj$ t
2 minus
3 select /*+ full(t1) */ DATAOBJ#,type#,owner# from obj$ t1;
DATAOBJ# TYPE# OWNER#
---------- ---------- ----------
76842 2 30
76848 2 87
76852 0 0
SQL>
--//查询obj$索引表里面有,ind$表里面没有
select /*+ full(t1) */ DATAOBJ#,type#,owner# from obj$ t1
minus
select /*+ index(t i_obj4) */ DATAOBJ#,type#,owner# from obj$ t;
DATAOBJ# TYPE# OWNER#
---------- ---------- ----------
76839 2 30
76842 0 0
SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76842;
--//76842查询报ORA-00600的错误
SQL> SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76842;
SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76842
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
SQL>
--//76848没有记录存在
SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76848
SQL> SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76848;
no rows selected
SQL>
--//76852
SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76852
SQL> SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76852;
no rows selected
SQL>
--//76839
SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76839
SQL> SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76839;
DATAOBJ#
----------
76839
SQL>
--//76842报ORA-00600的报错
SQL> SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76842;
SELECT DATAOBJ# FROM OBJ$ WHERE OBJ#=76842
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
SQL>
--//通过上面的查询方式发现,两次查询都有返回obj#=76842, 但是两个的type、owner不一样
--//并且报错的obj#=76842.
select /*+ index(t i_obj4) */ rowid,DATAOBJ#,type#,owner# from obj$ t
minus
select /*+ full(t1) */ rowid,DATAOBJ#,type#,owner# from obj$ t1;
SQL> select /*+ index(t i_obj4) */ rowid,DATAOBJ#,type#,owner# from obj$ t
2 minus
3 select /*+ full(t1) */ rowid,DATAOBJ#,type#,owner# from obj$ t1;
ROWID DATAOBJ# TYPE# OWNER#
------------------ ---------- ---------- ----------
AAAAASAABAAAADxAAb 76852 0 0
AAAAASAABAAAUIeAA4 76842 2 30
AAAAASAABAAAUIeAA5 66 0
AAAAASAABAAAUIeAA6 66 0
AAAAASAABAAAUIeAA7 2 0
AAAAASAABAAAUIeAA8 76848 2 87
AAAAASAABAAAUIeAA9 2 0
7 rows selected.
select /*+ full(t1) */ rowid,DATAOBJ#,type#,owner# from obj$ t1
minus
select /*+ index(t i_obj4) */ rowid,DATAOBJ#,type#,owner# from obj$ t
;
ROWID DATAOBJ# TYPE# OWNER#
------------------ ---------- ---------- ----------
AAAAASAABAAAADxAAb 76842 0 0
AAAAASAABAAAUIeAA4 76839 2 30
SQL>
select name,obj#,dataobj# from obj$ where rowid='AAAAASAABAAAADxAAb';
select name,obj#,dataobj# from obj$ where rowid='AAAAASAABAAAUIeAA4';
SQL> select name,obj#,dataobj# from obj$ where rowid='AAAAASAABAAAADxAAb';
NAME OBJ# DATAOBJ#
------------------------------------------------------------ ---------- ----------
_NEXT_OBJECT 1 76842
SQL>
SQL> select name,obj#,dataobj# from obj$ where rowid='AAAAASAABAAAUIeAA4';
NAME OBJ# DATAOBJ#
------------------------------------------------------------ ---------- ----------
AQ_MNTR_MSGS_BUFFQ 76839 76839
SQL>
--//
AAAAASAABAAAUIeAA4
select dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) block#,
dbms_rowid.rowid_row_number(rowid) row#
from obj$ where rowid='AAAAASAABAAAADxAAb';
SQL> select dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) block#,
2 dbms_rowid.rowid_row_number(rowid) row#
3 from obj$ where rowid='AAAAASAABAAAUIeAA4';
FILE# BLOCK# ROW#
---------- ---------- ----------
1 82462 56
BBED> set dba 1,82462
DBA 0x0041421e (4276766 1,82462)
BBED> map
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 82462 Dba:0x0041421e
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
struct ktbbh, 72 bytes @20
struct kdbh, 14 bytes @92
struct kdbt[1], 4 bytes @106
sb2 kdbr[57] @110
ub1 freespace[1481] @224
ub1 rowdata[6483] @1705
ub4 tailchk @8188
BBED> p *kdbr[56]
rowdata[0]
----------
ub1 rowdata[0] @1705 0x2c
BBED> x /rnnncnnncc
rowdata[0] @1705
----------
flag@1705: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@1706: 0x02
cols@1707: 18
col 0[4] @1708: 76839
col 1[4] @1713: 76839
col 2[2] @1718: 30
col 3[18] @1721: AQ_MNTR_MSGS_BUFFQ
col 4[2] @1740: 1
col 5[0] @1743: *NULL*
col 6[2] @1744: 2
col 7[7] @1747: xx...4.
col 8[7] @1755: xx...4.
col 9[7] @1763: xx...4.
col 10[2] @1771: ..
col 11[0] @1774: *NULL*
col 12[0] @1775: *NULL*
col 13[1] @1776: .
col 14[0] @1778: *NULL*
col 15[2] @1779: ..
col 16[2] @1782: ..
col 17[2] @1785: ..
BBED>
--//查看创建表时产生的trace文件
DDE: Problem Key 'ORA 600 [kdsgrp1]' was flood controlled (0x2) (incident: 84576)
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
oer 8102.2 - obj# 39, rdba: 0x0040f349(afn 1, blk# 62281)
*** 2020-03-26 03:19:22.119
kdk key 8102.2:
ncol: 4, len: 16
key: (16): 04 c3 08 45 2b 01 80 01 80 06 00 40 00 f1 00 1b
mask: (4096):
a1 02 7f 00 00 00 00 00 00 00 00 00 00 00 5e bc 62 61 7f 00 00 00 00 00 00
61 7f 00 00 00 30 00 00 00 00 00 00 e0 5b bc 62 61 7f 00 00 18 04 00 00 00
00 00 00 18 04 00 00 00 00 00 00 e0 5b bc 62 61 7f 00 00 18 04 00 00 00 00
00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0 31 fc e2 ff 7f 00
00 f5 78 32 09 00 00 00 00 f0 30 fc e2 ff 7f 00 00 1b 43 33 09 00 00 00 00
d8 3c 3b 09 00 00 00 00 ac bd 7e 04 00 00 00 00 a8 49 be 62 61 7f 00 00 31
b3 1e 09 00 00 00 00 20 31 fc e2 ff 7f 00 00 5b 24 39 09 00 00 00 00 a8 e1
3d 67 00 00 00 00 18 04 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00
00 61 7f 00 00 01 00 00 00 ff 7f 00 00 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 e8 03 00 00 00 00 00 00 28 7a bd 62 61 7f 00 00 a0 3f af 0b 00
--//dump 1号文件的62281(索引块)
SQL> ALTER system dump datafile 1 block 62281;
System altered.
SQL>
--//trace文件
col 1; len 2; (2): c1 03
col 2; len 2; (2): c1 1f
col 3; len 6; (6): 00 41 42 1e 00 36
row#295[1877] flag: ------, lock: 0, len=20
col 0; len 4; (4): c3 08 45 27
col 1; len 2; (2): c1 02
col 2; len 2; (2): c1 1f
col 3; len 6; (6): 00 41 42 1e 00 37
row#296[1857] flag: ------, lock: 0, len=20
col 0; len 4; (4): c3 08 45 2b <======修改为 c3 08 45 28
col 1; len 2; (2): c1 03
col 2; len 2; (2): c1 1f
col 3; len 6; (6): 00 41 42 1e 00 38
row#297[1801] flag: ------, lock: 0, len=20
col 0; len 4; (4): c3 08 45 31
col 1; len 2; (2): c1 03
col 2; len 2; (2): c1 58
col 3; len 6; (6): 00 41 42 1e 00 3c
row#298[1821] flag: ------, lock: 0, len=18
col 0; len 4; (4): c3 08 45 35 <======修改 c3 08 45 2B
col 1; len 1; (1): 80
col 2; len 1; (1): 80
col 3; len 6; (6): 00 40 00 f1 00 1b
--//
select display_raw('c3084531','NUMBER') from dual;
c3084528=》76839
C308452B=》76842
c3084535=》76852
c3084531=> 76848
76852
SQL> select /*+ index(t i_obj4) */ rowid,DATAOBJ#,type#,owner# from obj$ t
2 minus
3 select /*+ full(t1) */ rowid,DATAOBJ#,type#,owner# from obj$ t1;
ROWID DATAOBJ# TYPE# OWNER#
------------------ ---------- ---------- ----------
AAAAASAABAAAADxAAb 76852 0 0
AAAAASAABAAAUIeAA4 76842 2 30
AAAAASAABAAAUIeAA5 66 0
AAAAASAABAAAUIeAA6 66 0
AAAAASAABAAAUIeAA7 2 0
AAAAASAABAAAUIeAA8 76848 2 87
AAAAASAABAAAUIeAA9 2 0
7 rows selected.
select /*+ full(t1) */ rowid,DATAOBJ#,type#,owner# from obj$ t1
minus
select /*+ index(t i_obj4) */ rowid,DATAOBJ#,type#,owner# from obj$ t
;
ROWID DATAOBJ# TYPE# OWNER#
------------------ ---------- ---------- ----------
AAAAASAABAAAADxAAb 76842 0 0
AAAAASAABAAAUIeAA4 76839 2 30
SQL>
------------------ ---------- ---------- ----------
AAAAASAABAAAADxAAb 76852 0 0 <=======修改为76842
AAAAASAABAAAUIeAA4 76842 2 30 <=======修改为76839
AAAAASAABAAAUIeAA5 66 0
AAAAASAABAAAUIeAA6 66 0
AAAAASAABAAAUIeAA7 2 0
AAAAASAABAAAUIeAA8 76848 2 87
AAAAASAABAAAUIeAA9 2 0
--//bbed修改
set offset 116 + 1857
BBED> set offset 116
OFFSET 116
BBED> set offset +1857
OFFSET 1973
BBED> d
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 62281 Offsets: 1973 to 2484 Dba:0x0040f349
------------------------------------------------------------------------
000004c3 08452b02 c10302c1 1f060041 421e0038 000004c3 08452702 c10202c1
1f060041 421e0037 0000ff02 c1020180 0600402e 9f005000 00ff02c1 02018006
00402e9f 00480000 ff02c102 01800600 402e9f00 3e0000ff 02c10201 80060040
2e9f0038 0000ff02 c1020180 0600402e 9f003200 00ff02c1 02018006 00402e9f
002c0000 ff02c102 01800600 402e9f00 260000ff 02c10201 80060040 2e9f001e
0000ff02 c1020180 0600402e 9f001200 00ff02c1 02018006 00402e9e 004f0000
ff02c102 01800600 402e9e00 4d0000ff 02c10201 80060040 2e9e0035 010004c3
08452b01 80018006 004000f1 001b0000 04c30845 2602c103 02c11f06 0041421e
00360100 04c30845 26018001 80060040 00f1001b 000004c3 08452502 c10302c1
1f060041 421e0034 000004c3 08452402 c10202c1 1f060041 421e0031 000004c3
08452302 c10302c1 1f060041 421e0030 000004c3 08452202 c10202c1 1f060041
421e002f 000004c3 08452102 c10302c1 1f060041 421e0033 000004c3 08451c02
c1020180 06004142 1e003200 0004c308 451a02c1 03018006 00402989 00290000
04c30844 4902c102 02c15606 0041421e 000a0000 04c30844 4802c102 02c15606
0041421e 00090000 04c30844 4702c102 02c15606 0041421e 00080000 04c30844
4602c102 02c15606 0041421e 00070000 04c30844 4502c102 02c15606 0041421e
<32 bytes per line>
BBED>
BBED> set offset +6
OFFSET 1979
BBED> d
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 62281 Offsets: 1979 to 2490 Dba:0x0040f349
------------------------------------------------------------------------
2b02c103 02c11f06 0041421e 00380000 04c30845 2702c102 02c11f06 0041421e
00370000 ff02c102 01800600 402e9f00 500000ff 02c10201 80060040 2e9f0048
0000ff02 c1020180 0600402e 9f003e00 00ff02c1 02018006 00402e9f 00380000
ff02c102 01800600 402e9f00 320000ff 02c10201 80060040 2e9f002c 0000ff02
c1020180 0600402e 9f002600 00ff02c1 02018006 00402e9f 001e0000 ff02c102
01800600 402e9f00 120000ff 02c10201 80060040 2e9e004f 0000ff02 c1020180
0600402e 9e004d00 00ff02c1 02018006 00402e9e 00350100 04c30845 2b018001
80060040 00f1001b 000004c3 08452602 c10302c1 1f060041 421e0036 010004c3
08452601 80018006 004000f1 001b0000 04c30845 2502c103 02c11f06 0041421e
00340000 04c30845 2402c102 02c11f06 0041421e 00310000 04c30845 2302c103
02c11f06 0041421e 00300000 04c30845 2202c102 02c11f06 0041421e 002f0000
04c30845 2102c103 02c11f06 0041421e 00330000 04c30845 1c02c102 01800600
41421e00 32000004 c308451a 02c10301 80060040 29890029 000004c3 08444902
c10202c1 56060041 421e000a 000004c3 08444802 c10202c1 56060041 421e0009
000004c3 08444702 c10202c1 56060041 421e0008 000004c3 08444602 c10202c1
56060041 421e0007 000004c3 08444502 c10202c1 56060041 421e0006 000004c3
<32 bytes per line>
BBED> m /x 28
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 62281 Offsets: 1979 to 2490 Dba:0x0040f349
------------------------------------------------------------------------
2802c103 02c11f06 0041421e 00380000 04c30845 2702c102 02c11f06 0041421e
00370000 ff02c102 01800600 402e9f00 500000ff 02c10201 80060040 2e9f0048
0000ff02 c1020180 0600402e 9f003e00 00ff02c1 02018006 00402e9f 00380000
ff02c102 01800600 402e9f00 320000ff 02c10201 80060040 2e9f002c 0000ff02
c1020180 0600402e 9f002600 00ff02c1 02018006 00402e9f 001e0000 ff02c102
01800600 402e9f00 120000ff 02c10201 80060040 2e9e004f 0000ff02 c1020180
0600402e 9e004d00 00ff02c1 02018006 00402e9e 00350100 04c30845 2b018001
80060040 00f1001b 000004c3 08452602 c10302c1 1f060041 421e0036 010004c3
08452601 80018006 004000f1 001b0000 04c30845 2502c103 02c11f06 0041421e
00340000 04c30845 2402c102 02c11f06 0041421e 00310000 04c30845 2302c103
02c11f06 0041421e 00300000 04c30845 2202c102 02c11f06 0041421e 002f0000
04c30845 2102c103 02c11f06 0041421e 00330000 04c30845 1c02c102 01800600
41421e00 32000004 c308451a 02c10301 80060040 29890029 000004c3 08444902
c10202c1 56060041 421e000a 000004c3 08444802 c10202c1 56060041 421e0009
000004c3 08444702 c10202c1 56060041 421e0008 000004c3 08444602 c10202c1
56060041 421e0007 000004c3 08444502 c10202c1 56060041 421e0006 000004c3
<32 bytes per line>
BBED> set offset 116
OFFSET 116
BBED> set offset +1821
OFFSET 1937
BBED> set offset + 6
BBED-00207: invalid offset specifier (+)
BBED> set offset +6
OFFSET 1943
BBED> d
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 62281 Offsets: 1943 to 2454 Dba:0x0040f349
------------------------------------------------------------------------
35018001 80060040 00f1001b 010004c3 08453001 80018006 004000f1 001b0000
04c30845 2802c103 02c11f06 0041421e 00380000 04c30845 2702c102 02c11f06
0041421e 00370000 ff02c102 01800600 402e9f00 500000ff 02c10201 80060040
2e9f0048 0000ff02 c1020180 0600402e 9f003e00 00ff02c1 02018006 00402e9f
00380000 ff02c102 01800600 402e9f00 320000ff 02c10201 80060040 2e9f002c
0000ff02 c1020180 0600402e 9f002600 00ff02c1 02018006 00402e9f 001e0000
ff02c102 01800600 402e9f00 120000ff 02c10201 80060040 2e9e004f 0000ff02
c1020180 0600402e 9e004d00 00ff02c1 02018006 00402e9e 00350100 04c30845
2b018001 80060040 00f1001b 000004c3 08452602 c10302c1 1f060041 421e0036
010004c3 08452601 80018006 004000f1 001b0000 04c30845 2502c103 02c11f06
0041421e 00340000 04c30845 2402c102 02c11f06 0041421e 00310000 04c30845
2302c103 02c11f06 0041421e 00300000 04c30845 2202c102 02c11f06 0041421e
002f0000 04c30845 2102c103 02c11f06 0041421e 00330000 04c30845 1c02c102
01800600 41421e00 32000004 c308451a 02c10301 80060040 29890029 000004c3
08444902 c10202c1 56060041 421e000a 000004c3 08444802 c10202c1 56060041
421e0009 000004c3 08444702 c10202c1 56060041 421e0008 000004c3 08444602
<32 bytes per line>
BBED> m /x 2b
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 62281 Offsets: 1943 to 2454 Dba:0x0040f349
------------------------------------------------------------------------
2b018001 80060040 00f1001b 010004c3 08453001 80018006 004000f1 001b0000
04c30845 2802c103 02c11f06 0041421e 00380000 04c30845 2702c102 02c11f06
0041421e 00370000 ff02c102 01800600 402e9f00 500000ff 02c10201 80060040
2e9f0048 0000ff02 c1020180 0600402e 9f003e00 00ff02c1 02018006 00402e9f
00380000 ff02c102 01800600 402e9f00 320000ff 02c10201 80060040 2e9f002c
0000ff02 c1020180 0600402e 9f002600 00ff02c1 02018006 00402e9f 001e0000
ff02c102 01800600 402e9f00 120000ff 02c10201 80060040 2e9e004f 0000ff02
c1020180 0600402e 9e004d00 00ff02c1 02018006 00402e9e 00350100 04c30845
2b018001 80060040 00f1001b 000004c3 08452602 c10302c1 1f060041 421e0036
010004c3 08452601 80018006 004000f1 001b0000 04c30845 2502c103 02c11f06
0041421e 00340000 04c30845 2402c102 02c11f06 0041421e 00310000 04c30845
2302c103 02c11f06 0041421e 00300000 04c30845 2202c102 02c11f06 0041421e
002f0000 04c30845 2102c103 02c11f06 0041421e 00330000 04c30845 1c02c102
01800600 41421e00 32000004 c308451a 02c10301 80060040 29890029 000004c3
08444902 c10202c1 56060041 421e000a 000004c3 08444802 c10202c1 56060041
421e0009 000004c3 08444702 c10202c1 56060041 421e0008 000004c3 08444602
<32 bytes per line>
BBED> sum apply
Check value for File 1, Block 62281:
current = 0x3f2b, required = 0x3f2b
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oradata/QXY1/system01.dbf
BLOCK = 62281
Block Checking: DBA = 4256585, Block Type = KTB-managed data block
**** row 298: key out of order
---- end index block validation
Block 62281 failed with check code 6401
DBVERIFY - Verification complete
Total Blocks Examined : 1
Total Blocks Processed (Data) : 0
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 1
Total Blocks Failing (Index): 1
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0
Message 531 not found; product=RDBMS; facility=BBED
SQL> select /*+ index(t i_obj4) */ rowid,DATAOBJ#,type#,owner# from obj$ t
2 minus
3 select /*+ full(t1) */ rowid,DATAOBJ#,type#,owner# from obj$ t1;
ROWID DATAOBJ# TYPE# OWNER#
------------------ ---------- ---------- ----------
AAAAASAABAAAUIeAA5 66 0
AAAAASAABAAAUIeAA6 66 0
AAAAASAABAAAUIeAA7 2 0
AAAAASAABAAAUIeAA8 76848 2 87
AAAAASAABAAAUIeAA9 2 0
SQL> select /*+ full(t1) */ rowid,DATAOBJ#,type#,owner# from obj$ t1
2 minus
3 select /*+ index(t i_obj4) */ rowid,DATAOBJ#,type#,owner# from obj$ t
4 ;
no rows selected
SQL>
--//
SQL>
SQL> create table x(id int);
create table x(id int)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kdBlkCheckError], [1], [62281], [6401], [], [], [], [], [], [], [], []
--//出现6401的主要原因就是索引本身是排序的,经过bbed修改之后变成了无序的,如下;
--//trace文件
col 1; len 2; (2): c1 03
col 2; len 2; (2): c1 1f
col 3; len 6; (6): 00 41 42 1e 00 36
row#295[1877] flag: ------, lock: 0, len=20
col 0; len 4; (4): c3 08 45 27
col 1; len 2; (2): c1 02
col 2; len 2; (2): c1 1f
col 3; len 6; (6): 00 41 42 1e 00 37
row#296[1857] flag: ------, lock: 0, len=20
col 0; len 4; (4): c3 08 45 2b <======修改为 c3 08 45 28
col 1; len 2; (2): c1 03
col 2; len 2; (2): c1 1f
col 3; len 6; (6): 00 41 42 1e 00 38
row#297[1801] flag: ------, lock: 0, len=20
col 0; len 4; (4): c3 08 45 31 <=======31大于下面的2b,所以会报row 298: key out of order
col 1; len 2; (2): c1 03
col 2; len 2; (2): c1 58
col 3; len 6; (6): 00 41 42 1e 00 3c
row#298[1821] flag: ------, lock: 0, len=18
col 0; len 4; (4): c3 08 45 35 <======修改 c3 08 45 2B
col 1; len 1; (1): 80
col 2; len 1; (1): 80
col 3; len 6; (6): 00 40 00 f1 00 1b
--// c3 08 45 31 转换10进制
SQL> select display_raw('c3084531','NUMBER') from dual;
DISPLAY_RAW('C3084531','NUMBER')
--------------------------------------------------------------------------------
76848
SQL> select object_id, object_name from dba_objects where object_id = 76848;
no rows selected
--//所有把c3 08 45 31 中的31改为 大于28小于 2b,那么这里就先改为一个 29
--//
set dba 1,62281
set offset 116 + 1801 + 6
BBED> set offset 116
OFFSET 116
BBED> set offset +1801
OFFSET 1917
BBED> set offset +6
OFFSET 1923
BBED> d
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 62281 Offsets: 1923 to 2434 Dba:0x0040f349
------------------------------------------------------------------------
3102c103 02c15806 0041421e 003c0000 04c30845 2b018001 80060040 00f1001b
010004c3 08453001 80018006 004000f1 001b0000 04c30845 2802c103 02c11f06
0041421e 00380000 04c30845 2702c102 02c11f06 0041421e 00370000 ff02c102
01800600 402e9f00 500000ff 02c10201 80060040 2e9f0048 0000ff02 c1020180
0600402e 9f003e00 00ff02c1 02018006 00402e9f 00380000 ff02c102 01800600
402e9f00 320000ff 02c10201 80060040 2e9f002c 0000ff02 c1020180 0600402e
9f002600 00ff02c1 02018006 00402e9f 001e0000 ff02c102 01800600 402e9f00
120000ff 02c10201 80060040 2e9e004f 0000ff02 c1020180 0600402e 9e004d00
00ff02c1 02018006 00402e9e 00350100 04c30845 2b018001 80060040 00f1001b
000004c3 08452602 c10302c1 1f060041 421e0036 010004c3 08452601 80018006
004000f1 001b0000 04c30845 2502c103 02c11f06 0041421e 00340000 04c30845
2402c102 02c11f06 0041421e 00310000 04c30845 2302c103 02c11f06 0041421e
00300000 04c30845 2202c102 02c11f06 0041421e 002f0000 04c30845 2102c103
02c11f06 0041421e 00330000 04c30845 1c02c102 01800600 41421e00 32000004
c308451a 02c10301 80060040 29890029 000004c3 08444902 c10202c1 56060041
421e000a 000004c3 08444802 c10202c1 56060041 421e0009 000004c3 08444702
<32 bytes per line>
BBED> m /x 29
File: /u01/app/oradata/QXY1/system01.dbf (1)
Block: 62281 Offsets: 1923 to 2434 Dba:0x0040f349
------------------------------------------------------------------------
2902c103 02c15806 0041421e 003c0000 04c30845 2b018001 80060040 00f1001b
010004c3 08453001 80018006 004000f1 001b0000 04c30845 2802c103 02c11f06
0041421e 00380000 04c30845 2702c102 02c11f06 0041421e 00370000 ff02c102
01800600 402e9f00 500000ff 02c10201 80060040 2e9f0048 0000ff02 c1020180
0600402e 9f003e00 00ff02c1 02018006 00402e9f 00380000 ff02c102 01800600
402e9f00 320000ff 02c10201 80060040 2e9f002c 0000ff02 c1020180 0600402e
9f002600 00ff02c1 02018006 00402e9f 001e0000 ff02c102 01800600 402e9f00
120000ff 02c10201 80060040 2e9e004f 0000ff02 c1020180 0600402e 9e004d00
00ff02c1 02018006 00402e9e 00350100 04c30845 2b018001 80060040 00f1001b
000004c3 08452602 c10302c1 1f060041 421e0036 010004c3 08452601 80018006
004000f1 001b0000 04c30845 2502c103 02c11f06 0041421e 00340000 04c30845
2402c102 02c11f06 0041421e 00310000 04c30845 2302c103 02c11f06 0041421e
00300000 04c30845 2202c102 02c11f06 0041421e 002f0000 04c30845 2102c103
02c11f06 0041421e 00330000 04c30845 1c02c102 01800600 41421e00 32000004
c308451a 02c10301 80060040 29890029 000004c3 08444902 c10202c1 56060041
421e000a 000004c3 08444802 c10202c1 56060041 421e0009 000004c3 08444702
<32 bytes per line>
BBED> sum apply
Check value for File 1, Block 62281:
current = 0x272b, required = 0x272b
BBED> verrify
BBED-00200: invalid keyword (verrify)
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oradata/QXY1/system01.dbf
BLOCK = 62281
DBVERIFY - Verification complete
Total Blocks Examined : 1
Total Blocks Processed (Data) : 0
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 1
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0
Message 531 not found; product=RDBMS; facility=BBED
BBED>
--//索引报错已经没有了
--//再次创建表测试下
SQL> create table x(id int);
Table created.
SQL> insert into x values (10);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from x;
ID
----------
10
SQL>