DB LINK의 네트워크 서비스명 확인 좀 부탁드립니다. 0 4 1,177

by sun [Oracle 기초] [2020.09.28 14:22:10]


안녕하세요.. 수고들 많으세요.. 

다름이 아니라 이미 생성된 db링크가 있는데요.. 

CREATE PUBLIC DATABASE LINK IPAD_DB

CONNECT TO AAA

USING 'IPAD_DB'

이렇게 생성되어 있습니다. 

그리고 이것을 쿼리하면 SELECT  SYSDATE FROM DUAL@IPAD_DB 하면 잘 가져옵니다. DUAL 테이블이외의 테이블도 잘 조회가 되구요

그런데 노란색 바탕 중 IPAD_DB 는 제 PC이 TNSNAMES.ORA에는 정의된 게 없구요. 

그렇다고 

USING '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 211.109.12.123)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oracle)
    ) 
   )'
뭐 이런식으로 표현을 한것도 아닌데, 디비링크를 사용하면 잘 되고 있단 말이죠.. 
이걸 어떻게 해석해야 하나요.. 
TNS에 서비스명을 기술한것도 아니고, 그렇다고 db링크 생성할때  DESCRIPTION .. 구문을 사용한것도 아닌데
어떻게 디비링크가 되고 있는지 알고 싶고, 어디에서 확인할 수 있는지 알고 싶습니다. 

개발db서버 쪽에서도 이런식으로 DB LINK가 만들어진게 있는데, 이 링크가 작동을 안합니다. 

ora-12154 tns could not resolve the connect identifier specified 와 같은 에러가 나고요. 

v$parameter 에 global_names=false로 설정되어 있구요. 

TNSnames.ora, sqlnet.ora, 시스템 패스 등은 개발자 임의로 수정할 수 없는 상태이구요. 

ORACLE 11g 입니다. 

ora-12154로 찾아보면서 해볼 건 해봤는데,, 에러의 원인이 뭔지 잡히는게 없네요.. 

 

그래서 운영DB서버에서 잘 사용하고 있는 디비링크와 비교해보려고 했던거구요.. 운영서버의 DB링크의 Using '서비스명'

은 PC의 tnsnames.ora에 없이도 잘 되는 이유를 알면 ora-12154 에러도 확인 될 것 같아서 질문 올립니다. 

 

다들 풍요로운 추석 보내시구요. 

 

by 마농 [2020.09.28 14:32:21]

확인해야 할 tnsnames.ora 파일의 위치는.
로컬 PC 가 아니라 운영서버 및 개발서버입니다.


by sun [2020.09.28 16:36:34]

저는 로컬 PC의 TNSname.ora 와 관련된것인줄 알았는데,, 

마농님.

그렇다면 local PC의 tnsnames.ora에는 'IPAD_DB'  라는 서비스 Description이 없더라도 

서버의  tnsnames.ora  'IPAD_DB'  서비스가 있기때문에 db링크가 된다는 말씀이죠?

잘 이해가 안가서요.. 로컬에서 tnsnames.ora과 서버의 listener로 DB접속을 하는걸로 알고 있었는데.. .

DB 서버설정은 안해봐서.. 몰랐었나봐여. 

답변 감사합니다.  


by 마농 [2020.09.28 17:00:43]

[로컬]에서 [서버]로 붙을 때는 [로컬]의 tnsname를 사용합니다.
[AAAA]에서 [BBBB]로 붙을 때는 [AAAA]의 tnsname를 사용합니다.
[운영서버]에서 [원격서버]로 붙을 때는 [운영서버]의 tnsname를 사용합니다.


by sun [2020.09.28 17:45:06]

아.. 마농님. 답변까지 너무 감사드립니다. 

그렇다면 로컬pc에 원격서버의 tnsnames가 있건 없건 의미가 없는거군요..

운영서버의 tnsnames.ora에 원격서버의 정보를 적어야 DB링크를 할 수 있는거구요..

그래서 제 localPC의 tnsnames.ora에 없어도 db link가 되었던거군요..

알기쉬운 설명 정말 감사합니다. 외부 플젝중엔  긔 회사의 운영서버의 tnsnames.ora를 만질일이 없었는데

이번기회에 잘 좀 알고 있다가 현업담당자에게  설명을 좀 해줄 수 있겠네요.

설명 정말 감사합니다. 

 

 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입