TNS:protocol adapter error
Oracle 2010. 8. 13. 16:36Oracle의 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; |
'Oracle' 카테고리의 다른 글
DISTINCT May Remove Sorting From Pre-Sorted Data (0) | 2010.09.10 |
---|---|
Group By와 Distinct의 차이가 뭘까? (0) | 2010.09.10 |
Silent Installation을 통한 Oracle Embedding (0) | 2010.08.16 |
Oracle Session별 Trace 생성 방법 (0) | 2010.08.13 |
Create View 생성 Query문의 오류 (0) | 2010.08.13 |