ORACLE

[ORACLE] DB LINK

from-sh 2022. 6. 28. 14:07
728x90
- Database Link 
클라이언트 또는 현재의 데이터베이스에서 네트워크상의 다른 데이터베이스에 접속하기 위한 접속 설정을 정의하는 오라클 객체 
다른 데이터베이스의 객체에 액세스 할 수있는 한 데이터베이스의 스키마 개체
고려 사항 :  ORACLE_INSTANCE 두개 이상, HOST_NAME ORACLE_SID 다름, NLS_CHARACTER_SET 동일

 

1. tnsname.ora 설정
LISTENER =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <IP> or <HOSTNAME>)(PORT = 1521))
 
     <SERVICE_NAME> =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <IP> or <HOSTNAME>)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = <SID_NAME>)
    )
  )
 
tnsping <SERVICE_NAME>
 
2. DB Link 조회
 select * from dba_db_links;
   
3. USER 생성 및 권한     
 create user test identified by "test"; [default tablespace test]
    grant resource, connect to test;
    grant create database link to test;
    grant create (public) database link to 유저명;
   
4. DB Link 설정
create <public> database link <link_name> connect to <username> identified by <password> using <service_name>;
 
    ex) create database link orcl connect to test identified by "test" using 'ORCL';
 
- public : 공용 데이터베이스 링크 생성 옵션, 사용하지 않을 경우 자신만 사용가능한 링크 생성
    
5. DB Link 사용
select * from <table명>@;</table명>
    
6. DB Link 삭제
   drop (public) database link <LINK_NAME>;
 
*tnsnames.ora 추가 없이 DB Link 설정 (1,2번 대신)
CREATE DATABASE LINK <LINK_NAME> CONNECT TO <USERNAME> IDENTIFIED BY <PASSWORD>
USING '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <IP> or <HOSTNAME>)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = <SID_NAME>)
    )';
 
728x90
댓글수1