ORA-12547: TNS:Lost Contact From SqlPlus [ID 422173.1] | |||||
|
|||||
修改时间 01-MAR-2012 类型 PROBLEM 状态 PUBLISHED |
Applies to:
Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 11.2.0.2 - Release: 10.1 to 11.2 Linux x86 HP-UX PA-RISC (64-bit) Oracle Solaris on x86 (32-bit) z*OBSOLETE: IBM AIX 4.3 Based Systems (64-bit) Linux x86-64Symptoms
- Not able to make a local connection. - Getting the following error when trying to connect using Sql*Plus ERROR: ---------------- ORA-12547: TNS:lost contact For example:$sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Wed Mar 30 11:59:06 2011
Copyright (c) 1982, 2008, Oracle. All rights reserved.
ERROR:
ORA-12547: TNS:lost contact
Cause
This could be due to- to kernel parameters settings
- Incorrect permissions on the ORACLE executable
- Insufficient ulimit setting for stack
- $ORACLE_HOME/rdbms/lib/config.o is 0 bytes
- Oracle binaries have not been linked correctly
- A missing $ORACLE_HOME/dbs directory Note that creating an empty dbs directory already solves this error and you can for instance shutdown the instance. However, you will obviously not be able to restart because of the missing parameter file. So, the dbs directory needs to be fully restored.
Solution
To implement the solution, please execute the following steps: 1. This could be due to kernel parameters settings Please check the notes below that provide the required settings for kernel parameters Note 169706.1 Oracle Database on AIX,HP-UX,Linux,MacOSX,Solaris,Tru64 2. This could be due to incorrect permissions on the ORACLE.exe Optionally, if you collect the OS trace with:$strace -f -o /tmp/trace.1.log $ORACLE_HOME/bin/sqlplus / as sysdba
21810 open("/oracle/PROD/db/tech_st/11.1.0/admin/PROD_erptest/diag/rdbms/prod/PROD/alert/log.xml", O_WRONLY|O_CREAT|O_APPEND, 0664) = -1 EACCES (Permission denied)
......
21810 open("/oracle/PROD/db/tech_st/11.1.0/admin/PROD_erptest/diag/rdbms/prod/PROD/trace/alert_PROD.log", O_WRONLY|O_CREAT|O_APPEND, 0664) = -1 EACCES (Permission denied)
The 'ls' command should show permissions 6751 (as follows)
Please check permissions by running:
$ cd $ORACLE_HOME/bin
$ ls -l oracle
-rwsr-s--x 1 oracle dba
$ cd $ORACLE_HOME/bin
$ chmod 6751 oracle
$ ls -l oracle
$ORACLE_HOME/bin/oracle
$ORACLE_HOME/rdbms/lib/config.o
If yes, rename the following file:
% cd $ORACLE_HOME/rdbms/lib
% mv config.o config.o.bad
% relink oracle