在数据库的迁移过程中,碰到了这个错误。
这次迁移主要是切换存储,不涉及Oracle版本和平台的变化,因此整个操作都很简单,唯一需要注意的是,ORACLE_HOME的位置也发生了变化。
在迁移过程中,采用tar的方法,将ORACLE_HOME整个迁移到目标位置,然后解开目录,所有工作都进行完毕后,发现Oracle无法登陆了。
bash-2.03$ sqlplus
ld.so.1: sqlplus: fatal: libclntsh.so.9.0: open failed: No such file or directory
Killed
不止是sqlplus命令,包括lsnrctl、exp等所有的可执行命令都会出现上面的错误信息。
怀疑是转移ORACLE_HOME过程中部分信息丢失导致的问题,解决问题的方法也很简单,只需要设置LD_LIBRARY_PATH参数指向$ORACLE_HOME/lib目录,就可以了:
bash-2.03$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
bash-2.03$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 2月 23 19:22:04 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL>
怀疑relink Oracle的可执行文件同样可以解决问题,不过由于是产品数据库,本着谨慎的原则,还是没有进行编译动作,将LD_LIBRARY_PATH环境变量添加到Oracle用户的启动shell脚本中,使得oracle用户登陆系统时自动设置这个参数。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-557499/ ,如需转载,请注明出处,否则将追究法律责任。