728x90
반응형

오류 발생 서버 정보

구분 정보
OS Windows Server 2016
DB Oracle 19c

 

리스너 상태 확인

lsnrctl status 명령어를 입력 시 아래와 같이 출력된다.

C:\Users\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 27-8월-2023 21:50:18

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=223.xxx.xxx.xxx)(PORT=1521)))에 연결되었습니다
리스너의 상태
------------------------
별칭                     LISTENER
버전                     TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
시작 날짜                 27-8월-2023 21:45:09
업타임                   0 일 0 시간. 7 분. 25 초
트레이스 수준            off
보안                     ON: Local OS Authentication
SNMP                     OFF리스너 매개변수 파일   C:\..\network\admin\listener.ora
리스너 로그 파일         C:\..\log\diag\tnslsnr\WIN-..\listener\alert\log.xml
끝점 요약 청취 중...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=223.xxx.xxx.xxx)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=..ipc)))
서비스 요약...
"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.
  "CLRExtProc" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다

위 상태에서 sqlplus를 통해 접속(로그인) 시 아래와 같이 오류가 발생한다.

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

 

해결방법

오라클 폴더 내에 있는 C:\..\network\admin\listener.ora에 추가해야 할 부분이 있다.

 

Before (변경 전)


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oracle19c\dbhome_1)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\oracle19c\..\bin\oraclr12.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 223.xxx.xxx.xx)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

 

After (변경 후)


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oracle19c\dbhome_1)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\oracle19c\..\bin\oraclr12.dll")
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (SID_NAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 223.xxx.xxx.xx)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

위 After 코드열과 같이 SID_DESC를 추가해준 뒤에 저장한다.

 

그런 뒤에 리스너 상태를 재확인(lsnrctl status)하면 아래와 같이 출력된다.

C:\Users\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 27-8월-2023 21:50:18

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=223.xxx.xxx.xxx)(PORT=1521)))에 연결되었습니다
리스너의 상태
------------------------
별칭                     LISTENER
버전                     TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
시작 날짜                 27-8월-2023 21:45:09
업타임                   0 일 0 시간. 7 분. 25 초
트레이스 수준            off
보안                     ON: Local OS Authentication
SNMP                     OFF리스너 매개변수 파일   C:\..\network\admin\listener.ora
리스너 로그 파일         C:\..\log\diag\tnslsnr\WIN-..\listener\alert\log.xml
끝점 요약 청취 중...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=223.xxx.xxx.xxx)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=..ipc)))
서비스 요약...
"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.
  "CLRExtProc" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"ORCL" 서비스는 1개의 인스턴스를 가집니다.
  "ORCL" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다

위와 같이 출력된 후에 오류 없이 정상 접속할 수 있음을 확인할 수 있었습니다.


HOST = 223.xxx.xxx.xx 부분은 자신 PC IP가 입력되는 부분이므로 게시된 내용과 다를 수 있습니다.

728x90
반응형