sqlplus: error while loading shared libraries: cannot restore segment prot after reloc: Permission denied
Applies to:
Oracle Enterprise Linux 5.5
Database 11gR1
Description:
I am using Oracle Enterprise Linux 5.5 and install Oracle Database 11gR1. After successfull installation of OS and Database when I try to login database it give me the following error:
sqlplus / as sysdba
sqlplus: error while loading shared libraries: /d01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: cannot restore segment port after reloc: Permission denied
Solution:
Reason of the above error because of SELinux is running in ENFORCING mode, Oracle development has recommended the following workaround while they correct the problem. To check the mode execute the following command from root user:
root> getenforce
Enforcing
Switch SELinux from the default “Enforcing” mode that it is running in, to the “Permissive” mode.
root> setenforce 0
Now check again:
root> getenforce
Permissive
This allows SELinux to continue running, and logging denial messages, but SELinux will not actually deny any operations. Once Development has resolved this issue, you can (and should) return SELinux to the default “Enforcing” mode
Now successfully connect to SQL:
sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Tue Oct 30 11:56:08 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup;
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size 2220200 bytes
Variable Size 1728057176 bytes
Database Buffers 2533359616 bytes
Redo Buffers 12144640 bytes
Database mounted.
Database opened.
SQL>
Your comments, especially which will help us improve the functionality, will be greatly appreciated :)