오라클 DB 링크(DB Link) 완벽 가이드: 생성부터 삭제까지

Oracle Database Link(DB Link)는 서로 다른 데이터베이스 간에 데이터를 쉽게 공유할 수 있는 강력한 기능입니다. 이 글에서는 DB Link의 개념, 권한 설정, 생성, 조회, 삭제 방법까지 단계별로 정리했습니다. 이 가이드 하나로 DB Link를 완벽히 이해하고 사용할 수 있습니다.

오라클 DB 링크(DB Link) 완벽 가이드: 생성부터 삭제까지오라클 DB 링크(DB Link) 완벽 가이드: 생성부터 삭제까지


1. DB Link란?

DB Link는 한 데이터베이스에서 다른 데이터베이스에 연결하여 데이터를 조회하거나 조작할 수 있는 Oracle Database의 객체입니다. 이를 통해 개발자는 서로 다른 데이터베이스 간의 데이터 통합과 관리를 쉽게 수행할 수 있습니다.

사용 예시

  • A 시스템의 데이터를 B 시스템으로 가져오기
  • 서로 다른 물리적 서버에 있는 데이터 동기화
  • 멀티테넌트 환경에서 데이터 액세스

2. DB Link 생성 전 필요한 권한

DB Link를 생성하기 위해 아래 권한이 필요합니다:

1) CREATE DATABASE LINK 권한

DB Link를 생성하려면 반드시 이 권한이 필요합니다.

GRANT CREATE DATABASE LINK TO 사용자명;

2) CONNECT 권한

연결하려는 대상 데이터베이스에 접속하려면 사용자 계정에 CONNECT 권한이 있어야 합니다.

GRANT CONNECT TO 대상_사용자명;

3. DB Link 생성 방법

DB Link는 두 가지 유형으로 나뉩니다:

  • Public DB Link: 모든 사용자가 접근 가능
  • Private DB Link: 특정 사용자만 접근 가능

1) Private DB Link 생성

CREATE DATABASE LINK private_link_name
CONNECT TO 대상_사용자명 IDENTIFIED BY 비밀번호
USING '(DESCRIPTION=
         (ADDRESS=(PROTOCOL=TCP)(HOST=호스트명)(PORT=1521))
         (CONNECT_DATA=(SERVICE_NAME=서비스명)))';

2) Public DB Link 생성

CREATE PUBLIC DATABASE LINK public_link_name
CONNECT TO 대상_사용자명 IDENTIFIED BY 비밀번호
USING '(DESCRIPTION=
         (ADDRESS=(PROTOCOL=TCP)(HOST=호스트명)(PORT=1521))
         (CONNECT_DATA=(SERVICE_NAME=서비스명)))';

3) Easy Connect 방식

TNS 설정 없이 간단하게 생성할 수도 있습니다:

CREATE DATABASE LINK simple_link
CONNECT TO 대상_사용자명 IDENTIFIED BY 비밀번호
USING '호스트명:1521/서비스명';

4. DB Link 사용 방법

DB Link를 생성했다면 이제 실제로 사용하는 방법을 알아보겠습니다.

1) 원격 데이터 조회

SELECT * 
FROM 테이블명@private_link_name;

2) 원격 데이터 조작

INSERT INTO 로컬_테이블
SELECT * 
FROM 원격_테이블@private_link_name;

3) 조인 사용

SELECT a.컬럼1, b.컬럼2
FROM 로컬_테이블 a
JOIN 원격_테이블@private_link_name b
ON a.컬럼 = b.컬럼;

5. DB Link 조회

DB Link 목록과 정보를 확인하려면 아래 쿼리를 실행합니다:

1) Private DB Link 조회

SELECT * FROM USER_DB_LINKS;

2) Public DB Link 조회

SELECT * FROM DBA_DB_LINKS;

조회 결과

OWNER DB_LINK HOST CREATED
SCOTT PRIVATE_LINK db_host_1 2024-11-28

6. DB Link 삭제

사용하지 않는 DB Link는 반드시 삭제해야 보안과 성능 이슈를 방지할 수 있습니다.

1) Private DB Link 삭제

DROP DATABASE LINK private_link_name;

2) Public DB Link 삭제

DROP PUBLIC DATABASE LINK public_link_name;

7. 실제 사용 사례

1) 데이터 마이그레이션

A 데이터베이스에서 B 데이터베이스로 대량 데이터를 옮길 때 DB Link를 사용하면 간편하게 데이터를 전송할 수 있습니다.

2) 다중 데이터베이스 통합

멀티테넌트 환경이나 이종 시스템 간 통합 작업에서 DB Link는 개발자의 시간을 대폭 절약해줍니다.


8. 보안 고려사항

DB Link 사용 시 보안 문제를 항상 염두에 두어야 합니다.

  • 비밀번호 관리: 대상 계정의 비밀번호를 주기적으로 변경하고, 보안 설정을 강화합니다.
  • 접근 제어: Public DB Link는 꼭 필요한 경우에만 사용하며, Private DB Link를 기본으로 설정합니다.
  • 암호화 사용: Oracle Advanced Security 옵션을 통해 네트워크 트래픽을 암호화합니다.

9. 결론

오라클 DB Link는 데이터베이스 간 데이터 공유를 간소화하는 매우 유용한 기능입니다. 하지만 잘못된 사용은 보안 취약점이 될 수 있으니, 권한 관리와 보안 설정을 꼼꼼히 해야 합니다. 이 가이드를 참고하여 DB Link를 안전하고 효율적으로 활용해 보세요!


참고 자료

  • Oracle 공식 문서
  • 실무 경험 기반 DB Link 활용 노하우

이 글이 도움이 되셨다면 공유와 댓글로 응원 부탁드립니다! 😊
DB Link와 관련된 질문이 있다면 언제든지 남겨주세요.