这里我们显式取消设置 LD_ASSUME_KERNEL 而不是仅仅通过将其标为注释语句来取消其设置,这是为了处理这样的情况:用户在其环境(
执行srvctl时报错
[Oracle@rac01 bin]$ srvctl
/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
srvctl无法启动
要解决上面的问题 1,编辑 rac01,rac02下的 $ORACLE_BASE/crs/bin目录下的vipca,以撤消对 LD_ASSUME_KERNEL 的设置。
set nu 在第 120 行左右的 IF 语句之后,添加一条 unset 命令,从而确保 LD_ASSUME_KERNEL 未经过设置,
if [ "$arch" = "i686" -o "$arch" = "ia64" ]
then
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL
fi
对于 srvctl(在所有节点的 CRS bin 目录,以及ORACLE_HOME/bin 和 ASM bin 目录下),通过在第 168 行左右添加一行来取消设置 LD_ASSUME_KERNEL,应如下所示:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL <<== Line to be added
注:对所有节点重新编辑这些文件:
/bin/srvctl # ()
应用 10.2.0.2 或 10.2.0.3 补丁集后,这些补丁集仍将包括这些对 OEL5、RHEL5 或 SLES10 来说多余的设置。此问题是由开发引起的,在 10.2.0.4 补丁集中得以修复。
另请注意,这里我们显式取消设置 LD_ASSUME_KERNEL 而不是仅仅通过将其标为注释语句来取消其设置,,这是为了处理这样的情况:用户在其环境(登录 shell)中设置了该变量。