본문 바로가기
Data & Programming/Oracle

[Oracle-오류] ORA-12505: TNS: listener does not currently know of SID given in connect descriptor (TNS 리스너에 대한 접속이 거부되었습니다)

by 눈부셔™ 2023. 8. 27.
728x90

[Oracle-오류] ORA-12505: TNS: listener does not currently know of SID given in connect descriptor (TNS 리스너에 대한 접속이 거부되었습니다)

Oracle 데이터베이스에 접속하기 위해서는 TNS (Transparent Network Substrate) 리스너를 통해 클라이언트와 데이터베이스 간의 통신이 이루어집니다. 그러나 때로는 TNS 리스너에 대한 접속이 거부되는 오류인 ORA-12505가 발생할 수 있습니다. ORA-12505 오류코드는  "Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor"라는 메시지와 함께 발생합니다. 이 오류는 오라클과 연결할 때 명시한 SID를 찾지 못 하기 때문에 발생합니다.

ORA-12505: TNS 리스너에 대한 접속이 거부

오류 내용

Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (TNS 리스너에 대한 접속이 거부되었습니다.)

 

 

오류 설명

ORA-12505 오류는 클라이언트가 TNS 리스너에 대한 접속을 시도했지만, 리스너가 해당 요청을 거부했을 때 발생하는 오류입니다. 이 오류는 데이터베이스에 연결하려는 시도 중에 발생하며, 주로 데이터베이스 서버 또는 클라이언트의 구성 문제로 인해 발생합니다.

 

 

주요 원인

  • TNS 리스너 구성 오류: TNS 리스너의 구성 정보가 올바르지 않거나, 리스너가 제대로 실행되지 않는 경우에 오류가 발생할 수 있습니다.
  • 데이터베이스 서비스 이름 오류: 클라이언트가 접속하려는 데이터베이스 서비스 이름이 올바르지 않거나, 해당 서비스가 존재하지 않을 경우에 오류가 발생할 수 있습니다.
  • 네트워크 구성 오류: 클라이언트와 데이터베이스 간의 네트워크 구성이 올바르지 않은 경우에 오류가 발생할 수 있습니다.

 

해결 방법

1. TNS 리스너 구성 확인
먼저 TNS 리스너의 구성 정보를 확인하고 올바르게 설정되어 있는지 검토합니다. 

리스너의 설정 파일인 listener.ora를 확인하여 포트 번호, 서비스 이름 등이 정확히 설정되어 있는지 확인합니다.
2. 데이터베이스 서비스 이름 확인
클라이언트가 접속하려는 데이터베이스 서비스 이름이 올바른지 확인합니다. 

데이터베이스 서비스 이름은 tnsnames.ora 파일에 정의되어 있으며, 해당 이름을 사용하여 데이터베이스에 접속하려고 합니다.
3. 리스너 상태 확인
리스너가 제대로 실행 중인지 확인합니다. 

리스너의 상태를 확인하려면 명령 프롬프트에서 lsnrctl status 명령을 실행합니다.

 


예시

1. TNS 리스너 구성 오류

1
2
3
4
5
6
7
8
9
# listener.ora 파일 내용
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )
 
# 오류 메시지: ORA-12505: TNS 리스너에 대한 접속이 거부되었습니다.
cs

2. 데이터베이스 서비스 이름 오류

1
2
3
-- 잘못된 데이터베이스 서비스 이름으로 접속 시도
sqlplus username/password@wrong_service_name
-- 오류 메시지: ORA-12505: TNS 리스너에 대한 접속이 거부되었습니다.
cs

3. 리스너 상태 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ lsnrctl status
 
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 18-AUG-2023 09:00:00
 
Copyright (c) 19912014, Oracle.  All rights reserved.
 
상태 정보
Alias                     LISTENER
버전                       TNSLSNR for Linux: Version 12.1.0.2.0 - Production
시작 날짜                   18-AUG-2023 08:00:00
옵션                       TNSLSNR for Linux: Version 12.1.0.2.0 - Production
상태                       오프
지원할 프로토콜로써 등록      TCP
지원할 서비스로써 등록        12CDB
...
cs

 

 

결론

ORA-12505 오류는 Oracle 데이터베이스 접속 시 TNS 리스너에 대한 접속이 거부되었을 때 발생하는 오류입니다.

이 오류를 해결하기 위해서는 TNS 리스너의 구성 정보, 데이터베이스 서비스 이름, 네트워크 구성 등을 정확하게 확인하고 조치해야 합니다. 올바른 설정을 통해 데이터베이스 연결 오류를 효과적으로 대응할 수 있습니다.

 

#Oracle  #오라클  #오라클 오류코드  #ORA-12505  #TNS 리스너  #접속 거부  #오류 해결  #데이터베이스 연결  #SID  #SQL오류

728x90