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

来源:互联网 发布:golang syscall详解 编辑:程序博客网 时间:2024/05/18 20:52
现象:
sqlplus /nolog
sqlplus: error while loading shared libraries: /u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied
 
 
 
解决办法:
 
这个问题是由于SELINUX引起的.
 
1. 编辑/etc/sysconfig/selinux配置文件, 把SELINUX=enforcing 改为 SELINUX=disabled.
# 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 库名字
 
[oracle@null-00137223684e ~]$ sqlplus /nolog
sqlplus: error while loading shared libraries: /u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

[oracle@null-00137223684e ~]$ chcon -t texrel_shlib_t /u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1

[oracle@null-00137223684e ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Tue Sep 20 14:31:21 2011
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL>
 
如果运行过程中发现其它的库文件也报类似的错误, 可以使用同样的方法来解决.

http://blog.itpub.net/81/viewspace-707945

0 0