[20171124]bbed的使用问题2.txt

[20171124]bbed的使用问题2.txt

--//bbed 是探究oracle数据块的好工具,有时候不用转储,直接可以它看oracle内部块的内部结构.
--//在使用中要注意一些问题,昨天又犯类似错误,通过例子来说明:

SCOTT@book> select rowid,dept.* from dept;

ROWID                  DEPTNO DNAME          LOC
------------------ ---------- -------------- -------------
AAAVRCAAEAAAACHAAA         10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAB         20 RESEARCH       DALLAS
AAAVRCAAEAAAACHAAC         30 SALES          CHICAGO
AAAVRCAAEAAAACHAAD         40 OPERATIONS     BOSTON

SCOTT@book> @ &r/rowid AAAVRCAAEAAAACHAAA
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
     87106          4        135          0  0x1000087           4,135                alter system dump datafile 4 block 135 ;

SCOTT@book> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,HEADER_FILE,HEADER_BLOCK from dba_segments where owner=user and segment_name='DEPT';
OWNER  SEGMENT_NAME         SEGMENT_TYPE       HEADER_FILE HEADER_BLOCK
------ -------------------- ------------------ ----------- ------------
SCOTT  DEPT                 TABLE                        4          130

--//我曾经提到过:
--//如果我执行如下类似命令:
BBED> p tailchk dba 4,131
ub4 tailchk                                 @8188     0x0ee40602

BBED> p tailchk dba 4,130
BBED-00400: invalid blocktype (35)


BBED> p tailchk dba 4,131
BBED-00400: invalid blocktype (35)

--//我当时使用的方法是首先输入dba在前面.对于上面的命令你可以理解如下:
BBED> set dba 4,131
        DBA             0x01000083 (16777347 4,131)

BBED> p tailchk dba 4,130
BBED-00400: invalid blocktype (35)

BBED> show all
        FILE#           4
        BLOCK#          130
        OFFSET          8188
        DBA             0x01000082 (16777346 4,130)
        FILENAME        /mnt/ramdisk/book/users01.dbf
        BIFILE          bifile.bbd
        LISTFILE        /home/oracle/bbed/filelist.txt
        BLOCKSIZE       8192
        MODE            Edit
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           160
        COUNT           64
        LOGFILE         log.bbd
        SPOOL           Yes
--//注意看show all现在显示的FILE#=4,BLOCK#=130.

BBED> p tailchk dba 4,131
BBED-00400: invalid blocktype (35)

--//当你再输入p tailchk dba 4,131时,实际上先访问dba 4,130,再去访问dba 4,131.
--//如果dba 4,130访问异常,就不会访问dba 4,131.执行出错.

BBED> p dba 4,131 tailchk
ub4 tailchk                                 @8188     0x0ee40602

--//我感觉bbed的执行方式最好按照帮助提示的要求输入参数.这样一般不会错.
--//比如显示P命令的执行方式:
BBED> help p
PRINT[/x|d|u|o|c] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]

--//最好按照显示参数的顺序输入基本没有问题,输入如下:
BBED> p  dba 4,131 tailchk
ub4 tailchk                                 @8188     0x0ee40602
--//可以直接读访问dba 4,131的tailchk.

BBED> p /d dba 4,131 tailchk
ub4 tailchk                                 @8188     249824770

BBED> p  filename '/mnt/ramdisk/book/users01.dbf'  block 131 tailchk
ub4 tailchk                                 @8188     0x0ee40602

--//如果写成如下:
BBED> p  filename '/mnt/ramdisk/book/users01.dbf'   tailchk block 131
ub4 tailchk                                 @0        0x0000a206
--//我根本不知道访问的是那个块.

--//dump也有类似的命令输入方式:

BBED> help dump
DUMP[/v] [ DBA | FILENAME | FILE | BLOCK | OFFSET | COUNT ]

BBED> dump /v filename '/mnt/ramdisk/book/users01.dbf' block 131 offset 0 count 256
 File: /mnt/ramdisk/book/users01.dbf (4)
 Block: 131                               Offsets:    0 to  255                            Dba:0x01000083
-----------------------------------------------------------------------------------------------------------
 06a20000 83000001 e40e0e00 00000204 5d700000 01000c00 42540100 e40e0e00 l ................]p......BT......
 0000e81f 02003200 80000001 00000000 00000000 00000000 00000000 00000000 l ......2.........................
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
 00000000 00000000 ffff0e00 981f8a1f 8a1f0000 0000c819 73191e19 c5186c18 l ........................s.....l.
 1018b417 5817fc16 a0164416 e8158c15 3215d814 7c142014 c6136c13 1913c612 l ....X.....D.....2...|. ...l.....
 6b121012 ba116411 0811ac10 58100410 a80f4c0f f50e9d0e 430ee90d 970d450d l k.....d.....X.....L.....C.....E.
 f10c9d0c 450ced0b 970b410b f50aa90a 4d0af109 a1095109 0109b108 5d080908 l ....E.....A.....M.....Q.....]...
 bf077507 1f07c906 70061706 bb055f05 0b05b704 5c040104 b812c812 d812e812 l ..u.....p....._.....\...........
<32 bytes per line>

--//如果输入如下:
BBED> dump /v offset 0    count 256 filename '/mnt/ramdisk/book/users01.dbf' block 135
 File: /mnt/ramdisk/book/users01.dbf (4)
 Block: 135                               Offsets:    0 to  255                            Dba:0x01000087
