본문 바로가기

IT관련

오라클 리스너 TNS Easy Connect - SQL*Net 을 통한 DB접속 방법

원격지에 있는 Oracle DBMS 에 접속하는 방법은 전통적으로 클라이언트에 tnsname 을 세팅해서 DB 서버의 리스너에 접속하는 SQL*Net 방식을 이용해왔습니다.

그런데, 10g 부터는 Easy Connect 라는 방법이 추가되어 SQL*Net 접속이 매우 쉬워졌습니다.

 

기존 방식은 아래와 같이 클라이언트쪽에 tnsnames.ora 파일을 세팅하고, 이것을 이용해서 접속하는 것입니다.

(물론 클라이언트쪽에서는 SQL*Net Client 모듈이 설치되어 있어야 합니다. 보통 Oracle DB S/W를 설치하면 됩니다)

 


$ cat tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.193)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )


$ sqlplus scott/tiger@ORCL


 

이렇게 tnsnames.ora 파일을 만드는 것이 귀찮은 경우에는 아래처럼 tnsnames.ora 에 들어갈 내용을 sqlplus 커맨드 뒤쪽에 쫙~ 길게 붙여줘도 됩니다.

 

 

이게 더 귀찮은가요?? ㅎㅎ

 

10g 부터 지원되는 Easy Connect 방식을 이용하면 완전 심플합니다.

 

 

OMG~  완전 심플하게 접속이 가능하네요 ^^

 

IP 를 써주고, Service Name 을 기술해주면 됩니다. 정확한 Syntax 는 아래와 같습니다.

 

 

아래와 같이 사용할 수 있습니다.

 

 

보통 리스너의 포트가 1521 인데, 이 경우에는 맨 첫번째처럼 :1521 을 생략할 수 있습니다. 만약 1522 나 다른 포트를 사용하는 경우에는 반드시 :1522 와 같이 기술해줘야 합니다.

@ 뒤에 // 는 써줘도 되고, 생략해줘도 됩니다.  IP 대신 URL 을 쓰는 경우에 필요하다고 합니다.

 

맨뒤에 orcl 은 서비스명(Service Name) 입니다. 이 서비스명은 Listener Status 를 조회하면 확인할 수 있습니다.

 

 

제 경우에는 총 4개의 서비스가 있네요. EMREP, EMPREPXDB, orcl, orclXDB

이중에서는 저는 orcl 서비스명을 사용해서 접속한 것입니다.