问题背景:
将oracle10.2.0.4 (32bit)从一台机器rhel5.6复制到另一台机器rhel6.3后,sqlplus/rman等命令都失败,错误信息如下:
[oracle@qht115 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Aug 30 12:41:06 2018
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
oracleorcl: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
ERROR:
ORA-12547: TNS:lost contact
检查一下libaio相关的包,如果libaio-devel没有有话先安装一下:
[root@localhost yum.repos.d]# rpm -aq | grep libaio
libaio-0.3.107-10.el6.x86_64
libaio-devel-0.3.107-10.el6.x86_64
查找一下libaio的位置,libaio.so.1存在于/u01/app/oracle/product/10201/lib/stubs以及/lib64之中
[root@localhost /]# find . -name libaio*
./u01/app/oracle/product/10201/lib/stubs/libaio.so.1
./u01/app/oracle/product/10201/lib/stubs/libaio.so
./u01/app/oracle/product/10201/lib/stubs/libaio-2.3.2-stub.so
./usr/include/libaio.h
./usr/share/doc/libaio-0.3.107
./usr/lib64/libaio.so
./usr/lib64/libaio.a
./lib64/libaio.so.1.0.0
./lib64/libaio.so.1
./lib64/libaio.so.1.0.1
/u01/app/oracle/product/10201/lib/stubs这个目录是临时的,所以忽略它,而lib64的所有包都是用在64位的软件中使用的,而我的oracle是32位的。
解决的方法是将oracle 10g所需要的包都重新检查安装一下:
yum install -y glibc-2.12-1.107.el6.x86_64 glibc-devel-2.12-1.107.el6.i686 glibc-2.12-1.107.el6.i686 glibc-devel-2.12-1.107.el6.x86_64 glib2-2.22.5-7.el6.x86_64 glib2-devel-2.22.5-7.el6.x86_64 libaio-0.3.107-10.el6.x86_64 libaio-devel-0.3.107-10.el6.x86_64 libaio-devel-0.3.107-10.el6.i686 libaio-0.3.107-10.el6.i686 gcc-objc-4.4.7-3.el6.x86_64 gcc-gnat-4.4.7-3.el6.x86_64 gcc-objc++-4.4.7-3.el6.x86_64 gcc-4.4.7-3.el6.x86_64 gcc-java-4.4.7-3.el6.x86_64 gcc-gfortran-4.4.7-3.el6.x86_64 gcc-c++-4.4.7-3.el6.x86_64 libgcc-4.4.7-3.el6.x86_64 libgcc-4.4.7-3.el6.i686 compat-glibc-2.5-46.2.x86_64 compat-glibc-headers-2.5-46.2.x86_64 compat-gcc-34-3.4.6-19.el6.x86_64 compat-gcc-34-g77-3.4.6-19.el6.x86_64 compat-gcc-34-c++-3.4.6-19.el6.x86_64 compat-libstdc++-296-2.96-144.el6.i686 compat-libstdc++-33-3.2.3-69.el6.x86_64 compat-libstdc++-33-3.2.3-69.el6.i686 compat-gcc-34-g77-3.4.6-19.el6.x86_64 compat-gcc-34-3.4.6-19.el6.x86_64 compat-gcc-34-c++-3.4.6-19.el6.x86_64 compat-db-4.6.21-15.el6.i686 compat-db43-4.3.29-15.el6.x86_64 compat-db43-4.3.29-15.el6.i686 compat-db42-4.2.52-15.el6.i686 compat-db-4.6.21-15.el6.x86_64 compat-db42-4.2.52-15.el6.x86_64 libXp-devel-1.0.0-15.1.el6.i686 libXpm-3.5.10-2.el6.x86_64 libXpm-devel-3.5.10-2.el6.i686 libXp-1.0.0-15.1.el6.x86_64 libXpm-3.5.10-2.el6.i686 libXpm-devel-3.5.10-2.el6.x86_64 libXp-devel-1.0.0-15.1.el6.x86_64 libXp-1.0.0-15.1.el6.i686 libXt-1.1.3-1.el6.i686 openmotif-2.3.3-5.el6_3.x86_64 openmotif22-2.2.3-19.el6.x86_64 openmotif22-2.2.3-19.el6.i686 openmotif-devel-2.3.3-5.el6_3.x86_64 openmotif-devel-2.3.3-5.el6_3.i686 openmotif-2.3.3-5.el6_3.i686
执行完过后,/usr/lib下面就有了libaio.so.1了
[root@localhost /]# find . -name libaio*
./u01/app/oracle/product/10201/lib/stubs/libaio.so.1
./u01/app/oracle/product/10201/lib/stubs/libaio.so
./u01/app/oracle/product/10201/lib/stubs/libaio-2.3.2-stub.so
./lib/libaio.so.1.0.0
./lib/libaio.so.1
./lib/libaio.so.1.0.1
./usr/include/libaio.h
./usr/share/doc/libaio-0.3.107
./usr/lib/libaio.so
./usr/lib/libaio.a
./usr/lib64/libaio.so
./usr/lib64/libaio.a
./lib64/libaio.so.1.0.0
./lib64/libaio.so.1
./lib64/libaio.so.1.0.1
至此问题解决了:
[oracle@qht115 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Aug 30 13:52:20 2018
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options