본문 바로가기
Tibero/기타

Tibero To MS-SQL DB Link

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

Tibero To MS-SQL DB Link


Tibero To MS-SQL

테스트 환경

OS : OEL release 7.2
Java : 1.6.0_45
Tibero : 5SP1 FS04

MS-SQL JDBC 확보


  • Syabase DBLINK와 마찬가지로 MS-SQL JDBC가 필요하다.
  • JDBC는 MS공식 사이트에서 다운 받을 수 있다.
  • JDBC 버전 별 정보는 여기서 확인 가능하다.
  • 각 환경에 맞는 JDBC를 확인하여 사용하면 된다.

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 기반으로 필요한 경우 다른 옵션들에 대한 수정도 가능하다.
  • SQL Server의 경우 msjdbcsqljdbc버전만 변경한다.
#!/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
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 폴더에 첫단계에서 확보한 sqljdbc파일을 복사한다.
  • tbJavaGW/jgw.cfg파일이 Gateway의 환경설정 파일이며 필요한 정보를 수정하여 사용한다.
  • 설명이 없는 INIT_POOL_SIZE, MAX_POOL_SIZE 등은 Tibero 5SP1 Administrator’s Guide를 참조하면 된다.
#DATABASE=ASE|SQL_SERVER #접속할 데이터베이스의 종류를 명시한다.(순서대로 Sybase, MS Sql)
DATABASE=SQL_SERVER
#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
  • 참고사항

    Gateway 종료시 해당 프로세스를 kill시켜야 한다.
    별도의 종료 명령은 존재하지 않는다.

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=MSSQLIP:MSSQLIP:MSSQL_PORT:$MSSQL_DBNAME)  #MSSQL 접속 정보(IP, PORT, DBNAME)
#    (TX_MODE=GLOBAL|LOCAL)                             #Transaction 모드
#  )
#)

SQL_SERVER=(
  (GATEWAY=
   (LISTENER=
      (HOST=localhost)
      (PORT=9093)
   )
    (TARGET=192.168.16.25:1433:master)
    (TX_MODE=LOCAL)
  )
)

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

--링크 생성
CREATE DATABASE LINK SQL_SERVER_LINK
CONNECT TO tibero IDENTIFIED BY 'tmax'
USING 'SQL_SERVER' 

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

여담


  • Syabase DBLINK와 마찬가지로 JAVA Gateway를 사용한다.
  • 따라서, Driver 경로설정을 제외한 모든 부분이 같다.(이 페이지는 의미가 없다)

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

PHP와 tbOCI(Tibero OCI) 연동  (0) 2016.06.14
Tibero To Tibero DB Link  (0) 2016.06.14
Tibero To Sybase 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

댓글