1. 程式人生 > >5 Oracle BBED解析數據塊——BBED基本使用三

5 Oracle BBED解析數據塊——BBED基本使用三

lan target 0x03 c11 希望 dad none detail one

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基本使用三