热烈祝贺,Dodd的space开张!!! 不想当版主的puber不是好puber!!!

错误 error while loading shared libraries: libclntsh.so.9.0 的解决

上一篇 / 下一篇  2008-02-28 17:08:58 / 个人分类:我是一名DBA

上午一个同事在安装客户端后,出现了问题,错误提示信息如下:

 

 

[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--


TAG: error libraries: loading shared while 错误

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-13  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2289
  • 日志数: 27
  • 图片数: 1
  • 建立时间: 2008-01-22
  • 更新时间: 2008-09-26

RSS订阅

Open Toolbar