首页 > 数据库 > Oracle > [20240811]bbed使用问题.txt
[20240811]bbed使用问题.txt
--//我使用的bbed以前在11g下编译,我将相应文件打包放在一起,但是我在21c下解压,放在/home/oracle/bbed目录,执行时遇到问题:
--//参考链接:[20210311]如何建立bbed安装包.txt =>https://blog.itpub.net/267265/viewspace-2762464/
$ cd bbed
$ ls -l
total 63376
-rwxr-xr-x. 1 oracle oinstall 255300 2021-03-10 17:19:53 bbed
-rw-r--r--. 1 oracle oinstall 75 2021-03-11 09:24:38 bbed.par
-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
-rw-r--r--. 1 oracle oinstall 27 2021-03-11 08:55:01 cmd.par
-rw-r--r--. 1 oracle oinstall 1352 2021-03-11 09:00:23 filelist.txt
-rwxr-xr-x. 1 oracle oinstall 144776 2021-03-10 17:22:18 ld-linux-x86-64.so.2
-rwxr-xr-x. 1 oracle oinstall 3768 2021-03-10 17:22:12 libaio.so.1
-rwxr-xr-x. 1 oracle oinstall 53793394 2021-03-10 17:20:37 libclntsh.so.11.1
-rwxr-xr-x. 1 oracle oinstall 1726320 2021-03-10 17:22:06 libc.so.6
-rwxr-xr-x. 1 oracle oinstall 23360 2021-03-10 17:21:00 libdl.so.2
-rwxr-xr-x. 1 oracle oinstall 614992 2021-03-10 17:21:13 libm.so.6
-rwxr-xr-x. 1 oracle oinstall 7996693 2021-03-10 17:20:46 libnnz11.so
-rwxr-xr-x. 1 oracle oinstall 114352 2021-03-10 17:22:00 libnsl.so.1
-rwxr-xr-x. 1 oracle oinstall 149968 2021-03-10 17:21:23 libpthread.so.0
-rw-r--r--. 1 oracle oinstall 0 2024-08-11 09:32:26 log.bbd
-rw-r--r--. 1 oracle oinstall 4608 2021-03-11 09:26:20 lrmus.msb
-rw-r--r--. 1 oracle oinstall 4433 2021-03-11 09:26:20 lrmus.msg
$ strace -e open ./bbed
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/tls/x86_64/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/tls/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/x86_64/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/21.0.0/dbhome_1/lib/tls/x86_64/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/21.0.0/dbhome_1/lib/tls/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/21.0.0/dbhome_1/lib/x86_64/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = 3
--//找到!!oracle 21c下居然还有libclntsh.so.11.1这个文件,实际上这里面的11对应版本号11.
open("/u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
--//没有找到.以下为了观察方便做了一些分割
open("/lib/tls/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/tls/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/tls/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib64/tls/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib64/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib64/tls/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib64/tls/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib64/x86_64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib64/libnnz11.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
./bbed: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such file or directory
+++ exited with 127 +++
--//做了4组探查, 目录分别是 /lib, /usr/lib,/lib64 ,/usr/lib64/.
--//你可以发现文件libnnz11.so在本地目录是存在的,只不过没有找对应的目录.只要加入检索路径就ok了.
# cat /etc/ld.so.conf.d/bbed.conf
/home/oracle/bbed
# ldconfig
--//退出oracle会话重新登录。
$ strace -e open ./bbed
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/tls/x86_64/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/tls/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/x86_64/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/21.0.0/dbhome_1/lib/tls/x86_64/libclntsh.so.11.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
...
open("/home/oracle/bbed/libnnz11.so", O_RDONLY|O_CLOEXEC) = 3
...
open("/u01/app/oracle/product/21.0.0/dbhome_1/nls/data/lx20001.nlb", O_RDONLY) = 3
open("/u01/app/oracle/product/21.0.0/dbhome_1/rdbms/mesg/bbedus.msb", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/21.0.0/dbhome_1/rdbms/mesg/bbedus.msb", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/u01/app/oracle/product/21.0.0/dbhome_1/oracore/mesg/lrmus.msb", O_RDONLY) = 3
open("log.bbd", O_WRONLY|O_APPEND) = 4
Message 112 not found; No message file for product=RDBMS, facility=BBED
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7ffc673a5780} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)
--//可以发现bbedus.*文件,不会找本地的bbed目录。改变PATH环境变量也不行
--//$ export PATH=$PATH:/home/oracle/bbed/。
$ cp bbedus.ms* /u01/app/oracle/product/21.0.0/dbhome_1/rdbms/mesg/
$ ./bbed
Password:
BBED: Release 2.0.0.0.0 - Limited Production on Sun Aug 11 09:45:25 2024
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
--//测试OK.
--//补充测试:
$ ldd bbed
linux-vdso.so.1 => (0x00007fffb41e2000)
libclntsh.so.11.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntsh.so.11.1 (0x00007f98a283b000)
libnnz11.so => /home/oracle/bbed/libnnz11.so (0x00007f98a2445000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f98a2241000)
libm.so.6 => /lib64/libm.so.6 (0x00007f98a1f3f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f98a1d22000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f98a1b09000)
libc.so.6 => /lib64/libc.so.6 (0x00007f98a1748000)
libnnz21.so => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz21.so (0x00007f98a0f99000)
librt.so.1 => /lib64/librt.so.1 (0x00007f98a0d91000)
libaio.so.1 => /home/oracle/bbed/libaio.so.1 (0x00007f98a0b90000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f98a0975000)
/lib64/ld-linux-x86-64.so.2 (0x00007f98a6be6000)
libclntshcore.so.21.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntshcore.so.21.1 (0x00007f98a03c5000)
# mv /etc/ld.so.conf.d/bbed.conf /tmp/
# ldconfig
--//退出oracle用户再登录执行:
$ ldd bbed
linux-vdso.so.1 => (0x00007fff2cffb000)
libclntsh.so.11.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntsh.so.11.1 (0x00007f43dadc2000)
libnnz11.so => not found
~~~~~~~~~~~~~~~~~~~~~~~~~
libdl.so.2 => /lib64/libdl.so.2 (0x00007f43dab95000)
libm.so.6 => /lib64/libm.so.6 (0x00007f43da893000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f43da676000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f43da45d000)
libc.so.6 => /lib64/libc.so.6 (0x00007f43da09c000)
libnnz21.so => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz21.so (0x00007f43d98ed000)
librt.so.1 => /lib64/librt.so.1 (0x00007f43d96e5000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007f43d94e3000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f43d92c8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f43df16d000)
libclntshcore.so.21.1 => /u01/app/oracle/product/21.0.0/dbhome_1/lib/libclntshcore.so.21.1 (0x00007f43d8d18000)
--//实际上就是一个文件libnnz11.so没有发现.
$ ls -l libnnz11.so /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz*
-rwxr-xr-x. 1 oracle oinstall 7996693 2021-03-10 17:20:46 libnnz11.so
-rw-r--r--. 1 oracle oinstall 2216754 2021-07-07 08:15:14 /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz21.a
-rw-r--r--. 1 oracle oinstall 7118328 2021-07-07 08:15:44 /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnz21.so
-rw-r--r--. 1 oracle oinstall 22732192 2021-07-07 08:16:20 /u01/app/oracle/product/21.0.0/dbhome_1/lib/libnnzst.a
--//估计后面的数字代表oracle版本号,11表示11g,21表示21c的版本.
$ cp libnnz11.so /u01/app/oracle/product/21.0.0/dbhome_1/lib/
--//这样bbed一样可以正常使用.感觉linux也许出于安全考虑不会查找本地库文件.
--//补充说明,开始我是修改LD_LIBRARY_PATH环境变量,执行许多命令会报错,不知道为什么.不死心做了上面的尝试.
$ echo $LD_LIBRARY_PATH
/u01/app/oracle/product/21.0.0/dbhome_1/lib:/lib:/usr/lib
--//建议还是从10g拷贝对应文件ssbbded.o,sbbdpt.o,重新编译bbed,23c还是支持bbed的编译,当然我没有测试.
--//参考: [20121004]11G下编译bbed.txt=> https://blog.itpub.net/267265/viewspace-745588/
gcc: /u01/app/oracle11g/product/11.2.0/db_1/rdbms/lib/ssbbded.o: No such file or directory
gcc: /u01/app/oracle11g/product/11.2.0/db_1/rdbms/lib/sbbdpt.o: No such file or directory
$ grep bbed ${ORACLE_HOME}/rdbms/lib/ins_rdbms.mk
$(SILENT)$(ECHO) "Linking BBED utility (bbed)"
--//make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
--//有时间再做一次编译看看。目前暂时先拷贝libnnz11.so到相应目录.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3025259/ ,如需转载,请注明出处,否则将追究法律责任。