Programer Life/DB

리스너 status unkown 상태

신비마마 2009. 7. 7. 10:45

< listener.ora >
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = oracle_home)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = AA)
      (ORACLE_HOME = oracle_home)
      (SID_NAME = AA)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST=hostname or ip)(PORT=port))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
  )

위와 같은 상태에서 lsnrctl status로 리스너 상태 확인시 아래와 같이 UNKOWN 하나만 뜨는경우..
(아악.. Status가 READ가 되야 TNS에서 읽어오지..ㅠ)
Service "AA" has 1 instance(s).
  Instance "AA", status UNKNOWN, has 1 handler(s) for this service...
(+ LISTENER에 등록안된 INSTATNCE가 계속 뜨는 경우 포함..)


조치방법.
1. listener.ora 파일 확인
2. 외부시스템에서 해당 tnsping 날려보기
3. init[SID].ora 파일 확인 (name 부분)
4. 프로세스가 내가 설정한 SID의 ORACLE PROCESS만 떠있는지 확인한다.
   (난 2개 띄워져 있었음..ㅠ)
5. spfile[SID].ora(동적환경설정파일) local_listener 설정해주기.
   (이진 파일이므로 직접수정 못하므로 우선, create spfile from pfile; 로 spfile생성 후 아래 쿼리로 각 값 수정)
   alter system set LOCAL_LISTENER="(ADDRESS=(PROTOCOL=TCP)(HOST=hostname or ip)(PORT=port))"


ㅠ.ㅠ