ITPub博客

首页 > 数据库 > Oracle > ORA-00600 [kokasgi1]数据库无法启动的模拟与恢复

ORA-00600 [kokasgi1]数据库无法启动的模拟与恢复

原创 Oracle 作者:tianshiguodong 时间:2021-06-16 11:42:46 1 删除 编辑

错误产生的原因

  1. 数据库被SQL注入感染勒索病毒
  2. 数据库字典基表USER$和其索引I_USER1、I_USER2

错误过程模拟复现

1.创建用户及其对应表

SQL> create user user1 identified by user;
User created.
SQL> create user user2 identified by user;
User created.
SQL> grant dba to user1,user2;
Grant succeeded.
SQL> conn user1/user;
Connected.
SQL> create table test as select * from dba_objects;
Table created.
SQL> conn user2/user;
Connected.
SQL> create table test as select * from dba_objects;
Table created.

2.模拟勒索病毒删除user$表

SQL> delete from user$;
88 rows deleted.
SQL> commit;
Commit complete.
SQL> startup force
ORACLE instance started.
Total System Global Area 1043886080 bytes
Fixed Size                  2259840 bytes
Variable Size             654312576 bytes
Database Buffers          381681664 bytes
Redo Buffers                5632000 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [],
[], [], [], [], []
Process ID: 5942
Session ID: 1 Serial number: 5

错误的解决与恢复

1.确定要修复的块

SQL> select distinct(dbms_rowid.rowid_block_number(rowid)) block_id from user$;
  BLOCK_ID
----------
       209
       213
       211
       210
       212

数据库用户信息被存储到user$这个基表中,只涉及到 209 到 213 共 5 个块

SQL> select distinct(dbms_rowid.rowid_block_number(rowid)) block_id from bootstrap$ where obj# in (select obj# from obj$ where name in ('I_USER1','I_USER2'));
  BLOCK_ID
----------
       522

修复过程中要删除user$的这2个索引,需要定位删除的块

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/test/system01.dbf
/u01/app/oracle/oradata/test/sysaux01.dbf
/u01/app/oracle/oradata/test/undotbs01.dbf
/u01/app/oracle/oradata/test/users01.dbf

2. 修复user$记录对应的块

  • 修复前4个块
    /*
    拷贝同平台同版本数据库对应位置的块来覆盖被删除的前4个块(前4个块存储的是系统用户的数据))
    */
[oracle@ora11g_asm ~]$ dd if=/tmp/user_4_block skip=1 bs=8192 count=4 of=/u01/app/oracle/oradata/test/system01.dbf seek=209 conv=notrunc
记录了4+0 的读入
记录了4+0 的写出
32768字节(33 kB)已复制,4.462e-05 秒,734 MB/秒
  • 修复最后一个块
[oracle@ora11g_asm bbed]$ bbed parfile=bbed.par
BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 21 00:23:24 2021
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> set filename '/u01/app/oracle/oradata/test/system01.dbf'
        FILENAME        /u01/app/oracle/oradata/test/system01.dbf
BBED> set block 213
        BLOCK#          213
BBED> p kdbt
struct kdbt[0], 4 bytes                     @106     
   sb2 kdbtoffs                             @106      0
   sb2 kdbtnrow                             @108      4
struct kdbt[1], 4 bytes                     @110     
   sb2 kdbtoffs                             @110      4
   sb2 kdbtnrow                             @112      5
