
Oracle DB Link — Oracle 간 연동과 이기종 DB 연동 구조
1️⃣ Oracle DB Link 개요
Oracle DB Link는 한 Oracle DB 인스턴스에서 다른 데이터베이스에 직접 접속해 원격 테이블·뷰·프로시저를 호출할 수 있게 만드는 네트워크 기반 객체이다. DB 간 연동 작업(ETL, 통합 조회, 데이터 마이그레이션)을 수행할 때 가장 많이 사용되는 기능이다.
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;
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 모듈 기반으로 연결
✔ DB Link 생성 예시 (HS 설정 기반)
CREATE DATABASE LINK mssql_link
CONNECT TO "sa" IDENTIFIED BY "password"
USING 'hs_mssql';
이때 tnsnames.ora와 listener.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
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는 구조적 제약과 성능 저하가 따라오기 때문에 운영 환경에 맞는 적절한 방식 선택이 중요하다.
'지식 공유 > DBMS' 카테고리의 다른 글
| [Oracle] ORA-1013 (0) | 2025.11.24 |
|---|---|
| [Oracle] SE 기반 TPC-H 벤치마크 — 개념, 활용 상황, 기대효과 (1) | 2025.11.23 |
| [Oracle] ORA-01034, ORA-27101 오류 (0) | 2025.11.23 |
| [Oracle] CRS-1013 오류 (1) | 2025.11.23 |
| [ORACLE]ORA-04061, ORA-04065, ORA-06508, ORA-04068 (0) | 2025.11.20 |
