ASMCMD fails to start on module libnnz10.so, permission denied

来源:互联网 发布:windows更新后黑屏 编辑:程序博客网 时间:2024/05/16 04:52

10.2.0.5 on oracle linux 5.8使用asmcmd出现以下错误:

[oracle@sdb2 ~]$ export ORACLE_SID=+ASM1

[oracle@sdb2 ~]$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

[oracle@sdb2 ~]$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/asm


[oracle@sdb2 ~]$ asmcmd
install_driver(Oracle) failed: Can't load '/u01/app/oracle/product/10.2.0/asm/perl/lib/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/asm/lib32/libnnz10.so: cannot restore segment prot after reloc: Permission denied at /u01/app/oracle/product/10.2.0/asm/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 /u01/app/oracle/product/10.2.0/asm/bin/asmcmdcore line 5953


转到底部转到底部

In this Document
  Symptoms
  Changes
  Cause
  Solution
  References


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.

SYMPTOMS

Immediately 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 5953

CHANGES

SELINUX policy "Enforcing" causes the permission problem.

CAUSE

You 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.img

Another example as follows:

/etc/selinux/config 

and add: 
selinux=0 
SELINUX=disabled


For additional information about Red Hat SELinux, see: 
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinux-guide/

REFERENCES

BUG:6342166 - DOCUMMENT SELINUX WORKAROUND FOR RHEL 5 / OEL 5 IN RELEASE NOTES
NOTE:454196.1 - ./sqlplus: error on libnnz11.so: cannot restore segment prot after reloc


0 0
原创粉丝点击