본문 바로가기
Tibero/기타

Tibero To Sybase DB Link

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

Tibero To Sybase DB Link


Tibero To Sybase

테스트 환경
OS : OEL release 7.2
Java : 1.6.0_45
Tibero : 5SP1 FS04

Sybase JDBC 확보


  • Syabase JDBC(jconn)의 확보가 필요하다.
  • 문제는 공식 사이트에서 구하긴 힘들다.
  • 구글링을 통행 구하자.(본 테스트에서는 jconn4.jar를 사용한다.)

OS 계정 환경설정


  • 기존의 Oracle DB Link와는 달리 특별한 설정은 필요없다.
  • 단, 이번에 사용하는 Gateway는 JAVA 기반으로 JAVA 설치가 필요하다.
  • JAVA는 1.5 이상이면 되는것 같다.(매뉴얼에도 특별한 언급이 없다.기대하지도 않았다.)
  • 사용할 JAVA의 $PATH정도만 설정해주면 된다.
  • 본 테스트에서는 리눅스의 bash쉘을 사용하므로 $HOME/.bash_profile을 편집한다.
(전략)
##################JAVA ENV##################
export JAVA_HOME=/usr/java/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin

GateWay 확보 및 실행


  • Tibero 서버에 설치된 엔진을 통해 구할 수 있다.( $TB_HOME/client/bin에 들어있다.)
  • 티맥스소프트 TECHNET에서 설치하고자 하는 엔진을 받을 수 있다.
    (단, 회원가입이 필요하다. 이미 Tibero를 설치하려고 가입을 했다.)
  • tbgateway.zip이라는 이름의 zip파일로 존재한다.
  • 적당한 위치로 복사하여 압축을 풀어준다.
cp $TB_HOME/client/bin/tbgateway.zip ~/.
unzip ~/tbgateway.zip
Archive:  tbgateway.zip
   creating: tbJavaGW/
   creating: tbJavaGW/lib/
  inflating: tbJavaGW/README_SERVICE.txt  
  inflating: tbJavaGW/jgw.cfg        
  inflating: tbJavaGW/jgwlog.properties  
  inflating: tbJavaGW/lib/commons-collections.jar  
  inflating: tbJavaGW/lib/commons-daemon-1.0.6.jar  
  inflating: tbJavaGW/lib/commons-pool.jar  
  inflating: tbJavaGW/lib/log4j-1.2.15.jar  
  inflating: tbJavaGW/lib/tbgateway.jar  
  inflating: tbJavaGW/tbgw           
  inflating: tbJavaGW/service_gw.bat 
  • 압축을 풀면 tbJavaGW란 폴더가 생긴다.
  • tbJavaGW/tbgw파일의 classpath등 을 수정한다.
  • JAVA 기반으로 필요한 경우 다른 옵션들에 대한 수정도 가능하다.
  • 본 테스트에서는 asejdbcjconn버전만 변경한다.
#!/bin/sh

#Classpath
commonsdaemon=./lib/commons-daemon-1.0.6.jar
commonspool=./lib/commons-pool.jar
commonscollections=./lib/commons-collections.jar
log4j=./lib/log4j-1.2.15.jar
msjdbc=./lib/sqljdbc.jar:./lib/sqljdbc4.jar
#asejdbc=./lib/jconn3.jar #사용할 jconn으로 변경한다. jconn3.jar를 사용하는 경우에는 무관하다.
asejdbc=./lib/jconn4.jar
postgresqljdbc=./lib/postgresql-8.4-701.jdbc3.jar
gateway=./lib/tbgateway.jar

#log4j properties
#log4jfile must be exists on classpath
log4jfile=jgwlog.properties

#Main Class
mainclass=com.tmax.tibero.gateway.main.GatewayMain
configfile=./jgw.cfg

if [[ $# -gt 0 ]] && [[ $1 = "-v" ]] ; then
    java -jar $gateway
else
    java -Xms128m -Xmx512m -Dlog4j.configuration=$log4jfile -classpath $commonsdaemon:$commonspool:$commonscollections:$log4j:$gateway:$msjdbc:$asejdbc:$postgresqljdbc:. $mainclass CONFIG=$configfile $* &
    sleep 1
fi
  • tbJavaGW/lib 폴더에 첫단계에서 확보한 jconn파일을 복사한다.
  • tbJavaGW/jgw.cfg파일이 Gateway의 환경설정 파일이며 필요한 정보를 수정하여 사용한다.
  • 설명이 없는 INIT_POOL_SIZE, MAX_POOL_SIZE 등은 Tibero 5SP1 Administrator’s Guide를 참조하면 된다.
#DATABASE=ASE|SQL_SERVER #접속할 데이터베이스의 종류를 명시한다.(순서대로 Sybase, MS Sql)
DATABASE=ASE
#LISTENER_PORT=$GW_PORT  #GW 사용포트
LISTENER_PORT=9093
INIT_POOL_SIZE=10
MAX_POOL_SIZE=100
MAX_CURSOR_CACHE_SIZE=100
ENCODING=MSWIN949
MAX_LONGVARCHAR=4K
MAX_LONGRAW=4K
  • 모든 설정이 완료되었으면 Gateway를 실행시킨다.
  • tbJavaGW/tbgw 파일을 실행시키면 된다.
~/tbJavaGW/tbgw             #설치한 위치에 따라 변경이 필요하다.

-------------------------------
 Name : TmaxData JAVA GATEWAY
 Database: 0
 Port : 9093
-------------------------------

netstat -na | grep 9093 #GW 사용포트
tcp6       0      0 :::9093                 :::*                    LISTEN

Tibero 접속정보 설정


  • $TB_HOME/client/config/tbdsn.tbr에 Gateway 접속정보를 설정해 준다.
  • 해당 정보를 사용하여 DB Link를 생성하게 된다.
  • 기존의 Oracle DB Link와 차이가 있다면 해당의 경우 IP, 포트 등의 정보를 하나의 파일에서 관리한다.
(전략)
#$ALIAS=(                                   #접속 정보 명칭
#  (GATEWAY=
#   (LISTENER=
#      (HOST=$GW_IP)                        #GW 실행서버 IP
#      (PORT=$GW_PORT)                      #GW 실행서버 PORT
#   )
#    (TARGET=$ASE_IP:$ASE_PORT:$ASE_DBNAME) #Sybase 접속 정보(IP, PORT, DBNAME)
#    (TX_MODE=GLOBAL|LOCAL)                 #Transaction 모드
#  )
#)

ASE=(
  (GATEWAY=
   (LISTENER=
      (HOST=localhost)
      (PORT=9093)
   )
    (TARGET=192.168.16.25:2048:master)
    (TX_MODE=LOCAL)
  )
)

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

--링크 생성
CREATE DATABASE LINK ASE_LINK
CONNECT TO sa IDENTIFIED BY 'sybaseadmin'
USING 'ASE' ;

-- 사용방법
SSELECT * FROM emp@ASE_LINK ;    -- "테이블명"@"DB Link 명"

  • Sybase와 같이 JAVA Gateway를 사용하는 경우 DB Link 방식은 Listener 방식과 구성 및 동작이 동일하다.
  • 다만, C 기반이냐 JAVA 기반이냐의 차이일 뿐이다.

'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 Oracle DB Link(Local Gateway)  (0) 2016.06.03
Tibero To Oracle DB Link(Listener)  (0) 2016.05.31

댓글