TNS:리스너가 아닙니다 0 9 17,461

by 최고영회 [설치/설정] ORA-12541 리스너 LISTENER [2011.03.17 18:20:45]


PC1 (서버)
 - windows 2008 server,
 - oracle 10g,
 - ip:192.168.0.199 (내부 고정 IP)
 - listener.ora
   SID_LIST_LISTENER =
     (SID_LIST =
 (SID_DESC =
  (SID_NAME = PLSExtProc)
  (ORACLE_HOME = D:\oracle\product\10.2.0\db_3)
  (PROGRAM = extproc)
    ) )

 LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
  (ADDRESS = (PROTOCOL = TCP)(HOST = DEV-SERVER)(PORT = 1521))
    )
  )

- tnsnames
   DEV =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DEV-SERVER)(PORT = 1521))
    (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = DEV)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
  (SID = PLSExtProc)
  (PRESENTATION = RO)
    )
  )

PC2 (클라이언트)
 - windows xp ,
 - toad 9.1
 - tnsnames.ora
  DEV =
  (DESCRIPTION =
    (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST =  192.168.0.105 )(PORT = 1521))
    )
    (CONNECT_DATA =
  (SID = DEV)
    )
  )

Toad로 연결 시 ORA-12541: TNS:리스너가 아닙니다.  오류 발생


공유기
iptime
DMZ 설정 : PC1 (모든 포트 열림)



이틀동안 오라클 설정 및 listener.ora, tnsnames.ora 설정 값 변경하고, listener 죽였다 살리고,,
oracle 설정들 이것저것 바꿔보고, 다시 설치 해보고, 아주 많은 삽질들을 하다가
공유기를 통한 ip를 받은 pc 에 오라클 설치 시 접속이 되지 않는 다는것을 알게 되었습니다.
위의 내용처럼 설정을 해보았는데도 여전히 개발 pc에서 접속이 안되네요...
소중합 답변 부탁 드립니다.

by 타락천사 [2011.03.17 22:02:20]
PC1)
cmd
lsnrctl status
해서 리슨너가 떠있는지 체크
PC2)
tnsping DEV
되는지 체크
192.168.0.105 가 DEV-SERVER 맞나요 ?
PC2 에서 PC1 로 PING 이 되나요 ㅇ?

by 타락천사 [2011.03.18 11:06:20]
TSNPING
==> TNSNAMES.ORA 에 등록된 정보를 통해서 대상 디비에 CLIENT 요청을
받아줄 LISTENER 가 존재 하는지 여부 체크
IP / PORT 를 통해서 접근 리슨너 존재 여부 체크
실제 SERVICE_NAME 즉 디비가 존재 하는지 여부는 체크 하지 않음
----------------------------------------------------------------------
PC1)
TNSPING DEV 해보세요
될듯 싶은데요..
PC1은 DEV-SERVER 가 192.168.0.199 로 알고 있을듯 싶어요..
(HOSTS 화일 찾아보시면 됩니다.)
PC2)
PC1 은 DEV-SERVER를 자기 로컬 tnsnames.ora 를 통해서 resolving 하는데.
192.168.0.105 입니다.
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.105 )(PORT = 1521))
그러나 리슨너가 클라이언트에 대한 요청은 대기 하는 IP/PORT 정보는
listener.ora 를 통해서 확인 되는데..
(ADDRESS = (PROTOCOL = TCP)(HOST = DEV-SERVER)(PORT = 1521))
이 부분이죠.. 여기서 DEV-SERVER IP 가 아니라 192.168.0.199 일듯 싶어요..
제안 )
PC2
TNSNAMES.ORA 의 IP를 192.168.0.199 로 변경하시구 해보세요.


by 최고영회 [2011.03.18 11:12:36]
말씀하신 부분들을 Check 하면서 ping 안날라갔던 부분을 날라가게 하고,, 기타 수정작업을 해봤습니다. 그리고 현재 상황은 아래와 같습니다.

PC1)
lsnrctl status -> 리스너 떠있습니다.
PC2)
tnspring DEV -> TNS-03505: 이름처리에 실패했습니다.
tnsping 192.168.0.199 -> 정상

