上午一个同事在安装客户端后,出现了问题,错误提示信息如下:
[oracle@filesvr1 bin]$ ./sqlplus /nolog
./sqlplus: error while loading shared libraries: libclntsh.so.9.0: cannot open shared object file: No such file or directory
具体情况如下:
业务服务器由于硬件原因,需要更换一台服务器,在新服务器上同样要安装Oracle 9i客户端。 由于新服务器和旧服务器的linux版本相同,所以考虑将老服务器上的Oracle客户端直接copy到新服务器上即可:
[oracle@filesvr1 oracle]$ scp -pr oracle@172.16.3.85:/opt/oracle/product ./
oracle@172.16.3.85's password:
root.sh 100% 10 30.5KB/s 00:00
areasQueries.jar 100% 52KB 5.0MB/s 00:00
generalQueries.jar 100% 72KB 8.0MB/s 00:00
rgsQueries.jar 100% 54KB 8.5MB/s 00:00
globalVarQueries.jar 100% 6707 2.0MB/s 00:00
SpawnQueries.jar 100% 10KB 3.5MB/s 00:00
SidQueries.jar 100% 57KB 7.6MB/s 00:00
RunningProcessesQuery.jar 100% 52KB 8.5MB/s 00:00
netQueries.jar 100% 21KB 4.7MB/s 00:00
………
拷贝完成之后,设置环境变量:
[oracle@filesvr1 oracle]$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
ORACLE_HOME=/opt/oracle/product/9.2.0
ORACLE_BASE=/opt/oracle
export ORACLE_HOME ORACLE_BASE
LD_LIBRARY_PATH=/opt/oracle/product/9.2.0/lib:/lib:/usr/lib:/usr/local/lib
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/sbin:/usr/sbin
export PATH LD_LIBRARY_PATH NLS_LANG
admin=$ORACLE_BASE/admin/$ORACLE_SID/udump
export admin
测试客户端命令:
[oracle@filesvr1 bin]$ ./sqlplus /nolog
./sqlplus: error while loading shared libraries: libclntsh.so.9.0: cannot open shared object file: No such file or directory
这就很奇怪了,既然环境变量设置正确,为什么还会提示找不到libclntsh.so.9.0文件呢?
到 $ORACLE_HOME/lib目录下查找,发现libclntsh.so.9.0文件存在,下面我们使用
ldd 命令查看sqlplus的依赖的共享库信息:
[oracle@filesvr1 oracle]$ ldd product/9.2.0/bin/sqlplus
libclntsh.so.9.0 => not found
libwtc9.so => not found
libdl.so.2 => /lib/libdl.so.2 (0xb75d9000)
libm.so.6 => /lib/tls/libm.so.6 (0xb75b7000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb75a6000)
libnsl.so.1 => /lib/libnsl.so.1 (0xb7591000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7459000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb75eb000)
发现,确实提示找不到libclntsh.so.9.0相关文件,看来是环境变量的设置没有生效,问题一时陷入困境。
冥思苦想,偶然间发现oracle用户的主目录不是/opt/oracle, 我晕晕晕。。。
[oracle@filesvr1 oracle]$ pwd
/home/oracle
怪不得环境设置不生效呢,原来SA在安装系统之后建立oracle帐户时,将oracle的用户目录建成了/home/oracle,将oracle用户删掉重建,然后重新拷贝oracle客户端文件、设置环境变量即可。
经验教训: 虽然公司的oracle安装规范是将oracle用户的主目录建在/opt/oracle, 但是SA也许并不知道这一点,尤其是一个新的SA , SA不可靠哦 ^_^
看来Oracle用户建立和相关设置最好还是DBA来完成吧。
--The End--
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7220098/viewspace-196158/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7220098/viewspace-196158/