如何找到你要修改的数据字典的物理存储位置(续)

| No Comments | No TrackBacks

在"如何找到你要修改的数据字典的物理存储位置"这篇文章里我们介绍了在数据库open的情况下找到你要修改的数据字典记录的物理存储位置的方法。

 

这篇文章我们介绍在数据库shutdown的情况下如何找到你要修改的数据字典记录的物理存储位置。

 

还是那句话----具体的解释我就不详细说了,因为有完善的备份的话这些旁门左道都是不需要的!

 

这里我还是要把表空间TESTSCNonline$1改为2

 

首先我找到C_TS#的段头位置,从bootstrap$可以知道C_TS#的段头位置在FILE 1 BLOCK 57,剩下的就是一连串的BBED动作了:

BBED> set file 1

        FILE#           1

 

BBED> set block 57

        BLOCK#          57

 

BBED> map /v

 File: /dras11/oradata/astca/system01.dbf (1)

 Block: 57                                    Dba:0x00400039

------------------------------------------------------------

 Unlimited Data Segment Header

 

 struct kcbh, 20 bytes                      @0      

    ub1 type_kcbh                           @0      

    ub1 frmt_kcbh                           @1      

    ub1 spare1_kcbh                         @2      

    ub1 spare2_kcbh                         @3      

    ub4 rdba_kcbh                           @4      

    ub4 bas_kcbh                            @8      

    ub2 wrp_kcbh                            @12     

    ub1 seq_kcbh                            @14     

    ub1 flg_kcbh                            @15     

    ub2 chkval_kcbh                         @16     

    ub2 spare3_kcbh                         @18     

 

 struct ktech, 72 bytes                     @20     

    ub4 spare1_ktech                        @20     

    word tsn_ktech                          @24     

    ub4 lastmap_ktech                       @28     

    ub4 mapcount_ktech                      @32     

    ub4 extents_ktech                       @36     

    ub4 blocks_ktech                        @40     

    ub2 mapend_ktech                        @44     

    struct hwmark_ktech, 32 bytes           @48     

    struct locker_ktech, 8 bytes            @80     

    ub4 flag_ktech                          @88     

 

 struct ktemh, 16 bytes                     @92     

    ub4 count_ktemh                         @92     

    ub4 next_ktemh                          @96     

    ub4 obj_ktemh                           @100    

    ub4 flag_ktemh                          @104    

 

 struct ktetb[12], 96 bytes                 @108    

    ub4 ktetbdba                            @108    

    ub4 ktetbnbk                            @112    

 

 struct ktshc, 8 bytes                      @4148   

    ub2 ktshcnxf                            @4148   

    ub2 ktshcnfl                            @4150   

    ub2 ktshcnfb                            @4152   

    ub1 ktshctyp                            @4154   

 

 struct ktsfs_seg[1], 20 bytes              @4156   

    ub2 ktsfsflg                            @4156   

    struct ktsfsxid, 8 bytes                @4160   

    ub4 ktsfslhd                            @4168   

    ub4 ktsfsltl                            @4172   

 

 struct ktsfs_txn[28], 560 bytes            @4176   

    ub2 ktsfsflg                            @4176   

    struct ktsfsxid, 8 bytes                @4180   

    ub4 ktsfslhd                            @4188   

    ub4 ktsfsltl                            @4192   

 

 ub4 tailchk                                @8188   

 

BBED> p hwmark_ktech

struct hwmark_ktech, 32 bytes               @48     

   ub4 extno_ktehw                          @48       0x0000000b

   ub4 blkno_ktehw                          @52       0x00000005

   ub4 extsize_ktehw                        @56       0x00000008

   ub4 blkaddr_ktehw                        @60       0x0040f57e

   ub4 mapblk_ktehw                         @64       0x00000000

   ub4 offset_ktehw                         @68       0x0000000b

   ub4 flblks_ktehw                         @72       0x00000003

   ub4 blkcnt_ktehw                         @76       0x0000005c

 

BBED> p ktetb[11].ktetbdba

ub4 ktetbdba                                @196      0x0040f579

 

BBED> set dba 0x0040f57d

        DBA             0x0040f57d (4257149 1,62845)

 

BBED> find /x 5445535453434e

BBED-00212: search string not found

 

BBED> set dba 0x0040f57c

        DBA             0x0040f57c (4257148 1,62844)

 

BBED> find /x 5445535453434e

 File: /dras11/oradata/astca/system01.dbf (1)

 Block: 62844            Offsets: 5903 to 6414           Dba:0x0040f57c

------------------------------------------------------------------------

 54455354 53434e01 8002c102 01800180 018003c2 525d02c1 05018001 8002c102

 06c51630 31252e03 c2021d03 c2021d03 c2021d01 8002c102 018003c2 021d0180

 02c10202 c12302c1 0906c520 2b4c2e34 ffffff01 8001806c 021d0007 54455354

 53434e01 8002c102 018003c2 021a03c2 0f1a03c2 525d02c1 05018001 8002c102

 06c51630 31252e03 c2021d03 c2021d03 c2021d01 8002c102 018003c2 021d0180

 02c10202 c12302c1 0906c520 2b4c2e34 ffffff01 8001806c 001d0007 54455354

 53434e01 8002c103 018003c2 021a03c2 0f1a03c2 525d02c1 0504c307 382406c5

 2b5f6149 6002c102 06c51630 31252e03 c2021d03 c2021d03 c2021d01 8002c102

 018003c2 021d0180 02c10202 c12302c1 0906c520 2b4c2e34 ffffff01 8001806c

 001d0007 54455354 53434e01 8002c103 018003c2 021a03c2 0f1a03c2 525d02c1

 05018001 8002c102 06c51630 31252e03 c2021d03 c2021d03 c2021d01 8002c102

 018003c2 021d0180 02c10202 c12302c1 0906c520 2b4c2e34 ffffff01 8001806c

 021d0007 54455354 53434e01 8002c103 018003c2 021a03c2 0f1a03c2 525d02c1

 0504c307 382406c5 2b5f6149 6002c102 06c51630 31252e03 c2021d03 c2021d03

 c2021d01 8002c102 018003c2 021d0180 02c10202 c12302c1 0906c520 2b4c2e34

 ffffff01 8001806c 001d0007 54455354 53434e01 8002c103 018003c2 021a03c2

 

 <32 bytes per line>

上述dump内容中我用红颜色标注的部分就是表空间TESTSCNts$中对应的记录的online$的实际物理位置。

No TrackBacks

TrackBack URL: http://dbsnake.com/cgi-bin/mt/mt-tb.cgi/89

Leave a comment