출처: https://www.zinnunkebi.com/oracledb-ora-12541/
ORA-12541:
TNS : 리스너가 없습니다.(no
listener)
10월 17, 2021(2년前) Oracle DB
목차 [hide]
·
1 작업 환경
다음과 같이 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의 이름을 가진 서비스가 "실행 중" 상태에 있는지를 확인합니다. 다음 화면은 서비스가 정지된 상태를 보여주고 있습니다.
또는 다음 명령으로 리스너의 상태를 확인합니다.
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 서비스 기동 상태
정지중인 리스너를 선택 플레이 아이콘을 눌러 실행합니다. 다음 화면은 서비스가 "실행 중" 상태를 표시하고 있습니다.
~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 처리기를 가집니다.
리스너에 데이터베이스 서비스 추가하기
- Windows 앱 일람에서 Net Manager를 실행합니다.
- Oracle Net Manager화면에서 [Oracle Net구성 > 리스너 > LISTENER]를 선택합니다.
- [데이터베이스 서비스]를 선택해서 [데이터베이스추가]버튼을 누릅니다.
- [SID]는 ORCL, [전역 데이터베이스 이름]은 ORCL를 입력합니다
- [파일>네크워크 구성저장]를 눌러 listener.ora파일에 변경 내용을 덮어 씁니다.
- 변경된 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
- ~TNSListener 서비스를 재 기동합니다.
리스너를 선택 리플레이 아이콘을 눌러 실행합니다.
- 리스너의 상태를 확인합니다.파란 문자가 추가된 부분입니다.
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 처리기를 가집니다.
명령이 성공적으로 수행되었습니다
- 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” 오류가 발생할 수 있습니다.
'정보관리(데이터베이스, DB) > 오라클' 카테고리의 다른 글
ORACLE XE에서 8080 PORT 포트번호 변경방법, 톰캣 충돌 시 해결방법 (1) | 2023.11.29 |
---|---|
오라클 character set 확인 및 변경 (0) | 2023.11.29 |
리눅스에서 Oracle 서비스 시작 및 종료 (0) | 2023.11.28 |
JOB_QUEUE_PROCESSES (0) | 2023.11.28 |
Oracle returns an error ORA-01031: insufficient privileges (0) | 2023.11.28 |