본문 바로가기
정보관리(데이터베이스, DB)/오라클

ORA-12541: TNS : 리스너가 없습니다.(no listener)

by 3604 2023. 11. 28.
728x90

출처: https://www.zinnunkebi.com/oracledb-ora-12541/

 

ORA-12541: TNS : 리스너가 없습니다.(no listener)

다음과 같이 Oracle Database에 접속하려고 할 때 ORA-12541오류가 발생할 수가 있습니다. 이 글에서는 ORA-12541 오류의 원인과 해결 방법을 소개합니다. D:\>sqlplus scott

www.zinnunkebi.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ORA-12541: TNS : 리스너가 없습니다.(no listener)

10 17, 20212년前) Oracle DB

목차 [hide]

·        작업 환경

·        리스너 확인하기

o   2.1 ~TNSListener 서비스가 정지 상태

o   2.2 ~TNSListener 서비스 기동 상태

·        리스너에 데이터베이스 서비스 추가하기

·        주의사항

다음과 같이 Oracle Database 접속하려고 ORA-12541오류가 발생할 수가 있습니다. 글에서는 ORA-12541 오류의 원인과 해결 방법을 소개합니다.

D:\>sqlplus scott/tiger@192.168.220.132/orcl

SQL*Plus: Release 12.2.0.1.0 Production on 10 17 00:21:14 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:

ORA-12541: TNS:리스너가 없습니다.

작업 환경

  • DB서버 Windows컴퓨터

o   Oracle Database 12.2.0.1.0 for Microsoft Windows x64 설치 하기글에서 설치한 환경

o   OS :Widows Server 2012 R2

o   IP Address() : 192.168.220.132

리스너 확인하기

~TNSListener 서비스가 정지 상태

~TNSListener 이름을 가진 서비스가 "실행 " 상태에 있는지를 확인합니다. 다음 화면은 서비스가 정지된 상태를 보여주고 있습니다.

https://www.zinnunkebi.com/wp-content/uploads/2021/10/image-5.png

또는 다음 명령으로 리스너의 상태를 확인합니다.

D:>lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 17-10-2021 00:20:37

Copyright (c) 1991, 2016, Oracle. All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.220.132)(PORT=1521))) 연결되었습니다

TNS-12541: TNS:리스너가 없습니다.

TNS-12560: TNS:프로토콜 어댑터 오류

TNS-00511: 리스너가 없습니다.

64-bit Windows Error: 61: Unknown error

상태에서 sqlplus scott/tiger@192.168.220.132/orcl 으로 접속한다면 의심할 여지 없이 ORA-12541오류가 발생합니다.

~TNSListener 서비스 기동 상태

정지중인 리스너를 선택 플레이 아이콘을 눌러 실행합니다. 다음 화면은 서비스가 "실행 " 상태를 표시하고 있습니다.

https://www.zinnunkebi.com/wp-content/uploads/2021/10/image-6.png

~TNSListener 서비스 실행 중의 리스너 상태는 다음과 같습니다.

D:\>lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 17-10-2021 00:27:18

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.220.132)(PORT=1521))) 연결되었습니다

리스너의 상태

------------------------

별칭                     LISTENER

버전                     TNSLSNR for 64-bit Windows: Version 12.2.0.1.0 - Production

시작 날짜                 17-10-2021 00:27:09

업타임                   0 0 시간. 0 . 8

트레이스 수준            off

보안                     ON: Local OS Authentication

SNMP                     OFF리스너 매개변수 파일   C:\app\oracle\product\12.2.0\dbhome_1\network\admin\listener.ora

리스너 로그 파일         C:\app\oracle\product\12.2.0\dbhome_1\log\diag\tnslsnr\WIN-O8FTTDMFL42\listener\alert\log.xml

끝점 요약 청취 ...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.220.132)(PORT=1521)))

서비스 요약...

"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.

  "CLRExtProc" 인스턴스(UNKNOWN 상태) 서비스에 대해 1 처리기를 가집니다.

명령이 성공적으로 수행되었습니다

"실행 "상태에서 sqlplus scott/tiger@192.168.220.132/orcl 으로 접속한다면 오류 없이 접속 같지만 예상 밖의 ORA-12514오류가 발생합니다.

D:\>sqlplus scott/tiger@192.168.220.132/orcl

SQL*Plus: Release 12.2.0.1.0 Production on 10 17 01:12:06 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:

ORA-12514: TNS:리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함

사용자명 입력:

