본문 바로가기
Tibero/기타

Tibero to Oracle DB Link(Local Gateway)

by dan.de.lion 2016. 6. 3.

Tibero To Oracle DB Link(Local Gateway)


Tibero To Oracle 10g

테스트 환경
OS : OEL release 7.2
Oralce : 10g Release 2
Tibero : 5SP1 FS04

Oracle Client 설치


  • oracle 사이트 이용하여 서버버전(리눅스 64bit)에 맞는 Instant Client를 확보한다.
    (Instant Client가 아니어도 상관은 없다. 가벼워서 사용하기 좋다.)
  • zip 파일로 적당한 위치에 압축을 푼다.(본 테스트에서는 OS 계정의 HOME경로 아래로 설정하였다.)
unzip instantclient-basic-linux-x86-64-10.2.0.3-20070103.zip

OS 계정 환경설정


  • Oracle의 client 홈경로(ORACLE_HOME) 및 Tibero Gateway 경로, Library 경로 등을 추가한다.
  • ORACLE_HOME경로는 위의 Client 설치 경로가 된다.
  • Tibero Gateway 경로는 적당한 위치로 지정한다.(본 테스트에서는 OS 계정의 HOME경로 아래로 설정하였다.)
  • 본 테스트에서는 리눅스의 bash쉘을 사용하므로 $HOME/.bash_profile을 편집한다.
    • 다른 쉘을 사용하는 경우 해당 쉘의 환경파일을 편집하면 된다.(e.g. .profile 등)
    • OS에 따라 Library 경로 설정이 달라진다.(e.g. SHLIB_PATH, LIBPATH, LD_LIBRARY_PATH 등등)
  • 아래와 같은 내용을 추가해 준다.(해당 OS 계정으로 재접속시 적용된다. 또는 강제적용(. ~/.bash_profile)한다.)
(전략)
##################ORACLE ENV##################
ORACLE_HOME=$HOME/instantclient_10_2
export ORACLE_HOME
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
export LD_LIBRARY_PATH

##############GATE WAY ENV############
TBGW_HOME=$HOME/gateway
export TBGW_HOME

GateWay 확보


  • Tibero 서버에 설치된 엔진을 통해 구할 수 있다.( $TB_HOME/client/bin에 들어있다.)
  • 티맥스소프트 TECHNET에서 설치하고자 하는 엔진을 받을 수 있다.
    (단, 회원가입이 필요하다. 이미 Tibero를 설치하려고 가입을 했다.)
  • gw4orcl이라는 이름(아마도 Gateway for oracle)으로 시작하는게 Tibero의 Oracle용 Gateway다.
  • gw4orcl, gw4orcl_11g, gw4orcl_10g 등의 이름으로 존재한다.
    (본 테스트에서는 gw4orcl_10g를 사용한다. Oracle 버전에 맞는게 좋겠다.)
  • 해당 파일을 위에서 설정한 $TBGW_HOME경로에 복사한다.
    ($TBGW_HOME$TB_HOME/client/bin으로 해도 상관은 없으니 관리가 편한 방법을 취사선택해서 사용한다.)
  • 아래 명령사용 결과에 not found 등이 없으면 정상이다.
ldd $TBGW_HOME/gw4orcl_10g
    linux-vdso.so.1 =>  (0x00007ffc543e1000)
    libclntsh.so.10.1 => $HOME/instantclient_10_2/libclntsh.so.10.1 (0x00007f4eba588000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f4eba286000)
    libnnz10.so => $HOME/instantclient_10_2/libnnz10.so (0x00007f4eb9de3000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f4eb9bdf000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4eb99c3000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f4eb9602000)
    libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f4eb93e9000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4ebb925000)

Tibero 접속정보 설정


  • $TB_HOME/client/config/tbdsn.tbr에 Gateway 접속정보를 설정해 준다.
  • 해당 정보를 사용하여 DB Link를 생성하게 된다.
