ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【问题处理】处理alert警告日志中出现无法找到libocr*.so文件问题

【问题处理】处理alert警告日志中出现无法找到libocr*.so文件问题

原创 Linux操作系统 作者:secooler 时间:2011-05-21 22:17:02 0 删除 编辑
  在Linux环境下遇到“Cannot determine all dependent dynamic libraries for /proc/self/exe”这个Bug,有关此Bug的更多描述信息请参考MOS的“Bug 4918834”。
  紧随其后的提示信息是,无法找到libocr10.so、libocrb10.so和libocrutl10.so文件。记录一下这个问题的处理方法。

1.alert中记录的问题现象
[oracle@secdb1 bdump]$ vi alert_secdb.log
……省略其他日志输出内容……
Starting ORACLE instance (normal)
Cannot determine all dependent dynamic libraries for /proc/self/exe
Unable to find dynamic library libocr10.so in search paths
RPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/ade/aime1_build2101/oracle/has/lib/:
LD_LIBRARY_PATH is not set!
The default library directories are /lib and /usr/lib
Unable to find dynamic library libocrb10.so in search paths
Unable to find dynamic library libocrutl10.so in search paths
Unable to find dynamic library libocrutl10.so in search paths
……省略其他日志输出内容……

2.影响范围
在Linux平台上关于上面的错误对数据库的使用没有严重影响,可以暂时忽略这个报错。

3.问题原因
这个提示信息是Oracle在Linux平台上的一个Bug,关于个Bug可以在MOS的“Bug 4918834”文章中得到详细信息。

4.处理方法
1)第一种处理方法:忽略这个报错
因为这个提示信息对数据库系统的使用没有太大的影响,因此最简单的处理方法便是“置之不理”。

2)第二种处理方法:通过设置LD_LIBRARY_PATH环境变量解决
(1)为了保证alert文件中记录信息的完美性,我们可以在Linux操作系统中,通过设置环境变量LD_LIBRARY_PATH指向“$ORACLE_HOME/lib”的方法来处理。
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
可以将上面的信息放在“.bash_profile”文件中使之一直生效。

(2)重新启动数据库
sys@secdb> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@secdb> startup;
ORACLE instance started.

Total System Global Area  314572800 bytes
Fixed Size                  1219184 bytes
Variable Size              92276112 bytes
Database Buffers          218103808 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.

(3)观察alert日志
相关报错信息已经不存在,一份暂时完美的alert输出信息展现在我们面前。

3)第三种处理方法:拷贝相关文件到/usr/lib目录下
既然提示找不到libocr10.so、libocrb10.so和libocrutl10.so这三个文件(这些文件存放在$ORACLE_HOME/lib目录下),我们也可以通过将这三个文件手工拷贝到/usr/bin目录并调整权限的方法来解决这个问题。
secdb@secdb1 /home/oracle$ su - root
Password:
[root@secdb1 ~]# cp /u01/app/oracle/product/10.2.0/db_1/lib/libocr* /usr/lib
[root@secdb1 ~]# chown -R oracle:oinstall /usr/lib/libocr*
[root@secdb1 ~]# chmod -R 755 /usr/lib/libocr*

通过重启数据库的方法验证调整效果:成功,不再存在相关报错。

5.小结
  建议使用Linux作为Oracle数据库的操作系统的朋友们检查一下alert警告日志中是否存在“Cannot determine all dependent dynamic libraries for /proc/self/exe”关键字。可以依照本文提供给大家的方法进行处理。不放过alert中任何蛛丝马迹。

Good luck.

secooler
11.05.21

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-696029/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE 总监,阿里云MVP,北京大学理学硕士,恩墨学院创始人,教育专家,中国区 Cloudera 首位官方授权大数据讲师,金牌培训专家,BDA大数据联盟创始人,OCM联盟创始人,ACCUG创始人、ACOUG核心专家,Blogger。

注册时间:2008-03-16

  • 博文量
    797
  • 访问量
    8199296