10g asmcmd无法使用,报can't load Oracle.so
网友咨询 10g的asm 设置了oracle_sid=+ASM1,后依然无法使用asmcmd登录,报错如下install_driver(Oracle) failed: Can't load '/u01/app/oracle/product/10.2.0_1/perlb/site_perl/5.8.3/i686-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: /u01/app/oracle/product/10.2.0_1b32bnnz10.so: cannot restore segment prot after reloc: Permission denied at /u01/app/oracle/product/10.2.0_1/perlb/5.8.3/i686-linux-thread-multi/DynaLoader.pm line 229.
at (eval 2) line 3
Compilation failed in require at (eval 2) line 3.
Perhaps a required shared library or dll isn't installed where expected
at /u01/app/oracle/product/10.2.0_1/bin/asmcmdcore line 5953
APPLIES TO:Oracle Server Enterprise Edition - Version: 11.1.0.6 to 11.1.0.7
This problem can occur on any platform.
ASM - Version: 11.1.0.6 to 11.1.0.7
Red Hat Advanced Server
Linux x86-64
RHEL 5 and OEL 5 only. RHEL 4 and OEL 4 are not affected. This is because of the more aggressive way that SELinux policies are enforced in RHEL 5 and OEL 5.
SYMPTOMSImmediately after a successful ASM installation, ASMCMD will not start:$ echo $ORACLE_HOME
/opt/oracle/10.2.0
$ export ORACLE_SID=+ASM
$ asmcmd
install_driver(Oracle) failed: Can't load '/opt/oracle/10.2.0/perl/lib/site_perl/5.8.3/i686-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: /opt/oracle/10.2.0/lib32/libnnz10.so: cannot restore segment prot after reloc: Permission denied at /opt/oracle/10.2.0/perl/lib/5.8.3/i686-linux-thread-multi/DynaLoader.pm line 229.
at (eval 2) line 3
Compilation failed in require at (eval 2) line 3.
Perhaps a required shared library or dll isn't installed where expected
at /opt/oracle/10.2.0/bin/asmcmdcore line 5953CHANGESSELINUX policy "Enforcing" causes the permission problem.CAUSEYou are encountering unpublished Bug 6140224, "SQLPLUS FAILS TO LOAD LIBNNZ11.SO WITH SELINUX ENABLED ON EL5/RHEL5". Oracle Developement is actively working on this compiler version compatibility issue (ICC compilers that are used for several libraries, such as LIBNNZ10.SO and LIBNNZ11.SO) in the RHEL 5 and OEL 5 environments.
This is fixed in the forthcoming version 11.2. No fix is available for the current versions. Please use the workaround presented below.SOLUTION
Switch the SELinux from the default "Enforcing" mode that it is running in, to the "Permissive" mode.
Commands, as root:
======================
getenforce (returns "Enforcing")
setenforce 0
getenforce (returns "Permissive")
The commands for the workaround are immediate, and will remain in effect until the next reboot.Please also ensure that SELinux "Permissive" enforcing is set at boot time by adding "enforcing=0" to the kernel boot line. An example of setting the SELinux mode to permissive from GRUB could be as follows:
title Red Hat Enterprise Linux ES (2.6.18-8.EL)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.EL ro root=/dev/VolGroup00/LogVol00 rhgb quiet enforcing=0
initrd /initrd-2.6.18-8.EL.imgAnother example as follows:
/etc/selinux/config
and add:
selinux=0
SELINUX=disabled
再次提醒,安装Oracle强烈建议关闭selinux
页:
[1]