(해결방법lsnrctl status 명령의 결과로 다음과 같은 메시지가 표시되도록 설정을 변경해야 합니다.

"ORCL" 서비스는 1개의 인스턴스를 가집니다. "ORCL" 인스턴스(UNKNOWN 상태) 서비스에 대해 1 처리기를 가집니다.

리스너에 데이터베이스 서비스 추가하기

  1. Windows 일람에서 Net Manager 실행합니다.

https://www.zinnunkebi.com/wp-content/uploads/2021/10/image-8.png

  1. Oracle Net Manager화면에서 [Oracle Net구성 > 리스너 > LISTENER] 선택합니다.
  2. [데이터베이스 서비스] 선택해서 [데이터베이스추가]버튼을 누릅니다.
  3. [SID] ORCL, [전역 데이터베이스 이름] ORCL 입력합니다
  4. [파일>네크워크 구성저장] 눌러 listener.ora파일에 변경 내용을 덮어 씁니다.

https://www.zinnunkebi.com/wp-content/uploads/2021/10/image-7.png

  1. 변경된 listener.ora내용을 확인합니다.파란 문자가 추가된 부분입니다.

# listener.ora Network Configuration File: C:\app\oracle\product\12.2.0\dbhome_1\NETWORK\ADMIN\listener.ora

# Generated by Oracle configuration tools.

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (PROGRAM = extproc)

      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\12.2.0\dbhome_1\bin\oraclr12.dll")

      (SID_NAME = CLRExtProc)

      (ORACLE_HOME = C:\app\oracle\product\12.2.0\dbhome_1)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = ORCL)

      (SID_NAME = ORCL)

    )

  )

 

LISTENER =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.132)(PORT = 1521))

  )

 

ADR_BASE_LISTENER = C:\app\oracle\product\12.2.0\dbhome_1\log

  1. ~TNSListener 서비스를 기동합니다.

리스너를 선택 리플레이 아이콘을 눌러 실행합니다.

https://www.zinnunkebi.com/wp-content/uploads/2021/10/image-10.png

  1. 리스너의 상태를 확인합니다.파란 문자가 추가된 부분입니다.

D:\>lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 17-10-2021 02:32:35

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

 

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.220.132)(PORT=1521))) 연결되었습니다

리스너의 상태

------------------------

별칭                     LISTENER

버전                     TNSLSNR for 64-bit Windows: Version 12.2.0.1.0 - Production

시작 날짜                 17-10-2021 02:32:32

업타임                   0 0 시간. 0 . 3

트레이스 수준            off

보안                     ON: Local OS Authentication

SNMP                     OFF리스너 매개변수 파일   C:\app\oracle\product\12.2.0\dbhome_1\network\admin\listener.ora

리스너 로그 파일         C:\app\oracle\product\12.2.0\dbhome_1\log\diag\tnslsnr\WIN-O8FTTDMFL42\listener\alert\log.xml

끝점 요약 청취 ...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.220.132)(PORT=1521)))

서비스 요약...

"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.

  "CLRExtProc" 인스턴스(UNKNOWN 상태) 서비스에 대해 1 처리기를 가집니다.

"ORCL" 서비스는 1개의 인스턴스를 가집니다.

  "ORCL" 인스턴스(UNKNOWN 상태) 서비스에 대해 1 처리기를 가집니다.

명령이 성공적으로 수행되었습니다

  1. sqlplus접속 확인합니다.

다음과 같이 오류 없이 접속할 있음을 확인할 있습니다.

D:\>sqlplus scott/tiger@192.168.220.132/orcl

SQL*Plus: Release 12.2.0.1.0 Production on 10 17 02:37:52 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

마지막 성공한 로그인 시간: 10 17 2021 01:45:24 +09:00

다음에 접속됨:

Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production

 

SQL>

주의사항

1. Host에는 localhost 또는 127.0.0.1 지정하지 않습니다. 네트워크에서 접근 가능한 IP Address또는 그에 상응하는 컴퓨터명 , 호스트명을 지정합니다.

2. 외부 컴퓨터에서 sqlplus명령으로 원격 접속하려면 다음과 같이[고급 보안이 포함된 Windows 방화벽]에서 Oracle이름으로 특정 로컬 포트tcp/1521추가 해야 합니다추가 하지 않는다면 ORA-12170: TNS:Connect timeout occurred”  오류가 발생할 있습니다.

https://www.zinnunkebi.com/wp-content/uploads/2021/10/image-9.png

 

 

 

728x90