近来做SAP EXPORT发现一个很奇葩的问题,一台主机上安装过9i,也装过11g,在导出前,这台主机将oracle切换为了9i,并做了RMAN数据库恢复 .
之后,为了做异构迁移,用SAPInst工具做export,发生如下错误:
MOS-01012 PROBLEM: '/sapmnt/BWD/exe/R3ldctl -l ./R3ldctlExport.log -p /instal/export/DATA/ ' returned with '2' which is not a defined as a success code.
查看了下R3ldctl.log,发现如下错误:
exec(): 0509-036 Cannot load program /sapmnt/Z3P/exe/R3ldctl because of the following errors:
0509-150 Dependent module libclntsh.so could not be loaded.
0509-022 Cannot load module libclntsh.so.
0509-026 System error: A file or directory in the path name does not exist.
奇怪的是oracle 9i的client中并无此文件,倒是在11g的client中发现了此文件,为何ABAP EXPORT过程中会用到这个文件?
后来想了下是因为这台机子上之前装过11g,而且SAP Kernel用的是适配oracle 11g的640_EXT2版本,所以exprot工具会去调用11g Client中的文件,于是出现了上述错误.