(전략)
#$ALIAS=(                               #Tibero의 접속정보의 별칭
#  (GATEWAY=
#    (PROGRAM=$TBGW_HOME/gw4orcl_10g)   #gw4orcl_10g의 경로
#    (TARGET=$ORA_ALIAS)                #Oracle의 접속정보의 별칭- 다음단계에서 설정
#    (TX_MODE=GLOBAL|LOCAL)             #Transaction 모드
#  )
#)

ORA_10G=(
  (GATEWAY=
    (PROGRAM=/tibero/gateway/gw4orcl_10g)
    (TARGET=ORA_10G)
    (TX_MODE=LOCAL)
  )
)

Oralce 접속정보 설정


  • Oracle 서버에 접속하기위한 접속정보를 설정해준다.
  • $ORACLE_HOME/network/admin/경로에 설정 파일이 위치해야 하므로 폴더 생성이 필요하다.
mkdir -p $ORACLE_HOME/network/admin/
  • $ORACLE_HOME/network/admin/tnsnames.ora파일에 아래와 같이 접속정보를 작성한다.
(전략)
#$ORA_ALIAS =                                                           #Oracle의 접속정보의 별칭
#  (DESCRIPTION =
#    (ADDRESS = (PROTOCOL = TCP)(HOST = $ORA_IP)(PORT = $ora_port))     #Oracle 서버의 IP, 포트
#    (CONNECT_DATA =
#      (SERVER = DEDICATED)
#      (SERVICE_NAME = $ORACLE_SID)                                     #Oracle SID
#    )
#  )
ORA_10G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.128.10)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

  • 위의 설정된 접속정보들을 토대로 Tibero DBMS내에 DATABASE LINK 객체를 생성한다.
/* -- 생성문법
 * CREATE DATABASE LINK 링크명   -- 생성할 링크명
 * CONNECT TO 오라클계정         -- Oracle 접속 계정
 * IDENTIFIED BY '암호'          -- Oracle 계정 암호
 * USING '$ALIAS' ;              -- Tibero 접속정보
 * -- 사용방법
 * SELECT * FROM 오브젝트@링크명 ;
 */

--링크 생성
CREATE DATABASE LINK ora10g
CONNECT TO scott IDENTIFIED BY 'tiger'
USING 'ORA_10G' ;

-- 사용방법
SELECT * FROM tab@ora10g ;

  • Tibero To Oracle의 DB Link 방식은 Listener 방식과 Local Gateway 방식으로 나뉜다.
  • Listener 방식은 다음과 같은 특징이 있다.
    • 1개의 Gateway 프로세스에서 DB Link를 관장한다.
      (동일한 Tibero 접속 정보를 사용하는 경우에만 한정한다.)
    • 위의 특징에 따라 최대 접속개수 등의 설정이 가능하다.
    • Tibero에 설정된 IP, 포트로 Gateway에 접속하기 때문에 제 3의 서버에 Gateway를 띄워 사용할 수 있다.
    • Gateway를 수동으로 관리해 주어야 한다.(서버 재기동 등 발생시 수동으로 기동해야 한다.)
  • Local Gateway 방식 다음과 같은 특징이 있다.
    • Tibero에 접속하여 DB Link를 호출 하는 경우 새로운 Gateway 프로세스를 띄워 사용한다.
      (즉, DB Link를 사용하는 Tibero 세션과 Gateway가 1:1로 매칭된다. 세션이 종료되면 Gateway도 종료된다.)
    • Gateway를 수동으로 관리할 필요가 없다.(좀 더 편리하다.)
    • 대신, DB Link 사용이 많은 경우 다수의 Gateway가 동작하며 서버 리소스 소모가 발생할 수 있다.

'Tibero > 기타' 카테고리의 다른 글

PHP와 tbOCI(Tibero OCI) 연동  (0) 2016.06.14
Tibero To Tibero DB Link  (0) 2016.06.14
Tibero To MS-SQL DB Link  (0) 2016.06.03
Tibero To Sybase DB Link  (0) 2016.06.03
Tibero To Oracle DB Link(Listener)  (0) 2016.05.31

댓글