DBLink(Database Link) 250103
q1: DBLink(Database Link)
a1:
**DBLink(Database Link)**는 데이터베이스 간에 연결을 설정하여 한 데이터베이스에서 다른 데이터베이스의 객체(테이블, 뷰 등)에 접근할 수 있도록 하는 기능입니다. 주로 이종 데이터베이스 간 데이터 전환이나 통합 작업에서 사용됩니다.
DBLink의 주요 개념
1. 데이터베이스 간 연결
• 서로 다른 데이터베이스에 연결하여 원격 데이터베이스에 저장된 데이터를 조회하거나 조작할 수 있습니다.
• 예: Oracle DB에서 MySQL DB의 데이터를 조회하거나 반대로 MySQL에서 Oracle 데이터를 가져오기.
2. SQL 쿼리를 통한 데이터 접근
• 원격 데이터베이스의 테이블을 로컬 데이터베이스의 테이블처럼 사용할 수 있습니다.
• 예: SELECT * FROM remote_table@DBLink;
3. 데이터 전환 및 통합
• 시스템 이전, 데이터 마이그레이션, 또는 분산된 데이터 통합 시 주로 활용됩니다.
DBLink의 주요 용도
1. 데이터 전환(Data Migration)
• 기존 시스템에서 새로운 시스템으로 데이터를 이동할 때, 원격 데이터베이스와 연결하여 실시간으로 데이터를 전환.
• 예: Oracle에서 PostgreSQL로 데이터 이전.
2. 데이터 통합(Data Integration)
• 분산된 데이터베이스 간에 데이터를 통합하여 조회하거나 병합할 때 사용.
• 예: 여러 지역에 분산된 지점 데이터베이스에서 데이터를 모아 본사에서 분석.
3. 애플리케이션 연동
• 이종 시스템 간 데이터 공유 및 애플리케이션 연동을 지원.
• 예: ERP 시스템과 CRM 시스템 간 데이터 조회.
DBLink 설정 및 사용
1. DBLink 생성 (Oracle 기준)
CREATE DATABASE LINK my_dblink
CONNECT TO remote_user
IDENTIFIED BY 'password'
USING 'remote_db';
• my_dblink: DBLink의 이름.
• remote_user: 원격 데이터베이스의 사용자 계정.
• remote_db: 원격 데이터베이스의 서비스 이름(TNS).
2. DBLink를 통한 데이터 조회
SELECT * FROM employees@my_dblink;
3. DBLink 삭제
DROP DATABASE LINK my_dblink;
DBLink의 장점
1. 실시간 데이터 접근
• 원격 데이터베이스의 최신 데이터를 실시간으로 활용 가능.
2. 관리 용이성
• 별도의 데이터 복사 없이도 데이터 통합 작업을 수행할 수 있음.
3. 비용 효율성
• 데이터 이동을 최소화하여 네트워크 및 스토리지 비용 절감.
DBLink의 한계 및 주의사항
1. 보안 문제
• DBLink는 사용자 계정과 비밀번호를 저장하므로, 외부로부터의 접근 위험이 존재.
• 데이터 전송 시 암호화되지 않으면 보안 취약점 발생 가능.
2. 성능 문제
• 대량 데이터를 원격으로 조회하면 네트워크 트래픽이 증가하여 성능 저하가 발생할 수 있음.
• 원격 쿼리 실행 속도가 로컬 데이터베이스보다 느림.
3. 종속성 문제
• 원격 데이터베이스가 중단되면 DBLink를 사용하는 작업도 실패할 수 있음.
4. 이종 DB 간 호환성
• 서로 다른 DBMS 간에는 일부 SQL 구문이나 데이터 형식이 호환되지 않을 수 있음.
DBLink 대안
1. ETL(Extract, Transform, Load)
• ETL 도구(Talend, Informatica, Pentaho)를 사용하여 데이터를 변환 후 로컬로 복사.
2. API 또는 웹 서비스 활용
• REST API나 SOAP을 통해 데이터 교환.
3. 데이터 복제
• 원격 데이터베이스 데이터를 정기적으로 로컬에 복제하여 활용.
• 예: Oracle GoldenGate, MySQL Replication.
DBLink는 데이터 전환이나 통합 작업에서 매우 유용하지만, 사용 시 보안과 성능을 고려한 설계가 중요합니다.