Oracle&DB

물리적 독립된 다른 서버를 쿼리에서 같이 다루는 - Database Link

Code GGOON 2020. 9. 10. 14:09
반응형

서로 다른 지역에 떨어져있는 Oracle Database 서버간 테이블을 복제하거나, 

물리적으로 다른 개발 및 운영서버간의 테이블을 복제할때, 쿼리를 통해서 서로다른 데이터베이스 서버를 다루는 경우가 있다,   이떄  사용하는 ORACLE "DATABASE LINK"

 

[사용법]

1. tnsnames.ora 에 서로다른 오라클 서버의 접속정보를 모두 기재하고,

2. 어느 하나의 서버(데이터 출발지 서버)에서 "DATABASE LINK"를 생성한다.

3. 원격지 서버 쿼리 테스트, 테이블 복제 실행

4. (옵션) 완료 후 "DATABASE LINK" 제거

 

[DATABASE LINK 생성문법]

CREATE [PUBLIC] DATABASE LINK link_name

CONNECT TO user_id

IDDENTIFIED BY password

USING 'tns_connection_name' (또는 접속정보 구문)

 

[EX]

--Database Link 생성
CREATE DATABASE LINK op_serv 
CONNECT TO user IDENTIFIED BY passwd USING 'OPDB';

--Link Test(select)
SELECT * FROM tableA@op_serv;

--Database Link 삭제
DROP DATABASE LINK op_serv;

[tnsnames.ora 내용 참조]

OPDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.150)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

 

반응형