BBED> p *kdbr[5]
rowdata[157]
------------
ub1 rowdata[157]                            @6800     0x5c
BBED> x /rn
rowdata[157]                                @6800    
------------
flag@6800: 0x5c (KDRHFL, KDRHFF, KDRHFD, KDRHFC)
lock@6801: 0x02
cols@6802:    0
ckix@6803:    2
BBED> modify /x 4c
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 6800 to 7311           Dba:0x00000000
------------------------------------------------------------------------
 4c021302 004000d1 00000a5f 4e455854 5f555345 520180ff 01800180 07787108 
 180c2629 ffffff01 80ff0180 ffff0180 01801644 45464155 4c545f43 4f4e5355 
 4d45525f 47524f55 50ff0180 ac000101 00000000 4000d500 02004000 d5000202 
 c1597c02 16030555 53455231 02c10210 31384139 34464137 30373031 45333632 
 02c10502 c1040778 79041418 2f0a0778 79041418 2f0affff 0180ff02 c102ffff 
 01800180 16444546 41554c54 5f434f4e 53554d45 525f4752 4f5550ff 0180ffff 
 3e533a33 46364332 38463139 46334438 42414339 46414532 30424230 34414645 
 35393832 42443238 30313434 37373846 41344138 37443343 41434533 4234455c 
 02130100 4000d100 000a5f4e 4558545f 55534552 0180ff01 80018007 78710818 
 0c2629ff ffff0180 ff0180ff ff018001 80164445 4641554c 545f434f 4e53554d 
 45525f47 524f5550 ff0180ac 00010100 00000040 00d50001 004000d5 000102c1 
 587c0216 02055553 45523202 c1021035 36463444 37433045 45443230 42464202 
 c10502c1 04077879 0414182e 34077879 0414182e 34ffff01 80ff02c1 02ffff01 
 80018016 44454641 554c545f 434f4e53 554d4552 5f47524f 5550ff01 80ffff3e 
 533a4231 30303030 30413142 36423642 36414439 41393146 36393331 30453944 
 45434635 45463446 31383841 42333132 46423039 42423346 38333938 38345c02 
 <32 bytes per line>
BBED> p *kdbr[6]
rowdata[1020]
-------------
ub1 rowdata[1020]                           @7663     0x7c
BBED> modify /x 6c
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 7663 to 8174           Dba:0x00000000
------------------------------------------------------------------------
 6c021600 0553434f 545402c1 02104638 39343834 34433334 34303242 363702c1 
 0502c104 07787108 180d0516 07787108 180d0516 07787904 14172a33 07787904 
 14172a33 0180ff02 c102ffff 02c10a01 80164445 4641554c 545f434f 4e53554d 
 45525f47 524f5550 ff0180ff ff3e533a 30373932 31323737 45423638 35463938 
 31364241 34373736 32333146 41333142 30433041 38344444 34444637 30453544 
 45433736 31413646 36423533 6c021600 0553434f 545402c1 02104638 39343834 
 34433334 34303242 363702c1 0502c104 07787108 180d0516 07787108 180d0516 
 ffff0180 ff02c102 ffff0180 01801644 45464155 4c545f43 4f4e5355 4d45525f 
 47524f55 50ff0180 ffff3e53 3a303739 32313237 37454236 38354639 38313642 
 41343737 36323331 46413331 42304330 41383444 44344446 37304535 44454337 
 36314136 46364235 335c0213 01004000 d100000a 5f4e4558 545f5553 45520180 
 ff018001 80077871 08180c26 29ffffff 0180ff01 80ffff01 80018016 44454641 
 554c545f 434f4e53 554d4552 5f47524f 5550ff01 80bc0101 00000000 004000d5 
 00010040 00d50001 02c1555c 02130000 4000d100 000a5f4e 4558545f 55534552 
 0180ff01 80018007 78710818 0c2629ff ffff0180 ff0180ff ff018001 80164445 
 4641554c 545f434f 4e53554d 45525f47 524f5550 ff0180ac 00010100 00000040 
 <32 bytes per line>
BBED> p *kdbr[7]
rowdata[255]
------------
ub1 rowdata[255]                            @6898     0x7c
BBED> modify /x 6c
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 6898 to 7409           Dba:0x00000000
------------------------------------------------------------------------
 6c021603 05555345 523102c1 02103138 41393446 41373037 30314533 363202c1 
 0502c104 07787904 14182f0a 07787904 14182f0a ffff0180 ff02c102 ffff0180 
 01801644 45464155 4c545f43 4f4e5355 4d45525f 47524f55 50ff0180 ffff3e53 
 3a334636 43323846 31394633 44384241 43394641 45323042 42303441 46453539 
 38324244 32383031 34343737 38464134 41383744 33434143 45334234 455c0213 
 01004000 d100000a 5f4e4558 545f5553 45520180 ff018001 80077871 08180c26 
 29ffffff 0180ff01 80ffff01 80018016 44454641 554c545f 434f4e53 554d4552 
 5f47524f 5550ff01 80ac0001 01000000 004000d5 00010040 00d50001 02c1587c 
 02160205 55534552 3202c102 10353646 34443743 30454544 32304246 4202c105 
 02c10407 78790414 182e3407 78790414 182e34ff ff0180ff 02c102ff ff018001 
 80164445 4641554c 545f434f 4e53554d 45525f47 524f5550 ff0180ff ff3e533a 
 42313030 30303041 31423642 36423641 44394139 31463639 33313045 39444543 
 46354546 34463138 38414233 31324642 30394242 33463833 39383834 5c021303 
 004000d1 00000a5f 4e455854 5f555345 520180ff 01800180 07787108 180c2629 
 ffffff01 80ff0180 ffff0180 01801644 45464155 4c545f43 4f4e5355 4d45525f 
 47524f55 50ff0180 ac000101 00000000 4000d500 03004000 d5000302 c1577c02 
 <32 bytes per line>
