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
등등)
- 다른 쉘을 사용하는 경우 해당 쉘의 환경파일을 편집하면 된다.(e.g.
- 아래와 같은 내용을 추가해 준다.(해당 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)
)
)
DB Link 생성 및 사용
- 위의 설정된 접속정보들을 토대로 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 ;
DB Link 방식
- Tibero To Oracle의 DB Link 방식은
Listener
방식과Local Gateway
방식으로 나뉜다. Listener
방식은 다음과 같은 특징이 있다.
- 1개의 Gateway 프로세스에서 DB Link를 관장한다.
(동일한 Tibero 접속 정보를 사용하는 경우에만 한정한다.) - 위의 특징에 따라 최대 접속개수 등의 설정이 가능하다.
- Tibero에 설정된 IP, 포트로 Gateway에 접속하기 때문에 제 3의 서버에 Gateway를 띄워 사용할 수 있다.
- Gateway를 수동으로 관리해 주어야 한다.(서버 재기동 등 발생시 수동으로 기동해야 한다.)
- 1개의 Gateway 프로세스에서 DB Link를 관장한다.
Local Gateway
방식 다음과 같은 특징이 있다.
- Tibero에 접속하여 DB Link를 호출 하는 경우 새로운 Gateway 프로세스를 띄워 사용한다.
(즉, DB Link를 사용하는 Tibero 세션과 Gateway가 1:1로 매칭된다. 세션이 종료되면 Gateway도 종료된다.) - Gateway를 수동으로 관리할 필요가 없다.(좀 더 편리하다.)
- 대신, DB Link 사용이 많은 경우 다수의 Gateway가 동작하며 서버 리소스 소모가 발생할 수 있다.
- Tibero에 접속하여 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 |
댓글