문서유형ㅣ기술정보
분야ㅣ인터페이스/연동
적용제품버전ㅣTibero 7.2.4
문서번호ㅣTIITI047
개요
일반적인 권장 구성은 아니며, 제약 환경에서의 참고용 가이드로 활용하시기 바랍니다.
방법
TtoO DBLINK 확인사항
ORACLE 클라이언트 라이브러리
Gateway for Oracle의 경우 내부적으로 Oracle 클라이언트 라이브러리를 사용하여 Oracle에 접속합니다.
(Oracle 서버 바이너리에 포함된 라이브러리 또는 Instant Client 라이브러리 사용이 가능합니다.)Gateway가 설치된 환경에는 Oracle 클라이언트 라이브러리가 반드시 존재해야 합니다.
Oracle 클라이언트 라이브러리가 Oracle 서버에 정상적으로 연결되지 않는 경우, DBLink 또한 연결될 수 없습니다.
본 문서에서는 Tibero 서버에 Oracle Client를 설치하지 않는 구성을 전제로 하며, Oracle 서버의 Oracle 엔진이 Oracle Client 역할을 수행합니다.
Gateway for oracle 설정 방식
1) Local 방식
Gateway를 미리 기동하지 않고 DBLink를 사용할 경우, DBLink 호출 시 Gateway 프로세스가 기동되는 방식입니다.
Tibero 서버와 Gateway for Oracle이 동일한 서버에 존재하는 경우에만 Local 방식으로 구성이 가능합니다.
이와 같은 이유로, 본 문서의 테스트는 Listener 방식에 대해서만 유효할 것으로 예상되며, 향후 Listener 방식만을 대상으로 테스트를 진행합니다.
2) Listener 방식
Gateway를 사전에 기동하여 Listening 상태로 운영하는 방식으로, 대부분의 환경에서 설정이 가능합니다.
3) Local 방식과 Listener 방식의 장단점 비교
| 방식 | 장점 | 단점 | 특징 |
|---|---|---|---|
Local |
|
|
|
Listener |
|
|
|
DBLINK 설치 및 설정
1) TBGW_HOME 환경변수 설정 - oracle server의 .bash_profile 에 TBGW_HOME 설정 [/home/ora11/.bash_profile 설정] .. ##gateway for TtoO## export TBGW_HOME=$ORACLE_HOME/gateway .. 2) Gateway 디렉토리 생성 - oracle server의 .bash_profile 에 TBGW_HOME 설정 psdblcbp:/sdiskc/oracle_jsb/oracle/19c> mkdir gateway psdblcbp:/sdiskc/oracle_jsb/oracle/19c> mkdir gateway/oracle psdblcbp:/sdiskc/oracle_jsb/oracle/19c> mkdir gateway/oracle/config psdblcbp:/sdiskc/oracle_jsb/oracle/19c> mkdir gateway/oracle/log $TBGW_HOME 하위구조 └──oracle ├── config └── log 3) gateway binary 파일 추가 /sdiske/ps1/tr/sobang/tibero7/client/bin/gw4orcl 4) gateway binary 파일 실행권한 부여 - $TB_HOME 내부에 있는 gateway binary 파일에 실행 권한을 부여합니다. [Oracle server 의 gateway binary 실행권한 설정] chmod u+x $TBGW_HOME/gw4orcl 5) tbgw.cfg 설정 - Gateway 설정 파일인 tbgw.cfg을 생성한다. - 파라미터의 설정 값을 명시함으로써 gateway 와 관련된 값을 설정합니다. cat $TBGW_HOME/oracle/config/tbgw.cfg LISTENER_PORT=9996 LOG_DIR=/sdiskc/oracle_jsb/oracle/19c/gateway/oracle/log LOG_LVL=2 MAX_LOG_SIZE=1000 MAX_LOG_CNT=5 FETCH_SIZE=32000
1) $TB_HOME/client/config/tbdsn.tbr 설정 추가
- 설치환경에 따라 정보가 다를 수 있으며, 필자의 환경설정[IP:PORT:DBNAME]은 하단과 같습니다.
t7=(
(INSTANCE=(HOST=localhost)
(PORT=58629)
(DB_NAME=t7)
)
)
ora_lisnter=(
(GATEWAY=(LISTENER=
(HOST=192.168.1.188)
(PORT=9996))
(TARGET=oraclesb)
(TX_MODE=GLOBAL)
)
)
2) Gateway binary 실행
- Gateway 설치 및 환경 설정 완료 후 Gateway binary 실행합니다.
- Gateway 프로세스 정상 기동 여부 확인합니다.
- tbgw.cfg에 설정된 LOG_DIR 파라미터 기준 로그를 생성합니다.
- 장애 발생 시 해당 로그 디렉토리 기준 원인 분석이 가능합니다.
[ps1@psdblcbp:/sdiske/ps1/tr/sobang/tibero7/client/config]$ ps -ef | grep gw4orcl
ps1 10878 25885 0 16:52 pts/0 00:00:00 grep --color=auto gw4orcl
oraclesb 39564 1 0 14:12 ? 00:00:00 ./gw4orcl
$ ls -al $TBGW_HOME/oracle/log
psdblcbp:/sdiskc/oracle_jsb> ls -al $TBGW_HOME/oracle/log
total 16
drwxr-xr-x. 2 oraclesb dba 174 Nov 18 14:55 .
drwxr-xr-x. 4 oraclesb dba 31 Nov 18 14:01 ..
-rw-r--r--. 1 oraclesb dba 358 Nov 18 14:28 gw4orcl_2_20251118141246_39564.log
-rw-r--r--. 1 oraclesb dba 358 Nov 18 14:43 gw4orcl_3_20251118141246_39564.log
-rw-r--r--. 1 oraclesb dba 358 Nov 18 14:53 gw4orcl_4_20251118141246_39564.log
-rw-r--r--. 1 oraclesb dba 350 Nov 18 14:55 gw4orcl_5_20251118141246_39564.log
DBLINK 생성 및 사용
1) tbsql 에 접속하여 DB Link Object 생성 - tbsql에 접속하여 Oracle Database Link를 생성합니다. - 아래와 같은 문법을 사용하여 DB Link 객체를 생성할 수 있습니다. (단, DB Link 생성을 위해서는 CREATE DATABASE LINK 또는 CREATE PUBLIC DATABASE LINK 권한이 필요합니다.) SQL> create database link [DB LINK 명 ] connect to 접속 사용자 ID] identified by 접속 패스워드 using 접속할 ALIAS]; ex) SQL> create public database link oralink connect to 'tuser' identified by 'tuser' using 'ora_lisnter'; /* Oracle 에 tuser 라는 유저가 존재 Database Link ORALINK created. 2) DB Link 확인 및 접속 - DBA_DB_LINKS와 같은 뷰를 통해 DBLink 생성 여부를 확인하고, 생성된 DBLink를 이용하여 Altibase에 접속합니다. SQL> select * from dba_db_links; OWNER DB_LINK USERNAME HOST CREATED ---------- ---------- ---------- -------------------- -------------------- PUBLIC ORALINK tuser ora_lisnter 2025/11/18 1 row selected. select * from dual@oralink SQL> / DUMMY ----- X 1 row selected.
DB LINK 를 이용한 데이터 조회 및 DML TEST
1) Tibero 에서 Oracle 의 table 조회
SQL> select * from tuser.test@oralink;
COL1 COL2
---------- --------------------------------------------------------------------------------------------------------------------------------------
2 tibero
1 row selected.
2) Tibero 에서 DBLink를 사용하여 INSERT 수행
SQL> insert into test@oralink values (2, 'tibero');
1 row inserted.
SQL> commit;
Commit completed.
SQL> select * from tuser.test@oralink;
COL1 COL2
---------- --------------------------------------------------------------------------------------------------------------------------------------
2 tibero
2 tibero
2 rows selected.
Gateway 프로세스 관리의 필요성
Oracle 서버에 Gateway를 설치하므로, Gateway 프로세스는 Oracle 서버에서 생성됩니다.
Oracle 서버 재기동 시 Gateway 프로세스를 다시 기동해야 DBLink가 정상적으로 동작합니다.
이러한 운영 및 관리 이슈로 인해, 본 문서에서 제시한 방식의 DBLink 생성은 권고하지 않습니다.
Gateway 로그 관리의 필요성
Oracle 서버에 Gateway를 설치하므로, Gateway 로그 또한 Oracle 서버 내에 기록됩니다.
로그가 지속적으로 누적될 경우, 별도의 로그 관리가 필요합니다.
이러한 관리 부담으로 인해, 본 문서에서 제시한 방식의 DBLink 생성은 권고하지 않습니다.
psdblcbp:/sdiskc/oracle_jsb/oracle/19c/gateway/oracle/log> ls -rlt total 16 -rw-r--r--. 1 oraclesb dba 358 Nov 18 14:28 gw4orcl_2_20251118141246_39564.log -rw-r--r--. 1 oraclesb dba 358 Nov 18 14:43 gw4orcl_3_20251118141246_39564.log -rw-r--r--. 1 oraclesb dba 358 Nov 18 14:53 gw4orcl_4_20251118141246_39564.log -rw-r--r--. 1 oraclesb dba 350 Nov 18 14:55 gw4orcl_5_20251118141246_39564.log