[20251117]使用bbed p dba命令遇到的问题.txt

来源:这里教程网 时间:2026-03-03 22:51:51 作者:

[20251117]使用bbed p dba命令遇到的问题.txt --//前几天使用bbed遇到的问题,就是p命令的dba格式问题,做一个记录,只能讲bbed的一些行为有一些怪异。 --//好长时间不使用有点生疏了。 1.环境: SCOTT@book01p> @ ver2 ============================== PORT_STRING                   : x86_64/Linux 2.4.xx VERSION                       : 21.0.0.0.0 BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production CON_ID                        : 0 PL/SQL procedure successfully completed. 2.使用dept表说明问题。 SCOTT@book01p> select rowid,dept.* from dept; ROWID                  DEPTNO DNAME         LOC ------------------ ---------- ------------- ------------- AAASmfAAMAAAACDAAA         10 ACCOUNTING    NEW YORK AAASmfAAMAAAACDAAB         20 RESEARCH      DALLAS AAASmfAAMAAAACDAAC         30 SALES         CHICAGO AAASmfAAMAAAACDAAD         40 OPERATIONS    BOSTON SCOTT@book01p> @ rowid AAASmfAAMAAAACDAAA DATA_OBJECT_ID       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT -------------- ---------- ---------- ---------- -------------------- -------------------- --------------------------------------------------          76191         12        131          0  0x3000083           12,131               alter system dump datafile 12 block 131 ; 3.问题说明: BBED> set dba 12,131         DBA             0x03000083 (50331779 12,131) BBED> set dba 0x3000083         DBA             0x03000083 (50331779 12,131) BBED> set dba 50331779         DBA             0x03000083 (50331779 12,131) --//可以发现使用以上三种格式没有任何问题,后面指向的数据块都是一样的,但是p命令就非常特别,以前没有注意。 BBED> help p PRINT[/x|d|u|o|c] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ] BBED> P dba 12,131 kdbr sb2 kdbr[0]                                 @118      8062 sb2 kdbr[1]                                 @120      8040 sb2 kdbr[2]                                 @122      8020 sb2 kdbr[3]                                 @124      7996 BBED> p dba 12,131 kdbr sb2 kdbr[0]                                 @118      8062 sb2 kdbr[1]                                 @120      8040 sb2 kdbr[2]                                 @122      8020 sb2 kdbr[3]                                 @124      7996 --//大小写都没有问题。 BBED> p dba 50331779 kdbr BBED-00207: invalid offset specifier (dba) BBED> p dba 0x03000083 kdbr BBED-00207: invalid offset specifier (dba) --//可以发现p命令带入10进制或者16进制数值都会报错。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. --//测试x命令看看: BBED> x /rncc  dba 12,131 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x00 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK BBED> x /rncc  dba 50331779 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x00 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK BBED> x /rncc  dba 0x03000083 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x00 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK --//x命令就支持3种格式。x命令没问题。 --//看看assign命令如何: BBED> x /rncc  dba 0x03000083 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x00 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK BBED> assign dba 0x03000083 offset 8162=0x3c Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y ub1 rowdata[0]                              @8162     0x3c BBED> x /rncc  dba 50331779 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x3c (KDRHFL, KDRHFF, KDRHFD, KDRHFH) lock@8163: 0x00 cols@8164:    0 --//加入删除标识,看不见相关记录信息。 BBED> assign dba 50331779 offset 8162=0x2c ub1 rowdata[0]                              @8162     0x2c BBED> x /rncc  dba 50331779 *kdbr[0] rowdata[66]                                 @8162 ----------- flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8163: 0x00 cols@8164:    3 col    0[2] @8165: 10 col   1[10] @8168: ACCOUNTING col    2[8] @8179: NEW YORK --//我看了以前的工作日志,发现bbed for windows使用assign dba 0x03000083这样的方式不行。 BBED> assign /x dba 11,332 tailchk = fd040602 ub4 tailchk                                 @8188     0xfd040602 BBED> assign /x dba 0x02c0014c tailchk = fd040602 BBED-00207: invalid offset specifier (dba) --//还可以发现bbed for windows支持0x8开头的修改,linux的版本不行。 --//继续测试: BBED> set dba 12,131         DBA             0x03000083 (50331779 12,131) BBED> p dba 12,131 tailchk ub4 tailchk                                 @8188     0xf9bb0601 BBED> assign dba 12,131 tailchk = 0xf9bb0601 BBED-00207: invalid offset specifier (f9bb0601) BBED> assign dba 12,131 tailchk = 0x89bb0601 BBED-00207: invalid offset specifier (89bb0601) BBED> assign dba 12,131 tailchk = 0x79bb0601 ub4 tailchk                                 @8188     0x79bb0601 --//仅仅支持开头最大0x7. BBED> modify /x f9 dba 12,131 offset 8191  File: /u01/oradata/BOOK/book01p/users01.dbf (12)  Block: 131            Offsets: 8191 to 8191    Dba:0x03000083 ---------------------------------------------------------------  f9  <64 bytes per line> --//注意大小头问题,实际上修改偏移offset = 8191. BBED> p dba 12,131 tailchk ub4 tailchk                                 @8188     0xf9bb0601

相关推荐

热文推荐