'listener.log'에 해당되는 글 1건

  1. 2010.08.13 TNS:protocol adapter error

TNS:protocol adapter error

Oracle 2010. 8. 13. 16:36

Oracle의 Listener Service가 정상적으로 작동하지 않아서 서비스가 안되는 문제입니다.

 

Windows2003에 Oracle 11gR1을 사용하고 있는 곳에서 몇 개월 동안 서비스를 해오다가 갑자기 모든 Application에서

 

DB에 접근을 못하게 되면서 Service가 중지된 사태가 발생했습니다. (DB가 mount까지만 진행됨)

 

OS의 서비스 관리자에서 이와 관련된 사항들을 확인해보면, 정상적으로 서비스가 되고 있는 것처럼 보여집니다.

 

또한, 재시작을 해도 정상적으로 시작되는 것으로 보여집니다. 하지만, App에서는 여전히 DB에 접근을 못합니다.

 

DOS Mode에서 LSNRCTL Mode로 들어가서 Status를 실행해보면, 화면이 조회가 되는듯 하다가 멈추는 현상이 나타나고,

 

Stop 실행 후, Start를 실행하면 "TNS:protocol adapter error"가 발생합니다.

 

Listener.log 파일을 찾아서 확인해봅니다.

 

Listener.log 파일의 Size 4GB...   -_-;;

 

‘SQL*Net에 대한 이해라는 Oracle Documents Reference를 참고하면, 해당 Log Listener에서 무조건 남는 것으로

 

OS Type에 따른 최대 사이즈가 상이하다고 합니다. 이에 대해서 Log를 남지 않도록 하기 위해서는 아래와 같은 작업이

 

추가로 필요합니다.

 

1.     이전의 Listener.log 파일을 삭제하거나, Rename을 시켜줍니다.

2.     DOS창에서 LSNRCTL를 실행한 후, Option을 비활성화 시켜줍니다.

C:\> lsnrctl

LSNRCTL> set current_listener <listener_name>

=> listener_name별로 선택적으로 설정 가능. 모든 listener에 대해서

    적용한다면  실행할 필요 없음.

LSNRCTL> set log_status off/on 

=>  listener.log 생성 여부를 설정

 

3.     위와 같이 동적으로 Listener.log를 생성하지 않도록 할 수 있고,

이 외에는 listener.ora file parameter를 설정함으로써 해결할 수 있습니다.

LOGGING_<listener_name>=OFF   => 생성 안 함

LOGGING_<listener_name>=ON   =>  생성함

 

4.     설정 변경이 완료 되었다면, Oracle DB Start 시켜줍니다.

      예시)    c:\> sqlplus /nolog

                  SQL> conn / as sysdba   (mount 상태)

                  SQL> alter database open;

:     

TISTORY에 Login하려면 여기를 누르세요.