[20241104]21c下bbed编译.txt

来源:这里教程网 时间:2026-03-03 20:53:15 作者:

[20241104]21c下bbed编译.txt --//前一段时间在21c下使用bbed遇到的问题,我想偷懒直接拷贝11g下自己做好的安装文件,参考链接:[20240811]bbed使用问题.txt $ cp  libnnz11.so /u01/app/oracle/product/21.0.0/dbhome_1/lib/ $ locate libnnz11.so /home/oracle/bbed/libnnz11.so /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz11.so --//这样可以正常运行,但是使用x命令存在问题,还是选择重新编译bbed,记录在21c下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.测试: SCOTT@book01p> select rowid,dept.* from dept where deptno= 10; ROWID                  DEPTNO DNAME                          LOC ------------------ ---------- ------------------------------ ------------- AAASmfAAMAAAACDAAA         10 ACCOUNTING                     NEW YORK 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 BBED> set dba 12,131         DBA             0x03000083 (50331779 12,131) BBED> x /rncc *kdbr[1] rowdata[44]                                 @8140 ----------- bbed: symbol lookup error: bbed: undefined symbol: kdrrea2 --//安装版本出现以上错误,不知道为什么报错。 $ strace  -Ttt -y -f -p 4084 Process 4084 attached 15:59:17.333584 read(0</dev/pts/8>, "x /rncc *kdbr[1]\n", 1024) = 17 <6.923919> 15:59:24.257847 write(7</home/oracle/bbed/log.bbd>, "BBED> x /rncc *kdbr[1]\n", 23) = 23 <0.000028> 15:59:24.257972 mmap(NULL, 143360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7f32373000 <0.000044> 15:59:24.258192 write(1</dev/pts/8>, "rowdata[44]                     "..., 54) = 54 <0.000031> 15:59:24.258276 write(1</dev/pts/8>, "-----------\n", 12) = 12 <0.000011> 15:59:24.258324 write(7</home/oracle/bbed/log.bbd>, "rowdata[44]                     "..., 54) = 54 <0.000013> 15:59:24.258365 write(7</home/oracle/bbed/log.bbd>, "-----------\n", 12) = 12 <0.000010> 15:59:24.258418 writev(2</dev/pts/8>, [{"bbed", 4}, {": ", 2}, {"symbol lookup error", 19}, {": ", 2}, {"bbed", 4}, {": ", 2}, {"undefined symbol: kdrrea2", 25}, {"", 0}, {"", 0}, {"\n", 1}], 10) = 59 <0.000028> 15:59:24.258494 exit_group(127)         = ? 15:59:24.259153 +++ exited with 127 +++ --//还是选择重新编译bbed。 4.编译bbed: $ cd $ORACLE_HOME/rdbms/lib $ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed Linking BBED utility (bbed) rm -f /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/bbed /u01/app/oracle/product/21.0.0/dbhome_1/bin/orald -o /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/bbed -m64 -z noexecstack -Wl,--disable-new-dtags   -L/u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/ -L/u01/app/oracle/product/21.0.0/dbhome_1/lib/ -L/u01/app/oracle/product/21.0.0/dbhome_1/lib/stubs/  /u01/app/oracle/product/21.0.0/dbhome_1/lib/s0main.o /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/ssbbded.o /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/sbbdpt.o `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -ldbtools -lclntsh -lclntshcore  `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lnro `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lnnz21 -lzt -lztkg -lztkg -lclient -lnnetd  -lcommon -lgeneric -lmm -lsnls -lnls  -lcore -lsnls -lnls -lcore -lsnls -lnls -lxml -lcore -lunls -lsnls -lnls -lcore -lnls `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lnro `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lclient -lnnetd  -lcommon -lgeneric   -lsnls -lnls  -lcore -lsnls -lnls -lcore -lsnls -lnls -lxml -lcore -lunls -lsnls -lnls -lcore -lnls -lclient -lnnetd  -lcommon -lgeneric -lsnls -lnls  -lcore -lsnls -lnls -lcore -lsnls -lnls -lxml -lcore -lunls -lsnls -lnls -lcore -lnls   `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/21.0.0/dbhome_1/lib -lm    `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/21.0.0/dbhome_1/lib /usr/bin/ld: cannot find /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/ssbbded.o: No such file or directory /usr/bin/ld: cannot find /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/sbbdpt.o: No such file or directory make: *** [/u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/bbed] Error 1 --//缺少sbbdpt.o,ssbbded.o两个文件。从旧机器上拷贝上来,10g的机器现在很少了,看来要单独保留这2个文件包括bbedus.ms*。 # mv /mnt/windows/*.o /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib */ # cd /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib # chown oracle:oinstall sbbdpt.o # chown oracle:oinstall ssbbded.o # chmod 644 /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/ssbbded.o # chmod 644 /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/sbbdpt.o --//还需要拷贝10g下的bbedus.ms*文件到/u01/app/oracle/product/21.0.0/dbhome_1/rdbms/mesg/目录,过程略。 $ ls -l bbedus.ms* -rw-r--r--. 1 oracle oinstall  8704 2021-03-11 09:24:22 bbedus.msb -rwxr-xr-x. 1 oracle oinstall 10299 2021-03-11 09:24:22 bbedus.msg --//开始编译bbed。 $ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed Linking BBED utility (bbed) rm -f /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/bbed /u01/app/oracle/product/21.0.0/dbhome_1/bin/orald -o /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/bbed -m64 -z noexecstack -Wl,--disable-new-dtags   -L/u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/ -L/u01/app/oracle/product/21.0.0/dbhome_1/lib/ -L/u01/app/oracle/product/21.0.0/dbhome_1/lib/stubs/  /u01/app/oracle/product/21.0.0/dbhome_1/lib/s0main.o /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/ssbbded.o /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/lib/sbbdpt.o `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -ldbtools -lclntsh -lclntshcore  `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lnro `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lnnz21 -lzt -lztkg -lztkg -lclient -lnnetd  -lcommon -lgeneric -lmm -lsnls -lnls  -lcore -lsnls -lnls -lcore -lsnls -lnls -lxml -lcore -lunls -lsnls -lnls -lcore -lnls `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lnro `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/ldflags`    -lncrypt -lnsgr -ln -lnl -lngsmshd -lclient -lnnetd  -lcommon -lgeneric   -lsnls -lnls  -lcore -lsnls -lnls -lcore -lsnls -lnls -lxml -lcore -lunls -lsnls -lnls -lcore -lnls -lclient -lnnetd  -lcommon -lgeneric -lsnls -lnls  -lcore -lsnls -lnls -lcore -lsnls -lnls -lxml -lcore -lunls -lsnls -lnls -lcore -lnls   `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/21.0.0/dbhome_1/lib -lm    `cat /u01/app/oracle/product/21.0.0/dbhome_1/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/21.0.0/dbhome_1/lib --//OK! $ mv bbed /u01/app/oracle/product/21.0.0/dbhome_1/bin/ ‘bbed’ -> ‘/u01/app/oracle/product/21.0.0/dbhome_1/bin/bbed’ 5.测试: export RLWRAP=$(which rlwrap) export BBED=$(which bbed) $ type rlbbed rlbbed is a function rlbbed () {     cd /home/oracle/bbed;     $RLWRAP -s 9999 -c -r -i -f /usr/local/share/rlwrap/bbed $BBED parfile=bbed.par cmdfile=cmd.par } --//我喜欢定义函数,也可以定义别名: alias rlbbed='cd /home/oracle/bbed;$RLWRAP -s 9999 -c -r -i $BBED parfile=bbed.par cmdfile=cmd.par' $ cat bbed.par blocksize=8192 listfile=filelist.txt mode=edit PASSWORD=blockedit SPOOL=Y $ cat cmd.par set count 64 set width 160 SYS@book> select to_char(file#,'9999')||chr(32)||name c80 from v$dbfile order by file#; C80 --------------------------------------------------------------------------------     1 /u01/oradata/BOOK/system01.dbf     3 /u01/oradata/BOOK/sysaux01.dbf     4 /u01/oradata/BOOK/undotbs01.dbf     5 /u01/oradata/BOOK/pdbseed/system01.dbf     6 /u01/oradata/BOOK/pdbseed/sysaux01.dbf     7 /u01/oradata/BOOK/users01.dbf     8 /u01/oradata/BOOK/pdbseed/undotbs01.dbf     9 /u01/oradata/BOOK/book01p/system01.dbf    10 /u01/oradata/BOOK/book01p/sysaux01.dbf    11 /u01/oradata/BOOK/book01p/undotbs01.dbf    12 /u01/oradata/BOOK/book01p/users01.dbf 11 rows selected. --//拷贝以上内容到filelist.txt。 $ rlbbed BBED: Release 2.0.0.0.0 - Limited Production on Mon Nov 4 16:22:35 2024 Copyright (c) 1982, 2021, Oracle and/or its affiliates.  All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> set count 64         COUNT           64 BBED> set width 160         WIDTH           160 BBED> set dba 12,131         DBA             0x03000083 (50331779 12,131) 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 5.收尾: $ diff <(ldd $BBED| sort ) <(ldd /home/oracle/bbed.OLD/bbed|sort) 1,12c1,14 <       /lib64/ld-linux-x86-64.so.2 (0x00007fe79a2ca000) <       libaio.so.1 => /lib64/libaio.so.1 (0x00007fe79466a000) <       libclntshcore.so.21.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntshcore.so.21.1 (0x00007fe79596e000) <       libclntsh.so.21.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntsh.so.21.1 (0x00007fe795f1f000) <       libc.so.6 => /lib64/libc.so.6 (0x00007fe79408f000) <       libdl.so.2 => /lib64/libdl.so.2 (0x00007fe794f94000) <       libm.so.6 => /lib64/libm.so.6 (0x00007fe794c91000) <       libnnz21.so => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz21.so (0x00007fe7951c0000) <       libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe794a75000) <       libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fe794450000) <       librt.so.1 => /lib64/librt.so.1 (0x00007fe79486d000) <       linux-vdso.so.1 =>  (0x00007fffaf1d7000) --- >       /lib64/ld-linux-x86-64.so.2 (0x00007f728ac07000) >       libaio.so.1 => /lib64/libaio.so.1 (0x00007f7284bb0000) >       libclntshcore.so.21.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntshcore.so.21.1 (0x00007f72843e5000) >       libclntsh.so.11.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntsh.so.11.1 (0x00007f728685c000) >       libc.so.6 => /lib64/libc.so.6 (0x00007f7285769000) >       libdl.so.2 => /lib64/libdl.so.2 (0x00007f7286262000) >       libm.so.6 => /lib64/libm.so.6 (0x00007f7285f60000) >       libnnz11.so => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz11.so (0x00007f728648e000) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >       libnnz21.so => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz21.so (0x00007f7284fba000) >       libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f7285b2a000) ~~~~~~~~~~~~~~~~~~~~~~~ >       libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7285d43000) >       libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7284995000) >       librt.so.1 => /lib64/librt.so.1 (0x00007f7284db2000) >       linux-vdso.so.1 =>  (0x00007ffdae5fe000) --//能力有限,看不出怎么问题,但是现在旧版本的bbed也可以正常使用,不知道为什么。 --//删除前面拷贝的库文件。 --//$ rm /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz11.so

相关推荐