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

来源:这里教程网 时间:2026-03-03 16:44:46 作者:

错误产生的原因

  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

  • 相关推荐