BBED> p *kdbr[8]
rowdata[0]
----------
ub1 rowdata[0]                              @6643     0x7c
BBED> modify /x 6c
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 6643 to 7154           Dba:0x00000000
------------------------------------------------------------------------
 6c021601 05555345 523202c1 02103536 46344437 43304545 44323042 464202c1 
 0502c104 07787904 14182f11 07787904 14182f11 ffff0180 ff02c102 ffff0180 
 01801644 45464155 4c545f43 4f4e5355 4d45525f 47524f55 50ff0180 ffff3e53 
 3a383737 41343736 46424131 30464531 35334434 33414146 34423438 36313641 
 34443333 35384245 32314241 39444630 34324546 43454142 45323043 444c0213 
 02004000 d100000a 5f4e4558 545f5553 45520180 ff018001 80077871 08180c26 
 29ffffff 0180ff01 80ffff01 80018016 44454641 554c545f 434f4e53 554d4552 
 5f47524f 5550ff01 80ac0001 01000000 004000d5 00020040 00d50002 02c1596c 
 02160305 55534552 3102c102 10313841 39344641 37303730 31453336 3202c105 
 02c10407 78790414 182f0a07 78790414 182f0aff ff0180ff 02c102ff ff018001 
 80164445 4641554c 545f434f 4e53554d 45525f47 524f5550 ff0180ff ff3e533a 
 33463643 32384631 39463344 38424143 39464145 32304242 30344146 45353938 
 32424432 38303134 34373738 46413441 38374433 43414345 33423445 5c021301 
 004000d1 00000a5f 4e455854 5f555345 520180ff 01800180 07787108 180c2629 
 ffffff01 80ff0180 ffff0180 01801644 45464155 4c545f43 4f4e5355 4d45525f 
 47524f55 50ff0180 ac000101 00000000 4000d500 01004000 d5000102 c1587c02 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 213:
current = 0x7de9, required = 0x7de9
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 213
Block Checking: DBA = 4194517, Block Type = KTB-managed data block
data header at 0x7fbdcb83f25c
kdbchk:  key comref count wrong
         keyslot=0
Block 213 failed with check code 6121
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> p *kdbr[0]
rowdata[1523]
-------------
ub1 rowdata[1523]                           @8166     0xac
BBED> x /rn 
rowdata[1523]                               @8166    
-------------
flag@8166: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK)
lock@8167: 0x00
cols@8168:    1
kref@8169:    1
hrid@8171:0x004000d5.0
nrid@8177:0x004000d5.0
col    0[2] @8185: 83 
BBED> modify /x 01 offset 8171
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 8171 to 8191           Dba:0x00000000
------------------------------------------------------------------------
 01000040 00d50000 004000d5 000002c1 540406b8 c6 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 213:
current = 0x7ce9, required = 0x7ce9
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 213
Block Checking: DBA = 4194517, Block Type = KTB-managed data block
data header at 0x7ddc5c
kdbchk:  key comref count wrong
         keyslot=1
