데이터베이스/ORACLE

[DB LINK] Oracle to Tibero DBLink (1) 설정

서울 유생 2025. 6. 30. 13:20
반응형

ORACLE DB 에서 Tibero 로 DB Link를 생성하여 데이터를 공유한다.
○ 누구나 이해하고 구성할 수 있게 작성했으니 손쉽게 구성해서 테스트해보시길!

오라클 버전11g
티베로 버전7

오라클에서 DBLINK를 이용하려면 티베로 클라이언트를 설치해야한다.

# gateway 확인

ls -la $ORACLE_HOME/bin/dg4odbc

## 없는 경우 설치 ##

티베로 클라이언트를 설치하고 다음과 같이 설정.

# user 생성
useradd tibero
passwd tibero


# tibero 파일 압축 해제

tibero7-bin-FS02_PS03-linux64_3.10-292346-20250421165611.tar.gz

tar -zxvf tibero7-bin-FS02_PS03-linux64_3.10-292346-20250421165611.tar.gz


ls | grep tibero

tibero7
tibero7-bin-FS02_PS03-linux64_3.10-292346-20250421165611.tar.gz

# bash profile 생성

vi ~/.bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

# 종료 후 저장

source ~/.bash_profile


# 권한 부여

chmod -R 755 /home/tibero/tibero7

DBLink 준비 완료.
티베로에서 클라이언트 파일은 현재 따로 없으며 데모 버전 다운로드 후에 tbdsn.tbr 파일과 같은 모듈과 파일만 수정하고 사용하면 된다.
(gen_tip.sh 라는 설치 파일은 실행하지 않아도 된다.)
티베로 클라이언트 설정

vi /home/tibero/tibero7/client/config/tbdsn.tbr

tibero=(
    (INSTANCE=(HOST=10.202.10.202) --> 원격지 IP
              (PORT=8629) --> 원격지 PORT
              (DB_NAME=tibero) --> TIBERO Config 설정 SID
    )
)

오라클 ENV 설정

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export ORACLE_BASE=/DATA/oraprod
export ORACLE_HOME=$ORACLE_BASE/11g
export ORACLE_SID=oraprod
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export TNS_ADMIN=/DATA/oraprod/11g/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin

# Oracle To Tibero DB Link Setting

export TB_HOME=/home/tibero/tibero7
export LD_LIBRARY_PATH=$TB_HOME/client/lib:$LD_LIBRARY_PATH
export PATH=$TB_HOME/client/bin:$PATH

오라클 TNS 설정

# tnsnames.ora Network Configuration File: /DATA/oraprod/11g/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORAPROD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oraprod)
    )
  )


tibero =
  (DESCRIPTION =
            (ADDRESS=(PROTOCOL=TCP)(HOST=10.202.10.202)(PORT=1515))
            (CONNECT_DATA=(SID=tibero))
            (HS=OK)
     )

LISTENER_ORAPROD =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202)(PORT = 1521))

 
오라클 리스너 설정

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = oraprod)
      (ORACLE_HOME = /DATA/oraprod/11g)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202)(PORT = 1521))
    )
  )

tibero =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202) --> 로컬에서 사용하는 리스너 IP
      (PORT = 1515) --> 리스너 포트
      )
    )
  )

SID_LIST_tibero =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = tibero)
      (ORACLE_HOME = /DATA/oraprod/11g)
      (PROGRAM=dg4odbc)  ##10g일 경우 hsodbc를 사용
    )
)

ADR_BASE_LISTENER = /DATA/oraprod

오라클 리스너 시작 & ora-init<SID>.ora 파일 생성

$ lsnrctl start tibero

$ lsnrctl status tibero 

## lsnrctl status tibero  --> lsnrctl status [Alias] 설정했던 Alias를 입력합니다..

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-JUN-2025 10:13:20

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.202.10.202)(PORT=1515)))
STATUS of the LISTENER
------------------------
Alias                     tibero
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                27-JUN-2025 16:20:00
Uptime                    2 days 17 hr. 53 min. 20 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /DATA/oraprod/11g/network/admin/listener.ora
Listener Log File         /DATA/oraprod/diag/tnslsnr/sam/tibero/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.202.10.202)(PORT=1515)))
Services Summary...
Service "tibero" has 1 instance(s).
  Instance "tibero", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully


$ netstat -alnpt | grep LISTEN]

tcp        0      0 10.202.10.202:1515      0.0.0.0:*               LISTEN      114291/tnslsnr


# initial parameter 구성
# init 파일 생성 init<SID_NAME>.ora 파일 생성한다.

$ cd /DATA/oraprod/11g/hs/admin

## 다른 곳에서는 cp initdg4odbc.ora  --> copy 후에 수정하라고 하지만 저는 생략하고
## 필요한 것만 작성했습니다.

$ vi inittibero.ora
HS_FDS_CONNECT_INFO = tibero
HS_FDS_SHAREABLE_NAME = /home/tibero/tibero7/client/lib/libtbodbc.so
HS_FDS_TRACE_LEVEL = DEBUG
HS_LANGUAGE=AMERICAN_AMERICA.KO16MSWIN949

## 저장 후 tibero lib module 테스트

ldd /home/tibero/tibero7/client/lib/libtbodbc.so

ldd /home/tibero/tibero7/client/lib/libtbodbc.so
        linux-vdso.so.1 =>  (0x00007ffe99a78000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f751eef0000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f751ebee000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f751e9e6000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f751e618000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f7520d5e000)
        
 ## "not found"가 없어야 정상

DB LINK 생성

sqlplus '/as sysdba'

SQL> create user linktester identified by "112233"; 

User created.

SQL> grant connect, resource to linktester;

Grant succeeded.

SQL> grant create database link to linktester;

Grant succeeded.

## DB LINK 생성 ##

create database link tibero connect to linktester identified by "112233" using 'tibero';

## 잘 생성 되었는지 조회 ## 
SELECT * FROM DBA_DB_LINKS WHERE OWNER ='LINKTESTER';

티베로 원격지 접속 테스트

$ tbsql linktester/112233@tibero; --> @DBLINK Alias명

tbSQL 7

TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.

Connected to Tibero using tibero.

 
 
오라클에서 티베로 원격지 데이터 조회

sqlplus '/as sysdba'

SQL> conn linktester/112233
Connected.

SQL> select * from tb_test_lis@tibero;

CONTENT
--------------------------------------------------------------------------------
x   o   r
n   o   t
o   r
a   n   d

문제 없이 잘 조회된다.
이걸로 Oracle to Tibero DB LINK 구성을 마침. 간략하게 순서를 정리해드릴게요.
1. 오라클 Gateway 확인 →  2. 티베로 클라이언트 설치 및 환경설정  → 3. 오라클 env 및 리스너 등록, 시작 →  4. 오라클 init.ora 등록 →  5. DB LINK USER 및 권한 부여 →  6. DB LINK 생성 →  7. 원격지 데이터 조회