본문 바로가기
ORACLE/ADMIN

[Oracle] 오라클 접속 tnsnames.ora 설정 Easy Connect, 로컬 이름 지정 방식

by 마이자몽 🌻♚ 2020. 7. 11.

오라클 접속 방법

이전 글에서 Listener와 관련된 실습을 진행했습니다. 이번 글에서는 Oracle 접속 방법 중에서 가장 많이 사용하는 Easy Connect와 로컬 이름 지정 방식에 대해서 알아보겠습니다.

 

실습 환경

OS : OEL 5.4
DB : Oracle 12.1.0.2
SID: newdb, PROD(1개 서버안 2개 데이터베이스)
hostname : host01
listener 사전 구축 완료 1521포트 사용

 

 

Easy Connect 방식

가장 쉽게 연결할 수 있는 방식입니다. 필요한 정보들을 나열해서 연결할 수 있습니다.

 

[oracle@host01 ~]$ sqlplus system/oracle@host01:1521/PROD

sqlplus를 이용해서 접속했습니다. <계정>/<비밀번호>@<호스트명 혹은 IP>:<리스너 포트>/<서비스 명> 형태로 연결해주면 됩니다.

 

SYSTEM@host01:1521/PROD> show parameter db_name

PROD 데이터베이스에 접속했습니다.

 

 

서비스명 변경 및 접속

SYS@PROD> show parameter service_names

최초에 설정되는 서비스명은 데이터베이스 설치 시 지정하는 DB Name과 Domain Name의 조합으로 만들어집니다. 서비스명은 여러개를 만들어 줄 수 있습니다. 새로운 서비스명을 하나 추가하고 Easy Connect 방식으로 접속을 다시 해보겠습니다.

 

SYSTEM@host01:1521/PROD> alter system set service_names = 'PROD', 'ABC';
SYSTEM@host01:1521/PROD> conn system/oracle@host01:1521/abc
Connected.
SYSTEM@host01:1521/abc> show parameter db_name

새로운 서비스명으로 접속했습니다.

 

 

로컬 이름 지정 방식 tnsname.ora 사용

Easy Connect 방식을 사용해서 접속하려면 매번 호스트명, 리스너 포트, 서비스명을 입력해야 접속이 가능합니다. 이렇게 하면 불편하기 때문에 이러한 정보들을 미리 tnsnames.ora 파일에 alias로 만들어 관리하고 해당 별칭을 이용해서 대신 접속할 수 있습니다. 실제로 현장에서 가장 많이 사용하는 방법입니다. tnsnames.ora 파일은 직접 생성하여 만들어도 가능하고 Oracle Net ManagerOracle Net Configuration Assistant를 사용해서도 생성 가능합니다.

 

 

Oracle Net Manager 사용

[oracle@host01 ~]$ netmgr

Oracle Net Manager를 실행한 후, Service Naming을 선택하고 좌측 "+" 기호를 눌러 접속 정보를 추가하는 작업을 진행하겠습니다. 해당 입력란에 사용하고 싶은 별칭을 입력합니다. abc로 하겠습니다.

 

TCP/IP 방식을 사용합니다.

 

호스트 명과 연결할 리스너의 포트를 지정해줍니다.

 

연결할 데이터베이스의 서비스명을 입력해줍니다. Connection Type에서는 Shared Server 혹은 Dedicated Server로 나눠서 접속하는 옵션을 선택할 수있습니다. Database Default로 지정하겠습니다.

 

테스트 버튼을 누르게 되면 scott계정으로 확인하는 작업을 합니다. 테스트 하지않고 진행하겠습니다.

 

설정을 모두 완료했으니 좌측 상단에 File - Save Network Configuration으로 저장하고 빠져나옵니다.

 

[oracle@host01 ~]$ cd $ORACLE_HOME/network/admin
[oracle@host01 admin]$ vi tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0.2/dbhome/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ABC =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = host01)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = PROD)
    )
  )

tnsnames.ora 파일을 열어보니 ABC라는 별칭으로 데이터베이스의 접속정보가 기재되어 있습니다. 이제 해당 별칭으로 접속이 가능한지 확인해보곘습니다.

 

 

[oracle@host01 admin]$ sqlplus system/oracle@abc

 

 

Oracle Net Configuration Assistant 사용

[oracle@host01 ~]$ netca

Local Net Service Name configuration을 통해 tnsnames.ora파일에 alias를 추가할 수 있습니다.

 

Add 선택합니다.

 

접속할 서비스 명칭을 입력합니다.

 

TCP 통신 선택합니다.

 

호스트명과 사용할 리스너의 포트를 지정합니다.

 

테스트는 건너뜁니다.

 

별칭을 지정해줍니다.

 

추가 작업은 없으므로 NO 선택 후 Next

 

추가가 완료되었습니다. 이제 tnsnames.ora 파일을 다시 확인해보겠습니다.

 

[oracle@host01 ~]$ cd $ORACLE_HOME/network/admin
[oracle@host01 admin]$ vi tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0.2/dbhome/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

EFG =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = host01)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = PROD)
    )
  )

ABC =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = host01)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = PROD)
    )
  )

지정한 EFG 서비스 명이 추가된 것을 확인할 수 있습니다. 마찬가지로 접속도 확인해보겠습니다.

 

[oracle@host01 admin]$ sqlplus system/oracle@efg

접속 완료되었고 tnsnames.ora 파일을 사용해서 오라클에 접속하는 실습을 해봤습니다.

 

댓글0