Block 213 failed with check code 6121
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> p *kdbr[1]
rowdata[488]
------------
ub1 rowdata[488]                            @7131     0xac
BBED> x /rn
rowdata[488]                                @7131    
------------
flag@7131: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK)
lock@7132: 0x00
cols@7133:    1
kref@7134:    1
hrid@7136:0x004000d5.1
nrid@7142:0x004000d5.1
col    0[2] @7150: 87 
BBED> modify /x 01 offset 7136
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 7136 to 7647           Dba:0x00000000
------------------------------------------------------------------------
 01000040 00d50001 004000d5 000102c1 587c0216 02055553 45523202 c1021035 
 36463444 37433045 45443230 42464202 c10502c1 04077879 0414182e 34077879 
 0414182e 34ffff01 80ff02c1 02ffff01 80018016 44454641 554c545f 434f4e53 
 554d4552 5f47524f 5550ff01 80ffff3e 533a4231 30303030 30413142 36423642 
 36414439 41393146 36393331 30453944 45434635 45463446 31383841 42333132 
 46423039 42423346 38333938 38345c02 13030040 00d10000 0a5f4e45 58545f55 
 53455201 80ff0180 01800778 7108180c 2629ffff ff0180ff 0180ffff 01800180 
 16444546 41554c54 5f434f4e 53554d45 525f4752 4f5550ff 0180ac00 01010000 
 00004000 d5000300 4000d500 0302c157 7c021601 05555345 523102c1 02103138 
 41393446 41373037 30314533 363202c1 0502c104 07787904 14182e33 07787904 
 14182e33 ffff0180 ff02c102 ffff0180 01801644 45464155 4c545f43 4f4e5355 
 4d45525f 47524f55 50ff0180 ffff3e53 3a313941 44463331 41424141 37384632 
 36433133 42343138 32394630 41333531 45363442 33393731 45353330 37394338 
 42303434 30334133 39344131 305c0213 02004000 d100000a 5f4e4558 545f5553 
 45520180 ff018001 80077871 08180c26 29ffffff 0180ff01 80ffff01 80018016 
 44454641 554c545f 434f4e53 554d4552 5f47524f 5550ff01 80bc0101 00000000 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 213:
current = 0x7ce8, required = 0x7ce8
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 213
Block Checking: DBA = 4194517, Block Type = KTB-managed data block
data header at 0x7ddc5c
kdbchk:  key comref count wrong
         keyslot=2
Block 213 failed with check code 6121
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> p *kdbr[2]
rowdata[233]
------------
ub1 rowdata[233]                            @6876     0xac
BBED> x /rn
rowdata[233]                                @6876    
------------
flag@6876: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK)
lock@6877: 0x00
cols@6878:    1
kref@6879:    1
hrid@6881:0x004000d5.2
nrid@6887:0x004000d5.2
col    0[2] @6895: 88 
BBED> modify /x 01 offset 6881
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 6881 to 7392           Dba:0x00000000
------------------------------------------------------------------------
 01000040 00d50002 004000d5 000202c1 596c0216 03055553 45523102 c1021031 
 38413934 46413730 37303145 33363202 c10502c1 04077879 0414182f 0a077879 
 0414182f 0affff01 80ff02c1 02ffff01 80018016 44454641 554c545f 434f4e53 
 554d4552 5f47524f 5550ff01 80ffff3e 533a3346 36433238 46313946 33443842 
 41433946 41453230 42423034 41464535 39383242 44323830 31343437 37384641 
 34413837 44334341 43453342 34455c02 13010040 00d10000 0a5f4e45 58545f55 
 53455201 80ff0180 01800778 7108180c 2629ffff ff0180ff 0180ffff 01800180 
 16444546 41554c54 5f434f4e 53554d45 525f4752 4f5550ff 0180ac00 01010001 
 00004000 d5000100 4000d500 0102c158 7c021602 05555345 523202c1 02103536 
 46344437 43304545 44323042 464202c1 0502c104 07787904 14182e34 07787904 
 14182e34 ffff0180 ff02c102 ffff0180 01801644 45464155 4c545f43 4f4e5355 
 4d45525f 47524f55 50ff0180 ffff3e53 3a423130 30303030 41314236 42364236 
 41443941 39314636 39333130 45394445 43463545 46344631 38384142 33313246 
 42303942 42334638 33393838 345c0213 03004000 d100000a 5f4e4558 545f5553 
 45520180 ff018001 80077871 08180c26 29ffffff 0180ff01 80ffff01 80018016 
 44454641 554c545f 434f4e53 554d4552 5f47524f 5550ff01 80ac0001 01000000 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 213:
current = 0x7de8, required = 0x7de8
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 213
Block Checking: DBA = 4194517, Block Type = KTB-managed data block
data header at 0x7ddc5c
kdbchk:  key comref count wrong
         keyslot=3
Block 213 failed with check code 6121
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> p *kdbr[3]
rowdata[743]
------------
ub1 rowdata[743]                            @7386     0xac
BBED> x /rn
rowdata[743]                                @7386    
------------
flag@7386: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK)
lock@7387: 0x00
cols@7388:    1
kref@7389:    1
hrid@7391:0x004000d5.3
nrid@7397:0x004000d5.3
col    0[2] @7405: 86 
BBED> modify /x 01 offset 7391
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets: 7391 to 7902           Dba:0x00000000
------------------------------------------------------------------------
 01000040 00d50003 004000d5 000302c1 577c0216 01055553 45523102 c1021031 
 38413934 46413730 37303145 33363202 c10502c1 04077879 0414182e 33077879 
 0414182e 33ffff01 80ff02c1 02ffff01 80018016 44454641 554c545f 434f4e53 
 554d4552 5f47524f 5550ff01 80ffff3e 533a3139 41444633 31414241 41373846 
 32364331 33423431 38323946 30413335 31453634 42333937 31453533 30373943 
 38423034 34303341 33393441 31305c02 13020040 00d10000 0a5f4e45 58545f55 
 53455201 80ff0180 01800778 7108180c 2629ffff ff0180ff 0180ffff 01800180 
 16444546 41554c54 5f434f4e 53554d45 525f4752 4f5550ff 0180bc01 01000000 
 00004000 d5000200 4000d500 0202c156 6c021600 0553434f 545402c1 02104638 
 39343834 34433334 34303242 363702c1 0502c104 07787108 180d0516 07787108 
 180d0516 07787904 14172a33 07787904 14172a33 0180ff02 c102ffff 02c10a01 
 80164445 4641554c 545f434f 4e53554d 45525f47 524f5550 ff0180ff ff3e533a 
 30373932 31323737 45423638 35463938 31364241 34373736 32333146 41333142 
 30433041 38344444 34444637 30453544 45433736 31413646 36423533 6c021600 
 0553434f 545402c1 02104638 39343834 34433334 34303242 363702c1 0502c104 
 07787108 180d0516 07787108 180d0516 ffff0180 ff02c102 ffff0180 01801644 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 213:
current = 0x7ce8, required = 0x7ce8
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 213
Block Checking: DBA = 4194517, Block Type = KTB-managed data block
data header at 0x7ddc5c
kdbchk: the amount of space used is not equal to block size
        used=690 fsc=546 avsp=7406 dtl=8096
Block 213 failed with check code 6110
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> modify /x 0000 offset 86            
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 213              Offsets:   86 to  597           Dba:0x00000000
------------------------------------------------------------------------
 00000000 00000102 09000400 28009719 ee1c201f 00000400 04000500 8a1f7f1b 
 801a7e1c ffff341a 931d961a 9719f80e 9c0e480e 040ea40d 400de40c 900c4c0c 
 f00b8c0b 300bdc0a 980a380a d0096409 1009cc08 6c080808 ac075807 1407b406 
 5006f405 a0055c05 fc049404 3804e403 a0034003 dc028002 2c02e801 88012401 
 c8006a17 3d170a00 18001000 14001200 41166f4a 01006f4a 01000100 00000000 
 00000a16 0d590000 7e02020d 16972a00 0000b276 c0006100 55000302 0100f2bd 
 80005cbe 80000000 00000000 00000453 35313405 656e2d75 73060080 c3230067 
 80000a00 18001000 14001c00 06006e4a 01006e4a 01000100 00000000 00000a16 
 0d580000 7e02020d 16972a00 0000b276 c0006100 54000302 0100eabd 800052c4 
 80000000 00000000 00000753 616d706c 65720650 55424c49 4305656e 2d757306 
 0080c323 00670a00 18001000 14001700 13076d4a 01006d4a 01000100 00000000 
 00000a16 0d570000 7e02020d 16972a00 0000b276 c0006100 53000302 0100e2bd 
 800090c1 80000000 00000000 00000773 616d706c 65720650 55424c49 4305656e 
 2d757301 804c0800 18001000 14006c4a 01006c4a 01000100 00000000 00000b01 
 0d560000 7e02020d 0000296a 0d00b276 c0006100 520023c3 8000dabd 8000fa12 
 03010200 00006700 00bf0a00 18001000 14000900 8000dd4c 0100dd4c 01000100 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 213:
current = 0x7eca, required = 0x7eca
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 213
Block Checking: DBA = 4194517, Block Type = KTB-managed data block
data header at 0x7ddc5c
kdbchk: space available on commit is incorrect
        tosp=7968 fsc=0 stb=0 avsp=7406
Block 213 failed with check code 6111
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> assign kdbhtosp=kdbhavsp
sb2 kdbhtosp                                @104      7406
BBED> sum apply
Check value for File 0, Block 213:
current = 0x7d04, required = 0x7d04
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 213
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
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

3. 删除I_USER1和I_USER2两个索引
由于表数据已经修改,此时索引和表数据不一致,需要手动删除索引

BBED> set block 522
        BLOCK#          522
BBED> p kdbr
sb2 kdbr[0]                                 @86       7506
sb2 kdbr[1]                                 @88       7297
sb2 kdbr[2]                                 @90       7095
sb2 kdbr[3]                                 @92       6883
sb2 kdbr[4]                                 @94       6282
sb2 kdbr[5]                                 @96       5895
sb2 kdbr[6]                                 @98       5666
sb2 kdbr[7]                                 @100      4814
sb2 kdbr[8]                                 @102      4611
sb2 kdbr[9]                                 @104      4345
sb2 kdbr[10]                                @106      4128
sb2 kdbr[11]                                @108      3905
sb2 kdbr[12]                                @110      3701
sb2 kdbr[13]                                @112      3417
sb2 kdbr[14]                                @114      3245
sb2 kdbr[15]                                @116      2944
sb2 kdbr[16]                                @118      2739
sb2 kdbr[17]                                @120      2524
sb2 kdbr[18]                                @122      1893
sb2 kdbr[19]                                @124      1686
sb2 kdbr[20]                                @126      1458
BBED> p *kdbr[20]
rowdata[0]
----------
ub1 rowdata[0]                              @1526     0x2c
BBED> x /rnnc
rowdata[0]                                  @1526    
----------
flag@1526: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@1527: 0x01
cols@1528:    3
col    0[2] @1529: 47 
col    1[2] @1532: 47 
col  2[218] @1535: CREATE UNIQUE INDEX I_USER2 ON USER$(USER#,TYPE#,SPARE1
,SPARE2) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 102
4K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 47 EXTENTS (FILE 
1 BLOCK 424))
BBED> p *kdbr[19]
rowdata[228]
------------
ub1 rowdata[228]                            @1754     0x2c
BBED> x /rnnc
rowdata[228]                                @1754    
------------
flag@1754: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@1755: 0x01
cols@1756:    3
col    0[2] @1757: 46 
col    1[2] @1760: 46 
col  2[197] @1763: CREATE UNIQUE INDEX I_USER1 ON USER$(NAME) PCTFREE 10 I
NITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEX
TENTS 2147483645 PCTINCREASE 0 OBJNO 46 EXTENTS (FILE 1 BLOCK 416))
BBED> modify /x 3c
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 522              Offsets: 1754 to 2265           Dba:0x00000000
------------------------------------------------------------------------
 3c010302 c12f02c1 2fc54352 45415445 20554e49 51554520 494e4445 5820495f 
 55534552 31204f4e 20555345 5224284e 414d4529 20504354 46524545 20313020 
 494e4954 52414e53 2032204d 41585452 414e5320 32353520 53544f52 41474520 
 28202049 4e495449 414c2036 344b204e 45585420 31303234 4b204d49 4e455854 
 454e5453 2031204d 41584558 54454e54 53203231 34373438 33363435 20504354 
 494e4352 45415345 2030204f 424a4e4f 20343620 45585445 4e545320 2846494c 
 45203120 424c4f43 4b203431 3629292c 010302c1 1702c117 fe6b0243 52454154 
 45205441 424c4520 55534552 24282255 53455223 22204e55 4d424552 204e4f54 
 204e554c 4c2c224e 414d4522 20564152 43484152 32283330 29204e4f 54204e55 
 4c4c2c22 54595045 2322204e 554d4245 52204e4f 54204e55 4c4c2c22 50415353 
 574f5244 22205641 52434841 52322833 30292c22 44415441 54532322 204e554d 
 42455220 4e4f5420 4e554c4c 2c225445 4d505453 2322204e 554d4245 52204e4f 
 54204e55 4c4c2c22 4354494d 45222044 41544520 4e4f5420 4e554c4c 2c225054 
 494d4522 20444154 452c2245 58505449 4d452220 44415445 2c224c54 494d4522 
 20444154 452c2252 45534f55 52434524 22204e55 4d424552 204e4f54 204e554c 
 4c2c2241 55444954 24222056 41524348 41523228 3338292c 22444546 524f4c45 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 522:
