5 Oracle BBED解析數據塊——BBED基本使用三
5.Oracle BBED解析數據塊——BBED基本使用三
歡迎轉載,轉載請標明出處: http://blog.csdn.net/notbaron/article/details/50572024
Dump命令將塊的內存DUMP到屏幕上。可以配合/v參數來產生更多的輸出。
Dump的DBA,FILENAME,FILE,BLOCK,OFFSET可以再命令中設置。
如果沒有指定,當前文件,塊和OFFSET會被DUMP。 DUMP的大小收到set count的限制。
例如DUMP 文件13,塊號12,偏移0 ,如下:
BBED> dump /v dba 13,12 offset 0 count128
File: /oradata/tpcc1.dbf (13)
Block: 12 Offsets: 0 to 127 Dba:0x0340000c
-----------------------------------------------------------------------------------------------------------
1ea20000 0c004003 dadf2200 00000104 b88300000d000000 80c04500 00000000 l .?...@.讖".....?.......?.....
00000000 00f80000 00000000 00000000 0000000000000000 00000000 00000000 l ...............................
00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 l ................................
<32 bytes per line>
此外可以通過print命令輸出數據結構。
例如:
BBED> set dba 13,12
DBA 0x0340000c(54525964 13,12)
BBED> setoffset 0
OFFSET 0
BBED> p
BBED-00400: invalid blocktype (30)
此處報塊不能被BBED查看。
如下即可:
BBED> set dba 13,3276
DBA 0x03400ccc(54529228 13,3276)
BBED> set offset 0
OFFSET 0
BBED> p
kcbh.type_kcbh
--------------
ub1 type_kcbh @0 0x06
可以通過指定名字來輸出不可再分的數據結構如下,輸出數據塊頭。
BBED> p kcbh
struct kcbh, 20 bytes @0
ub1 type_kcbh @0 0x06
ub1 frmt_kcbh @1 0xa2
ub1 spare1_kcbh @2 0x00
ub1 spare2_kcbh @3 0x00
ub4 rdba_kcbh @4 0x03400ccc
ub4 bas_kcbh @8 0x0024c46f
ub2 wrp_kcbh @12 0x0000
ub1 seq_kcbh @14 0x01
ub1 flg_kcbh @15 0x06 (KCBHFDLC,KCBHFCKV)
ub2 chkval_kcbh @16 0x2663
ub2 spare3_kcbh @18 0x0000
如果想確定塊中的行數量,可以打印數據頭接口或kdbh
BBED> p kdbh
struct kdbh, 14 bytes @100
ub1 kdbhflag @100 0x00 (NONE)
sb1kdbhntab @101 1
sb2 kdbhnrow @102 23
sb2 kdbhfrre @104 -1
sb2 kdbhfsbo @106 64
sb2 kdbhfseo @108 679
sb2 kdbhavsp @110 927
sb2 kdbhtosp @112 927
也可以指定數據結構的元素,如下:
BBED> p kdbhnrow
sb2 kdbhnrow @102 23
此外,可以通過kdbr數據結構來顯示塊的行信息,如下:
BBED> p kdbr
sb2 kdbr[0] @118 6864
sb2 kdbr[1] @120 7163
sb2 kdbr[2] @122 7465
sb2 kdbr[3] @124 7776
sb2 kdbr[4] @126 992
sb2 kdbr[5] @128 1293
sb2 kdbr[6] @130 1611
sb2 kdbr[7] @132 1924
sb2 kdbr[8] @134 2241
sb2 kdbr[9] @136 2544
sb2 kdbr[10] @138 2848
sb2 kdbr[11] @140 3160
sb2 kdbr[12] @142 3468
sb2 kdbr[13] @144 3775
sb2 kdbr[14] @146 4090
sb2 kdbr[15] @148 4395
sb2 kdbr[16] @150 679
sb2 kdbr[17] @152 5013
sb2 kdbr[18] @154 5324
sb2 kdbr[19] @156 5640
sb2 kdbr[20] @158 5943
sb2 kdbr[21] @160 6247
sb2 kdbr[22] @162 6565
然後打印行信息如下:
BBED> p *kdbr[0]
rowdata[6185]
-------------
ub1 rowdata[6185] @6964 0x2c
表示行從偏移8159開始。
DUMP一下看看:
BBED> d /v dba 13,3276 offset 6964 count 16
File: /oradata/tpcc1.dbf (13)
Block: 3276 Offsets: 6964 to6979 Dba:0x03400ccc
-----------------------------------------------------------------------------------------------------------
2c001102 c10204c3 05090402 c1140180 l,...?.?...?..
<32 bytes per line>
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net
5 Oracle BBED解析數據塊——BBED基本使用三