报错信息如下:
AutoConfig Services Phase
Running Service Process 4 of 8 for AD_TOP
Executing script in InstantiateFile:
/u01/TEST01/apps/tech_st/10.1.3/perl/bin/perl -I /u01/TEST01/apps/tech_st/10.1.3/perl/lib/5.8.3 -I /u01/TEST01/apps/tech_st/10.1.3/perl/lib/site_perl/5.8.3 -I /u01/TEST01/apps/apps_st/appl/au/12.0.0/perl -I /u01/TEST01/apps/tech_st/10.1.3/Apache/Apache/mod_perl/lib/site_perl/5.8.3/i686-linux-thread-multi /u01/TEST01/inst/apps/EBS_testapp2/admin/install/adupdlobs.pl
script returned:
****************************************************
.end std out.
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
.end err out.
*********************
分析过程:
这个错误,看上去像是操作系统缺少了rpm包,检查了下操作系统的rpm包,发现客户只安装了64为的rpm包,缺少很多32位的包,于是手工安装了。但是安装完成之后,很不幸的错误依旧出现。
参考oracle社区的这篇文档 https://community.oracle.com/thread/2534309?tstart=0
在应用层尝试执行:$ORACLE_HOME(10.1.2的)/appsutil/clone/adlnktools.sh 发现make日志报错,信息差不多如下:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/32/libgcc_s.so: undefined reference to `__stack_chk_fail@GLIBC_2.4'
collect2: ld returned 1 exit status
去metalink搜了下,发现是客户并没有按照 Oracle EBS R12(12.1.1)基于Linux x86 平台的安装及升级文档 (文档 ID 1535957.1)
的标准文档来做,需要做如下步骤:
安装补丁在应用服务器10g (10.1.2 and 10.1.3) Oracle Homes (只对Oracle Linux 6 and RHEL 6)
在安装完成后,用户必须通过安装补丁12415211更新10.1.2 and 10.1.3 Oracle Homes里的存根库文件。
用户必须将指定的文件拷贝到指定的10.1.2 Oracle Home下的目录:
$ cd <12.1_INSTALL_DIR>/apps/tech_st/10.1.2/lib $ cp -p -R stubs stubsORIG $ cd stubs $ cp <PATCH_INSTALL_DIR>/12415211/files/lib/stubs/libgcc_s-2.3.2-stub.so . $ ln -s libgcc_s-2.3.2-stub.so libgcc_s.so.1 $ ln -s libgcc_s.so.1 libgcc_s.so |
然后加载环境变量文件APPS<CONTEXT_NAME>.env ,用户应该通过执行$ORACLE_HOME/appsutil/clone/adlnktools.sh脚本重新链接所有10.1.2的可执行文件并且确保make日志文件输出中没有错误。
--我做完上面这块就好了。。
在10.1.3 Oracle Home上的指令如下:
$ cd <12.1_INSTALL_DIR>/apps/tech_st/10.1.3/lib $ cp -p -R stubs stubsORIG $ cd stubs $ cp <PATCH_INSTALL_DIR>/12415211/files/lib/stubs/libgcc_s-2.3.2-stub.so . $ ln -s libgcc_s-2.3.2-stub.so libgcc_s.so.1 $ ln -s libgcc_s.so.1 libgcc_s.so |
然后用户应该通过执行<INSTALL_DIR>/apps/tech_st/10.1.3/appsutil/clone/adlnkweboh.sh脚本重新链接sqlplus并且确保make日志文件输出中没有错误。
对应用服务器10.1.3创建软链接到需要的库文件 (只对Oracle Linux 6 and RHEL 6)
在安装后,用户可能会注意到Apache httpd进程启动失败报错:
error while loading shared libraries: libdb-4.3.so: cannot open shared object file: No such file or directory (当加载共享库文件时出错:libdb-4.3.so:不能打开共享对象文件:没有这个文件或目录 |
用户(有ROOT权限)应该用以下命令创建一个针对这个库文件的软链接:
# cd /usr/lib # ln -s libdb-4.7.so libdb-4.3.so |
总结:
主要是克隆没有按照标准文档准备源环境,最终导致目标环境克隆出错。