[Oracle] DB Link — Oracle 간 연동과 이기종 DB 연동 구조

반응형

Oracle DB Link — Oracle 간 연동과 이기종 DB 연동 구조

Oracle DB Link — Oracle 간 연동과 이기종 DB 연동 구조

Oracle DB Link — Oracle 간 연동과 이기종 DB 연동 구조

1️⃣ Oracle DB Link 개요

Oracle DB Link는 한 Oracle DB 인스턴스에서 다른 데이터베이스에 직접 접속해 원격 테이블·뷰·프로시저를 호출할 수 있게 만드는 네트워크 기반 객체이다. DB 간 연동 작업(ETL, 통합 조회, 데이터 마이그레이션)을 수행할 때 가장 많이 사용되는 기능이다.

✔ 원격 DB의 객체를 로컬 DB처럼 사용 ✔ SQL 문장 내부에서 직접 호출 가능 ✔ Oracle-to-Oracle, Oracle-to-이기종(DB2·MSSQL·PostgreSQL 등) 모두 지원 ✔ 네트워크 지연 및 인증 오류로 문제 발생 가능

2️⃣ Oracle to Oracle DB Link 구조

가장 표준적인 형태의 DB Link 방식으로, 동일한 Oracle Net(TNS Listener) 프로토콜 기반으로 통신한다. Oracle 환경에서는 이 방식이 가장 안정적이며 성능 손실도 적다.

✔ 동작 방식

  • 로컬 Oracle 인스턴스가 TNS Listener를 통해 원격 Oracle에 접속
  • 원격 DB의 사용자 인증 수행
  • SELECT / INSERT / UPDATE / DELETE / PL/SQL 실행 가능
  • Commit / rollback은 로컬 DB 트랜잭션에 종속

✔ DB Link 생성 예시

CREATE DATABASE LINK remote_oracle
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'REMOTE_TNS';

✔조회 예시

SELECT * FROM employees@remote_oracle;
Oracle 간 연결은 TNS 구성만 올바르면 가장 안정적이며 보안·권한·성능 측면에서도 관리가 수월하다.

3️⃣ Oracle to 이기종 DB Link 구조

Oracle이 MSSQL, PostgreSQL, MySQL 같은 이기종 DB로 연결하려면 기본 DB Link로는 동작할 수 없으며, Heterogeneous Services(HS) 또는 Oracle Database Gateway 기능이 필요하다.

✔ 구조 개요

  • Oracle → Oracle Gateway → 이기종 DB
  • HS(Heterogeneous Services) 엔진이 SQL 변환·데이터 타입 매핑 처리
  • ODBC 기반 또는 Gateway 모듈 기반으로 연결
✔ Oracle은 모든 SQL 구문을 이기종 DB에 맞게 변환해야 하므로 Oracle-to-Oracle보다 속도 저하가 발생할 수 있다. ✔ 조인, 함수, PL/SQL도 제한사항이 존재한다.

✔ DB Link 생성 예시 (HS 설정 기반)

CREATE DATABASE LINK mssql_link
CONNECT TO "sa" IDENTIFIED BY "password"
USING 'hs_mssql';

이때 tnsnames.oralistener.ora에는 HS 모듈 또는 Gateway를 위한 별도 SID가 등록되어 있어야 한다.

✔ 조회 예시

SELECT * FROM Customers@mssql_link;

4️⃣ 일반적으로 발생하는 오류 원인 분석

Oracle DB Link 구성 시 자주 발생하는 오류는 다음과 같다.

  • TNS Listener 미동작 → ORA-12170 / ORA-12541
  • 원격 계정 권한 부족 → ORA-01017
  • Firewall 차단 → 연결 지연/실패
  • 이기종 Gateway 설정 오류 → ORA-28500 / ORA-28545
  • 데이터 타입 변환 오류 → Character set mismatch
DB Link 오류의 절반 이상은 TNS 설정 불일치 · Listener 문제 · 네트워크 차단 이 세 가지 원인에 의해 발생한다.

5️⃣ 오류 분석 흐름도

DB Link 문제를 점검할 때는 아래 순서로 확인하는 것이 가장 효과적이다.

  • 1단계: 원격 서버 Listener 및 포트 개방 여부 확인
  • 2단계: tnsnames.ora / listener.ora 매칭 검증
  • 3단계: 계정 권한 및 PASSWORD VALIDATION 정책 확인
  • 4단계: SQL*Plus로 직접 접속 테스트
  • 5단계: 이기종 Gateway 로그 및 ODBC Driver 상태 점검

6️⃣ Oracle DB Link 운영 시 권장 사항

  • LINK 계정은 최소 권한 원칙 적용
  • Gateway 모듈은 최신 버전 유지
  • 대량 처리 작업은 DB Link 대신 ETL(ODI, GoldenGate 등) 권장
  • 네트워크 구간 암호화(TLS/SSL) 적용
  • DB Link 실패 시 재시도 로직 구성

Oracle-to-Oracle DB Link는 안정성이 높지만, 이기종 DB Link는 구조적 제약과 성능 저하가 따라오기 때문에 운영 환경에 맞는 적절한 방식 선택이 중요하다.

반응형
LIST