9i下Move系统表DEPENDENCY$导致索引失效的恢复(续3)

| No Comments

我在"9iMove系统表DEPENDENCY$导致索引失效的恢复"、"9iMove系统表DEPENDENCY$导致索引失效的恢复(续)"和"9iMove系统表DEPENDENCY$导致索引失效的恢复(续2"这三篇文章里分别用了两种方法成功将上述库起起来了。但是,我们还留了一个遗憾,那就是由于昨天我还不能够绕开oracleindex cluster blockblock check机制,使得我们最后不得不用到了隐含参数*._db_always_check_system_ts=FALSE后才把上述库起起来。

 

今天,我终于,终于猜出来了怎样绕开index cluster blockblock check机制,这就使得用BBED来处理上述问题的手段已接近完美

 

之前会报错:

[P550_04_LA:oracle@:/cadrasu01/app/oracle/product/9.2.0/bin]#dbv file=/dras20/testdb/system01.dbf blocksize=8192

 

DBVERIFY: Release 9.2.0.6.0 - Production on Mon Jul 19 16:35:53 2010

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

Block Checking: DBA = 4194336, Block Type = KTB-managed data block

data header at 0x11015805c

kdbchk:  key comref count wrong

         keyslot=7

Page 32 failed with check code 6121

 

 

DBVERIFY - Verification complete

 

Total Pages Examined         : 52480

Total Pages Processed (Data) : 36943

Total Pages Failing   (Data) : 1

Total Pages Processed (Index): 4085

Total Pages Failing   (Index): 0

Total Pages Processed (Other): 1750

Total Pages Processed (Seg)  : 0

Total Pages Failing   (Seg)  : 0

Total Pages Empty            : 9702

Total Pages Marked Corrupt   : 0

Total Pages Influx           : 0

Highest block SCN            : 676215 (0.676215)

 

如果你尝试去修改上述block,可能会碰到下述错误,五花八门,不一而足:

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

Block Checking: DBA = 4194336, Block Type = KTB-managed data block

data header at 0x11015805c

kdbchk: bad row tab 3, slot 5

Page 32 failed with check code 6258

 

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

Block Checking: DBA = 4194336, Block Type = KTB-managed data block

data header at 0x11015805c

kdbchk: fsbo(282) wrong, (hsz 280)

Page 32 failed with check code 6129

 

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

Block Checking: DBA = 4194336, Block Type = KTB-managed data block

data header at 0x11015805c

kdbchk: row count in table index incorrect

Page 32 failed with check code 6125

 

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

Block Checking: DBA = 4194336, Block Type = KTB-managed data block

data header at 0x11015805c

kdbchk: table index offset incorrect

        tab 4

Page 32 failed with check code 6124

 

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

Block Checking: DBA = 4194336, Block Type = KTB-managed data block

data header at 0x11015805c

kdbchk: non-existent key referenced

        table=1 slot=0

Page 32 failed with check code 6140

 

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

Block Checking: DBA = 4194336, Block Type = KTB-managed data block

data header at 0x11015805c

kdbchk: key curref < comref

        slot=7 curref=15 comref=17

Page 32 failed with check code 6119

 

我就是从上述最后一个报错中猜出来了应该怎么改了,其实说到底考验的还是你对index cluster block的熟悉程度

 

好了,我们来看一下改完后的效果:

[P550_04_LA:oracle@:/cadrasu01/app/oracle/product/9.2.0/bin]#dbv file=/dras20/testdb/system01.dbf blocksize=8192

 

DBVERIFY: Release 9.2.0.6.0 - Production on Tue Jul 20 18:57:23 2010

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 

DBVERIFY - Verification starting : FILE = /dras20/testdb/system01.dbf

 

 

DBVERIFY - Verification complete

 

Total Pages Examined         : 52480

Total Pages Processed (Data) : 36707

Total Pages Failing   (Data) : 0

Total Pages Processed (Index): 4431

Total Pages Failing   (Index): 0

Total Pages Processed (Other): 1751

Total Pages Processed (Seg)  : 0

Total Pages Failing   (Seg)  : 0

Total Pages Empty            : 9591

Total Pages Marked Corrupt   : 0

Total Pages Influx           : 0

Highest block SCN            : 698090 (0.698090)

 

现在去掉隐含参数_db_always_check_system_ts后我们一样可以把上述库打开了:

[P550_04_LA:oracle@:/dras20/testdb]#cat inittestdb.ora|grep _db_always_check_system_ts

 

[P550_04_LA:oracle@:/dras20/testdb]#sqlplus '/ as sysdba';

 

SQL*Plus: Release 9.2.0.6.0 - Production on Tue Jul 20 19:27:41 2010

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 

Connected to an idle instance.

 

SQL_testdb>startup pfile=/dras20/testdb/inittestdb.ora

ORACLE instance started.

 

Total System Global Area  504858456 bytes

Fixed Size                   743256 bytes

Variable Size             285212672 bytes

Database Buffers          218103808 bytes

Redo Buffers                 798720 bytes

Database mounted.

Database opened.

Leave a comment