在对oraccle ASM管理遇见如下问题:
[root@rac1 bin]# asmcmd
install_driver(Oracle) failed: Can't load '/opt/oracle/product/database/perl/lib/site_perl/5.8.3/i686-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: /opt/oracle/product/database/lib/libnnz10.so: cannot restore segment prot after reloc: Permission denied at /opt/oracle/product/database/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/product/database/bin/asmcmdcore line 5953
据查处理方法如下:
来是SELINUX导致的,我没有禁止SELINUX,虽然Oracle的文档明确写到要禁用SELINUX,但是我以前从没有因为SELINUX导致问题,所以经常忽略了这一步,这不这次就出现了这个问题

解决方法,禁止掉SELINUX或者SELINUX的级别设置到Permissive

修改/etc/sysconfig/selinux文件

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing

将这里的enforcing修改为permissive 或者是 disabled(禁用)
SELINUX=permissive

或者调用setenforce 0也可以

以下是这里的三个参数的解释

enforcing 任何违法SElinux的操作都被禁止。
permissive 任何违反SElinux的操作都会受到一个警告信息。但是行动可以继续。
disabled 不启用SElinux策略。