버글버글

[Linux] Oracle : Listener 오류 본문

기타사항/기타

[Linux] Oracle : Listener 오류

Bugle 2023. 10. 31. 10:40
반응형

 

서버가 자꾸 꺼지길래 powshell을 이용하여 확인을 해 본뒤, 다시 실행을 해주었다. 

https://hyo-s.tistory.com/103

 

[Linux] PowerShell 이용해서 프로세스 제어하기 (feat.jar)

1. 접속 ssh 계정아이디@호스트아이피 2. 비밀번호입력 3. jar파일 있는곳으로 이동 cd /경로/경로 4. jar파일이 실행되고 있는지 확인하기 ps -ef |grep 자르파일.jar - 현재 실행중인 모든 사용자의 프로

hyo-s.tistory.com

 

그런데, 자꾸 프로그램이 꺼진다... 맨 아랫줄을 보면 알 수 있다.

[1]+ Exit 1 nohop java -jar -----.jar > log

[1]+ Exit 1                 nohop java -jar -----.jar > log

 

 

1. 원인

 - 원인을 찾기위해 로그를 확인해 보았다.

vi log

 - 입력해서 맨 아랫줄 로그를 찾아보았다. (Shift + G)

 - 맨 위로 가는 단축키는 gg

 - 방향키로 확인 할 수 있다.

Caused by: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:854)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:562)
        at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
        at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)

 - 확인해보니 이 오류는 JDBC(Java Database Connectivity)를 사용하여 Oracle 데이터베이스에 연결할 때, 데이터베이스 Listener가 제공된 SID(시스템 IDentifier)에 대한 정보를 인식하지 못해서 발생한 오류다.

 

 - 위 로그파일을 나올때는 :q! 입력 (느낌표를 입력해야 저장 안됨)

:q!

 

 

2. 해결

  (1) linux에 저장된 오라클 계정으로 접속

su oracle

 (2) listener 상태 확인해보기

lsnrctl status

 

 (3) 데이터베이스의 Listener를 중지시키기

lsnrctl stop

 

 (4) Oracle 데이터베이스와 상호 작용할 수 있는 명령줄 도구를 열고, "as sysdba" 권한으로 데이터베이스에 접속하기

sqlplus "/as sysdba"

 

 (5) 현재 접속된 데이터베이스를 데이터베이스를 정지시키고 모든 세션을 종료하기

shutdown immediate

 

(6) 데이터베이스 실행하기

startup

 

 (7) Oracle 접속 종료

exit

 

 (8) Listener를 다시 시작하여 클라이언트가 데이터베이스에 연결할 수 있도록 설정

lsnrctl start

반응형