您的位置:首页 > 移动开发 > Objective-C

10g RAC srvctl 命令报 libpthread.so.0 cannot open shared object file No such file or directory

2011-08-18 16:49 573 查看
运行srvctl 命令报错:

[oracle@rac1 u01]$ srvctl status nodeapps -n rac1

/u01/app/oracle/product/10.2.0/db_1/jdk/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

在安装CRS的时候,已经修改了vipca 和ORA_CRS_HOME下srvctl命令的中参数。 即unset LD_ASSUME_KERNEL参数。

但还是报了这个错误,后来用which srvctl命令才发现了问题的所在:

[oracle@rac1 ~]$ which srvctl

/u01/app/oracle/product/10.2.0/db_1/bin/srvctl

系统调用的是ORACLE_HOME下的srvctl。在安装完DB后并没有注释该文件中的LD_ASSUME_KERNEL参数。所以有两种解决办法 :

1:修改ORACLE_HOME下的srvctl,注释掉LD_ASSUME_KERNEL参数;

2:让系统调用ORA_CRS_HOME下的srvctl也就能避免错误了,即将ORA_CRS_HOME放在ORACLE_HOME的前面即可。

修改环境变量:
[oracle@rac1 ~]$ vi ~/.bash_profile
...
export PATH=$PATH:$ORA_CRS_HOME/bin:$ORACLE_HOME/bin:/usr/bin:/bin
...

重新开了一个窗口,验证系统调用的srvctl 的位置:

[oracle@rac2 ~]$
which srvctl
/u01/app/oracle/product/crs/bin/srvctl

*该错误的原因是,Linux 内核的这些版本会采用 Oracle 以前的一个解决办法,即在vipca 和 srvctl 中使用 LD_ASSUME_KERNEL 设置来修补 Linux 线程中的一个原有缺陷。

而这个解决办法在 OEL5、RHEL5 或 SLES10 上不再有效,故而产生错误,该错误在 10.2.0.4 补丁集中得以修复。

所以一般需注释以下文件中LD_ASSUME_KERNEL参数:

<ORA_CRS_HOME>/bin/vipca

<ORA_CRS_HOME>/bin/srvctl

<RDBMS_HOME>/bin/srvctl (If exists)

<ASM_HOME>/bin/srvctl # (If exists)

注释的方法有两种:

(1)使用unset

LD_ASSUME_KERNEL=2.4.19

export LD_ASSUME_KERNEL

unset LD_ASSUME_KERNEL

(2)直接注释掉:

#LD_ASSUME_KERNEL=2.4.19

#export LD_ASSUME_KERNEL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