192.168.0.199 가 DEV-SERVER 입니다.

PC2 , PC1 서로 ping 다 날라갑니다.

답변 감사합니다..뭐가 문제인가요?

by 최고영회 [2011.03.18 11:17:27]
PC2 의 tnsnames.ora file 의
host 주소는 192.168.0.199 로 변경 했습니다. 이건. 실수네요..;;
TNSPING DEV 는 안되구요, TNSPING DEV-SERVER 로 하니까 이건 되네요.
Toad 에서 direct 연결을 했더니 이건 연결이 되네요..
TNS 로 연결 시에 ORA-12154: TNS:서비스명을 해석할 수 없습니다...
이런 상태 입니다..

by 잽스페로 [2011.03.18 11:49:31]
TNSNAMES.ORA파일이 여러군데 있는것 아닌가요??

실제로 파일 참조하는 TNSNAMES.ORA파일이 다른곳에 것을 쓰는경우가 있는 적이
있답니다

by 잽스페로 [2011.03.18 11:50:03]
윈도우에서 파일검색한번 해보시지요..

by 타락천사 [2011.03.18 16:23:33]
TNSPING DEV 는 안되구요, TNSPING DEV-SERVER 로 하니까 이건 되네요.
==> pc2 에 tnsnames.ora 에 등록이 어떻게 되어 있나요 ㅇㅇ?
dev 도 있구 dev-server 도 있다는건지 ㅇㅇ?
tnsping 이 된다는건 client 입장에서 ip/port 통해서
리슨너까지 접근 된다는 거에요..
기본적으로 리슨너(listener.ora), tnsnames.ora, tnsping 이 어떤것인지
찬찬히 살펴 보세요 ㅇ.ㅇ

by 최고영회 [2011.03.18 17:00:59]
잭스패로우님 감사합니다.
--> 파일검색 해본 결과 (PC1, PC2) 모두 하나 있습니다. 이상없구요..ㅡㅜ
타락천사님 감사합니다.
==> pc2 에 tnsnames.ora 에 등록이 어떻게 되어 있나요 ㅇㅇ?
DEV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.199)(PORT = 1521))
)
(CONNECT_DATA =
(SID = DEV)
)
)

로 되어있습니다.
tnsping DEV 하면 DEV 가 어떻게 해석되어 (무엇을 참조하여) 보내지는 것 인가요?
tnsping DEV-SERVER 에서 DEV-SERVER 는 PC1 의 컴퓨터 이름 입니다.

by 타락천사 [2011.03.18 18:10:14]

가. tnsping DEV
일딴 pc2 의 tnsnames.ora 에서 DEV 로 등록된게 찾아서
찾아지면, IP 랑 PORT 를 가지고 IP /PORT 에 접근해서 리슨너가 있는지 체크
알려주신것(아래처럼) 처럼
DEV = <=== PC2 입장에서 tnsping DEV 는 요기 DEV 를 말하는 겁니다.
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.199)(PORT = 1521))
)
(CONNECT_DATA =
(SID = DEV)
)
)


나. tnsping DEV-SERVER
이건 저도 테스트 하구 처음으로 알았네요..
가와 동일합니다. 그러나, pc2 의 tnsnames.ora 에 DEV-SERVER로 등록된게 없으면
pc2 에서 DEV-SERVER 가 등록되어 있는지 찾습니다.
windows 라면
C:\Windows\System32\drivers\etc\hosts 화일에서 찾습니다.
hosts 화일을 참고해서 DEV-SERVER 의 IP 를 찾고, Default Port ( 1521 ) 로
마찬가지 접근을 시도해서 리슨너가 있는지 체크 합니다.
말씀하신것처럼 이 경우 된다구 하니
PC2가 알고 있는 DEV-SERVER의 IP 와 1521 포트로 접근하면 리슨너가 있다는 거에요..
( 혹 PC2 에두 디비나 리슨너가 있지 않으시죠 ㅇㅇ? )

제안 ) 나의 경우 tnsping 이 되신다고 하니, 아래처럼 변경하고 해보세요.
DEV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = DEV-SERVER)(PORT = 1521))
)
(CONNECT_DATA =
(SID = DEV)
)
)
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입