개요
Tibero 서버에서 DBLink를 통해, 다른 DBMS(예: Oracle DB)에 질의를 요청하고 결과를 조회할 수 있습니다.
질의를 요청하고 결과를 Tibero 서버에서 조회하는 방법에 대해 안내합니다.
•
Tibero to Oracle DBLink 사용 시, Tibero 서버에서 Oracle Client의 설치, 관리가 용이합니다.
방법
DBLink 관련 주요 View
View | 설명 |
V$DBLINK | 해당 세션에서 원격 DB에 연결된 데이터베이스 링크 정보 확인 가능 |
DBA_DB_LINKS | Tibero 내의 모든 데이터베이스 링크의 정보 확인 가능 |
ALL_DB_LINKS | 현재 사용자가 이용할 수 있는 모든 데이터베이스 링크의 정보 확인 가능 |
USER_DB_LINKS | 현재 사용자가 생성한 데이터베이스 링크의 정보 확인 가능 |
DBLink 사용 전 사전 확인 사항
1.
Tibero 바이너리에서 지원하는 Gateway 파일 확인
Gateway 파일 위치
$TB_HOME/client/bin/gw4orcl
2.
Oracle Client 설치
•
대상 Oracle 버전에 맞는 Oracle Client 바이너리 다운 및 압축 해제
•
Tibero Engine 디렉토리 외부에 설치
DBLink 제약 사항
항목 | 제약 사항 |
데이터 타입 지원 | LONG, RAW, NCLOB Type 미지원 |
LOB, LONG 일부 지원 | 지원가능 형태
- insert into (local) ~ select from (dblink)
- insert into (dblink) ~ select from (local) |
UDF (User Defined Function) | PSM (Persistent Stored Modules) 내부에서는 사용 가능 |
DBLink 과정
1.
Tibero 서버에서 tbsql 접속
•
@oracle 등 지정된 alias로 tbdsn.tbr에 설정한 SID로 접속
2.
tbdsn.tbr에서 정보 확인
•
Gateway 위치 정보와 Target 확인 ($TBGW_HOME에서 tbgw.cfg 위치 확인 가능)
3.
tbgw.cfg 파일 확인
•
설정된 Listener Port(ex-9999)로 연결 시도
4.
tnsnames.ora 파일 확인
•
Target에 해당되는 Oracle 서버 접속 정보 확인 (IP, PORT, SERVICE_NAME)
[그림 1] DBLink 과정
제약 사항 테스트 (LONG, LOB)
1.
Target DB(Oracle) 데이터 생성
LONG 타입 테이블 생성
SQL> CREATE TABLE long_data (
2 c1 NUMBER,
3 c2 LONG );
SQL> INSERT INTO long_data VALUES (1, 'This is some long data to be migrated to a CLOB');
SQL> INSERT INTO long_data VALUES (2, 'long컬럼을 clob으로 마이그레이션 하기 위한 테스트 데이터');
SQL> SELECT * FROM LONG_DATA;
C1 C2
---------- --------------------------------------------------------------------------------
1 This is some long data to be migrated to a CLOB
2 long컬럼을 clob으로 마이그레이션 하기 위한 테스트 데이터
SQL
복사
LOB 타입 테이블 생성
SQL> CREATE TABLE test_lobs(
2 c1 NUMBER,
3 c2 CLOB );
SQL> INSERT INTO test_lobs VALUES (1, 'This is some long data to be migrated to a CLOB');
SQL> INSERT INTO test_lobs VALUES (2, 'long컬럼을 clob으로 마이그레이션 하기 위한 테스트 데이터');
SQL> select * from test_lobs;
C1 C2
---------- --------------------------------------------------------------------------------
1 This is some long data to be migrated to a CLOB
2 long컬럼을 clob으로 마이그레이션 하기 위한 테스트 데이터
SQL
복사
2.
Tibero to Oracle dblink 조회
Long type 데이터 조회
일부 데이터 정상 조회 (한글 깨짐 가능성)
SQL> select * from long_data@ora3;
C1 C2
---------- -------------------------------------
1 This is some long data to be migrated to a CLOB
2 longlob Ʈ Դϴ
2 rows selected.
SQL
복사
LOB type 데이터 조회
LOB 확인 시 에러 발생, LOB 타입 직접 조회는 불가
SQL> select * from test_lobs@ora3;
C1 C2
---------- -------------------------------------
1 TBR-2102: Failed to read LOB data.
TBR-26020: Cannot read a LOB object in a remote server.
SQL
복사