-----------------------------------------------------------------------------------------------------------
 06a20000 87000001 70786917 03000204 56a50000 01001600 42540100 70786917 l ........pxi.....V.......BT..pxi.
 0300e81f 021f3200 80000001 09000200 64030000 b067c100 9a002e00 00800000 l ......2.........d....g..........
 f00e0e00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
 00000000 00010400 ffff1a00 261f221f 221f0000 04007e1f 261f541f 3c1f8918 l ............&.".".....~.&.T.<...
 2d18d117 7e172b17 d8168516 3216df15 8b153715 db147f14 2314c713 74132113 l -...~.+.....2.....7.....#...t.!.
 c5126912 0d12b111 5511f910 9d104110 e50f890f 350fe10e 850e290e ce0d730d l ..i.....U.....A.....5.....)...s.
 170dbb0c 640c0d0c ba0b670b 140bc10a 6e0a1b0a c8097509 1a09bf08 6b081608 l ....d.....g.....n.....u.....k...
 bb076007 0e07bc06 6a061806 c5057205 1605ba04 65041004 02000400 12000000 l ..`.....j.....r.....e...........

 <32 bytes per line>

BBED> dump /v offset 8000    count 256 filename '/mnt/ramdisk/book/users01.dbf' block 135
 File: /mnt/ramdisk/book/users01.dbf (4)
 Block: 135                               Offsets:    0 to  255                            Dba:0x01000087
-----------------------------------------------------------------------------------------------------------
 06a20000 87000001 70786917 03000204 56a50000 01001600 42540100 70786917 l ........pxi.....V.......BT..pxi.
 0300e81f 021f3200 80000001 09000200 64030000 b067c100 9a002e00 00800000 l ......2.........d....g..........
 f00e0e00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
 00000000 00010400 ffff1a00 261f221f 221f0000 04007e1f 261f541f 3c1f8918 l ............&.".".....~.&.T.<...
 2d18d117 7e172b17 d8168516 3216df15 8b153715 db147f14 2314c713 74132113 l -...~.+.....2.....7.....#...t.!.
 c5126912 0d12b111 5511f910 9d104110 e50f890f 350fe10e 850e290e ce0d730d l ..i.....U.....A.....5.....)...s.
 170dbb0c 640c0d0c ba0b670b 140bc10a 6e0a1b0a c8097509 1a09bf08 6b081608 l ....d.....g.....n.....u.....k...
 bb076007 0e07bc06 6a061806 c5057205 1605ba04 65041004 02000400 12000000 l ..`.....j.....r.....e...........

 <32 bytes per line>
--//第一次执行是正确的,而第2次就不对了(offset还是0).

--//如果按照dump帮助的顺序输入参数,就不会出问题了.
BBED> help dump
DUMP[/v] [ DBA | FILENAME | FILE | BLOCK | OFFSET | COUNT ]

BBED> dump /v filename '/mnt/ramdisk/book/users01.dbf' block 135 offset 0    count 256
 File: /mnt/ramdisk/book/users01.dbf (4)
 Block: 135                               Offsets:    0 to  255                            Dba:0x01000087
-----------------------------------------------------------------------------------------------------------
 06a20000 87000001 70786917 03000204 56a50000 01001600 42540100 70786917 l ........pxi.....V.......BT..pxi.
 0300e81f 021f3200 80000001 09000200 64030000 b067c100 9a002e00 00800000 l ......2.........d....g..........
 f00e0e00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
 00000000 00010400 ffff1a00 261f221f 221f0000 04007e1f 261f541f 3c1f8918 l ............&.".".....~.&.T.<...
 2d18d117 7e172b17 d8168516 3216df15 8b153715 db147f14 2314c713 74132113 l -...~.+.....2.....7.....#...t.!.
 c5126912 0d12b111 5511f910 9d104110 e50f890f 350fe10e 850e290e ce0d730d l ..i.....U.....A.....5.....)...s.
 170dbb0c 640c0d0c ba0b670b 140bc10a 6e0a1b0a c8097509 1a09bf08 6b081608 l ....d.....g.....n.....u.....k...
 bb076007 0e07bc06 6a061806 c5057205 1605ba04 65041004 02000400 12000000 l ..`.....j.....r.....e...........

 <32 bytes per line>

BBED> dump /v filename '/mnt/ramdisk/book/users01.dbf' block 135 offset 8000 count 256
 File: /mnt/ramdisk/book/users01.dbf (4)
 Block: 135                               Offsets: 8000 to 8191                            Dba:0x01000087
-----------------------------------------------------------------------------------------------------------
 ff0180ff 018004c3 07382402 c1022c00 1204c306 2423ff01 80196a61 76612f6e l .........8$...,.....$#....java/n
 65742f55 524c436c 6173734c 6f616465 72243402 c102ff02 c11e0778 7108180c l et/URLClassLoader$4........xq...
 2e120778 7108180c 2e122c00 0302c115 08524553 45415243 48064441 4c4c4153 l ...xq.....,......RESEARCH.DALLAS
 2c000302 c1290a4f 50455241 54494f4e 5306424f 53544f4e 2c000302 c11f0553 l ,....).OPERATIONS.BOSTON,......S
 414c4553 07434849 4341474f 3c020302 c1150852 45534541 52434806 44414c4c l ALES.CHICAGO<......RESEARCH.DALL
 41532c00 0302c10b 0a414343 4f554e54 494e4708 4e455720 594f524b 02067078 l AS,......ACCOUNTING.NEW YORK..px

 <32 bytes per line>

posted @ 2017-11-24 08:51  lfree  阅读(347)  评论(0编辑  收藏  举报