증상
- 로컬로 접속할 수 없습니다.
- Sql*Plus를 사용하여 접속하려고 시도하면 다음 오류가 발생합니다.
ERROR:
----------------
ORA-12547: TNS:lost contact
예:
$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
원인
다음이 원인일 수 있습니다.
커널 파라미터 설정
ORACLE 실행 파일의 잘못된 권한 설정
스택에 대한 ulimit 설정 부족
$ORACLE_HOME/rdbms/lib/config.o가 0바이트임
Oracle 바이너리가 올바르게 링크되지 않음
누락된 $ORACLE_HOME/dbs 디렉토리
빈 dbs 디렉토리를 생성하면 이 오류가 해결되므로 예를 들어 인스턴스를 종료할 수도 있지만 누락된 파라미터 파일로 인해 인스턴스를 재시작할 수는 없습니다. 따라서 dbs 디렉토리를 완전히 복원해야 합니다.
해결책
해결책을 구현하려면 다음 단계를 실행하십시오.:
1. 커널 파라미터 설정 때문일 수 있습니다.
커널 파라미터에 필요한 설정을 제공하는 아래 노트를 참조하십시오.
Note 169706.1 Oracle Database on AIX,HP-UX,Linux,MacOSX,Solaris,Tru64
2. ORACLE.exe의 권한 설정이 잘못되었기 때문일 수 있습니다.
선택적으로 다음을 사용하여 OS 트레이스를 수집한다면:
$strace -f -o /tmp/trace.1.log $ORACLE_HOME/bin/sqlplus / as sysdba
이 경우 trace.1.log에서 다음과 같은 몇 개의 (Permission denied)를 볼 수 있습니다.:
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)
'ls' 명령을 실행하면 다음과 같이 permissions 권한이 6751 이어야 합니다
다음을 실행하여 권한 설정을 확인하십시오 :
$ cd $ORACLE_HOME/bin
$ ls -l oracle
출력에 다음과 같은 올바른 권한 설정이 표시되어야 합니다.
-rwsr-s--x 1 oracle dba
그렇지 않은 경우 다음을 실행하여 권한 설정을 수정합니다.
$ cd $ORACLE_HOME/bin
$ chmod 6751 oracle
$ ls -l oracle
다음 사항이 올바른지도 확인합니다.
echo $ORACLE_HOME
echo $ORACLE_SID
echo $LD_LIBRARY_PATH
echo $PATH
3. 스택에 대한 현재 ulimit 설정을 확인합니다.
ulimit -a
설치 설명서에서 현재 플랫폼 및 Oracle 버전을 확인하고 스택을 적절하게 설정합니다..
4. 다음 두 파일이 0바이트가 아닌지 확인합니다.
$ORACLE_HOME/bin/oracle
$ORACLE_HOME/rdbms/lib/config.o
0바이트인 경우 다음 파일의 이름을 바꿉니다.
% cd $ORACLE_HOME/rdbms/lib
% mv config.o config.o.bad
그런 다음 Oracle 바이너리를 다시 리링크합니다.
% relink oracle
5. 위와 같이 해도 문제가 해결되지 않으면 데이터베이스 및 리스너를 종료한 다음 "relink all"을 실행합니다.
Note 131321.1 How to Relink Oracle Database Software on UNIX
다음이 원인일 수 있습니다.
1. 커널 파라미터 설정
2. ORACLE 실행 파일의 잘못된 권한 설정
3. 스택에 대한 ulimit 설정 부족
4. $ORACLE_HOME/rdbms/lib/config.o가 0바이트임
5. Oracle 바이너리가 올바르게 링크되지 않음
6. 누락된 $ORACLE_HOME/dbs 디렉토리
빈 dbs 디렉토리를 생성하면 이 오류가 해결되므로 예를 들어 인스턴스를 종료할 수도 있지만 누락된 파라미터 파일로 인해 인스턴스를 재시작할 수는 없습니다. 따라서 dbs 디렉토리를 완전히 복원해야 합니다.
===============================
TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
추가로
/dev/null 퍼미션에 other에 쓰기 권한이 없을때도 발생
chmod o+w /dev/null
해결
'ORACLE > ADMIN' 카테고리의 다른 글
RAC DB삭제 (0) | 2022.05.22 |
---|---|
오라클 메모리 튜닝 권고 (0) | 2022.05.22 |
오라클 role 에 관하여 (0) | 2018.07.21 |
오라클 리스너 시작시 에러 tns-12546,12560,00516 (0) | 2018.07.19 |
downgrading oracle database to earlier release , 11.2.0.3 to 11.2.0.1 , oracle 11g to 10g (0) | 2017.10.10 |