◈ DB Link (오라클 원격DB 연결)
현재 접속되어 있는 DB에서 원격으로 다른 곳의 DB에 연결하여 사용한다.
(난 로컬DB에 서버의 DATA를 다운로드 받을때 썼다)
기본적으로 오라클은 dblink를 사용하면 세션 연결이 지속 되기 때문에,
로컬DB의 연결을 끊거나, commit/rollback을 하여 세션을 끊어야 한다.
[사용방법]
DBA권한을 가진 유저만 DBLINK를 만들수 있기 때문에 SYSTEM같은 유저로 DBLINK를 만든다
CREATE [PUBLIC] DATABASE LINK <link_name>
CONNECT TO <user> IDENTIFIED BY <password>
USING '<service_name>';
[예 1] tnsnames에 원격DB 설정이 되어있는 경우
- DBLINK 명 : testlink
- 원격DB의 USER명 : scott
- 원격DB의 USER PASS : tiger
- 원격DB의 host명 : testdb
create public database link testlink
connect to scott identified by tiger
using 'testdb';
[예 2] tnsnames에 원격DB 설정이 되어있지 않은 경우
create public database link testlink
connect to scott identified by tiger
using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TESTDB)))';
[DB Link 전체보기]
select * from all_db_links;
[사용 1] 단순조회
select * from emp@testlink;
[사용 2] 로컬DB와 원격DB의 JOIN
select t.*, s.dname
from dept s, emp@testlink t
where t.deptno = s.deptno;
[사용 3] 원격 프로시져/함수 호출
<procedure_name>@<database_link>(<parameters>);