日期:2014-05-16  浏览次数:20646 次

Linux下共享库问题导致无法启动SQLPLUS的问题解决

现象:
sqlplus /nolog

sqlplus: error while loading shared libraries: /u01/oracle/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

解决办法:
这个问题是由于SELINUX引起的.
1. 编辑/etc/sysconfig/selinux配置文件, 把SELINUX=enforcing 改为 SELINUX=disabled.

[root@localhost /]# vi /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
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#?????? targeted - Only targeted network daemons are protected.
#?????? strict - Full SELinux protection.
SELINUXTYPE=targeted

2. 使用命令chcon改变文件或者目录的SELinux属性, 语法chcon -t texrel_shlib_t 库名字

[root@localhost /]# chcon -t texrel_shlib_t /u01/oracle/lib/libclntsh.so.11.1

如果运行过程中发现其它的库文件也报类似的错误, 可以使用同样的方法来解决.