[20181227]bbed的使用问题.txt

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

[20181227]bbed的使用问题.txt --//bbed的print简写p命令用来显示块的数据结构.当与dba结合有一些小问题.通过测试说明问题. BBED> help print PRINT[/x|d|u|o|c] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ] 1.环境: SCOTT@book> @ ver1 PORT_STRING         VERSION        BANNER ------------------- -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 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> @ rowid AAAVRCAAEAAAACHAAA     OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT ---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------      87106          4        135          0  0x1000087           4,135                alter system dump datafile 4 block 135 ; 2.使用bbed: BBED> set dba 4,135         DBA             0x01000087 (16777351 4,135) --//一般使用dba可以有3种格式, 1.使用file#,block#格式 ,例子 4,135 2.使用十进制数  例子  16777351 3.使用十六进制数 例子 0x01000087 BBED> set dba 4,135         DBA             0x01000087 (16777351 4,135) BBED> set dba 16777351         DBA             0x01000087 (16777351 4,135) BBED> set dba 0x1000087         DBA             0x01000087 (16777351 4,135) --//三种格式都是一样的. 3.但是print与dba结合在一起使用存在一些问题: BBED> p dba 4,135 kdbr sb2 kdbr[0]                                 @118      8062 sb2 kdbr[1]                                 @120      8040 sb2 kdbr[2]                                 @122      8020 sb2 kdbr[3]                                 @124      7996 --//使用file#,block#格式没有问题. BBED> p dba 0x1000087 kdbr BBED-00207: invalid offset specifier (dba) BBED> p dba 16777351 kdbr BBED-00207: invalid offset specifier (dba) $ oerr bbed 00207 0207,  1,  "invalid offset specifier (%s)" // *Cause:  The specified symbol is not in the block or the indirect offset //          value is out of range. --//很奇怪第2,3种格式都存在问题,加入offset 参数才可以使用. BBED> p dba 16777351 offset 118 kdbr sb2 kdbr[0]                                 @118      8062 sb2 kdbr[1]                                 @120      8040 sb2 kdbr[2]                                 @122      8020 sb2 kdbr[3]                                 @124      7996 BBED> p dba 16777351 offset 118 kdbr[0] ------- sb2 kdbr[0]                                 @118      8062 --//只要加入offset参数就可以,不管偏移如何. BBED> p dba 16777351 offset 0 kdbr sb2 kdbr[0]                                 @118      8062 sb2 kdbr[1]                                 @120      8040 sb2 kdbr[2]                                 @122      8020 sb2 kdbr[3]                                 @124      7996 BBED> p dba 0x01000087 offset 1 kdbr sb2 kdbr[0]                                 @118      8062 sb2 kdbr[1]                                 @120      8040 sb2 kdbr[2]                                 @122      8020 sb2 kdbr[3]                                 @124      7996 --//也就是p 加入dba 模式如何使用第2,3种格式,必须加入offset参数. --//也包括assign命令也是一样. BBED> assign dba 16777351  kdbr[0]=8062; BBED-00207: invalid offset specifier (dba) BBED> assign dba 0x01000087  kdbr[0]=8062; BBED-00207: invalid offset specifier (dba) BBED> assign dba 0x01000087  offset 0 kdbr[0]=8062; BBED-00202: invalid parameter (kdbr[0]) --//这种方式仅仅修改偏移的信息,而且仅仅1个字节,例子: BBED> x /rncc  *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x01 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK BBED> assign dba 0x01000087 offset 8162 = 0x2c01 BBED-00217: unable to assign: (11265) is out of range (0, 255) BBED> assign dba 0x01000087 offset 8162 = 0x2c ub1 rowdata[0]                              @8162     0x2c BBED> assign dba 4,135  kdbr[0]=8062; sb2 kdbr[0]                                 @118      8062 --//奇怪的是EXAMINE命令(简写x),没有这个问题. BBED> x /rncc dba 0x01000087 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x01 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK BBED> x /rncc dba 0x01000087 offset 0 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x01 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK --//总结:这些都是一些细节问题,工作中遇到有时候觉得很奇怪.

相关推荐