current = 0x1ee8, required = 0x1ee8
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 522
Block Checking: DBA = 4194826, Block Type = KTB-managed data block
data header at 0x842e44
kdbchk: the amount of space used is not equal to block size
        used=6291 fsc=0 avsp=1398 dtl=8120
Block 522 failed with check code 6110
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> p kdbh
struct kdbh, 14 bytes                       @68      
   ub1 kdbhflag                             @68       0x00 (NONE)
   sb1 kdbhntab                             @69       1
   sb2 kdbhnrow                             @70       21
   sb2 kdbhfrre                             @72      -1
   sb2 kdbhfsbo                             @74       60
   sb2 kdbhfseo                             @76       1458
   sb2 kdbhavsp                             @78       1398
   sb2 kdbhtosp                             @80       1398
BBED> modify /x 2507 offset 78
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 522              Offsets:   78 to  589           Dba:0x00000000
------------------------------------------------------------------------
 25077605 00001500 521d811c b71be31a 8a180717 2216ce12 0312f910 2010410f 
 750e590d ad0c800b b30adc09 65079606 b2050000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 522:
current = 0x1cbb, required = 0x1cbb
BBED> ASSIGN kdbhtosp=kdbhavsp
sb2 kdbhtosp                                @80       1829
BBED> sum apply
Check value for File 0, Block 522:
current = 0x1ee8, required = 0x1ee8
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 522
Block Checking: DBA = 4194826, Block Type = KTB-managed data block
data header at 0x864e44
kdbchk: space available on commit is incorrect
        tosp=1829 fsc=0 stb=4 avsp=1829
Block 522 failed with check code 6111
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 1
Total Blocks Processed (Index): 0
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> p kdbh
struct kdbh, 14 bytes                       @68      
   ub1 kdbhflag                             @68       0x00 (NONE)
   sb1 kdbhntab                             @69       1
   sb2 kdbhnrow                             @70       21
   sb2 kdbhfrre                             @72      -1
   sb2 kdbhfsbo                             @74       60
   sb2 kdbhfseo                             @76       1458
   sb2 kdbhavsp                             @78       1829
   sb2 kdbhtosp                             @80       1829
BBED> modify /x 2907 offset 80
 File: /u01/app/oracle/oradata/test/system01.dbf (0)
 Block: 522              Offsets:   80 to  591           Dba:0x00000000
------------------------------------------------------------------------
 29070000 1500521d 811cb71b e31a8a18 07172216 ce120312 f9102010 410f750e 
 590dad0c 800bb30a dc096507 9606b205 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
 <32 bytes per line>
BBED> sum apply
Check value for File 0, Block 522:
current = 0x1ee4, required = 0x1ee4
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/test/system01.dbf
BLOCK = 522
DBVERIFY - Verification complete
Total Blocks Examined         : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
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

4. 启动数据库检查数据

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1043886080 bytes
Fixed Size                  2259840 bytes
Variable Size             654312576 bytes
Database Buffers          381681664 bytes
Redo Buffers                5632000 bytes
Database mounted.
Database opened.
SQL> conn user1/user;
Connected.
SQL> select count(*) from test;
  COUNT(*)
----------
     86259
SQL> conn user2/user;
Connected.
SQL> select count(*) from test;
  COUNT(*)
----------
     86260


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16807927/viewspace-2776888/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-30

  • 博文量
    19
  • 访问量
    52826