在对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策略。