반응형

1. 사전 준비 

- Tibero 설치 완료, 부팅

- Oracle 설치 완료, 리스너 부팅, 오라클 부팅

- Oracle 버전 / OS 에 맞는 Instant Client 설치 및 압축 해제

www.oracle.com/kr/database/technologies/instant-client/downloads.html

 

* 이후의 과정은 Tibero 가 설치된 곳에서 진행됩니다.

* 리스너 방식은 오라클이 설치된 장비가 같지 않을 때 사용하는 방식입니다. (같아도 상관 없습니다.)

 

2. 환경변수 설정 (예시) [자신의 경로로 변경 필요]

export TBGW_HOME=/home/listener/tbgateway
export ORACLE_HOME=/home/listener/instantclient_12_1
export ORACLE_SID=orcl
#Oracle DB NAME
export LIBPATH=$ORACLE_HOME:$LIBPATH
export LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
export TNS_ADMIN=/home/listener/instantclient_12_1/network/admin

1. TBGW_HOME : 게이트웨이 바이너리의 설정 파일, 로그 파일이 존재하는 경로 설정 (default : $HOME/tbgateway/)

2. ORACLE_HOME : instant client 설치한 디렉토리 경로

3. ORACLE_SID : Gateway 연결할 오라클의 SID 입력

4. LIBPATH / LD_LIBRARY_PATH : 오라클 게이트웨이가 사용할 라이브러리 경로

5. PATH : PATH 경로 설정

6. TNS_ADMIN : instant client 에서 설정할 접속정보 파일의 위치

 

3. TNS_ADMIN 정보 입력

vi $ORACLE_HOME/network/admin/tnsnames.ora

oralink=
(DESCRIPTION=
        (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.17.102)(PORT=1521))
        (CONNECT_DATA=
        (SERVER=DEDICATED)
        (SERVICE_NAME=orcl)
        )
)

 

4. GATEWAY 바이너리 사용 준비

$TB_HOME/client/bin 내부에 존재하는 오라클 버전에 맞는 파일을 $TBGW_HOME 으로 이동 (gw4orcl_** -> gw4orcl) 

$TBGW_HOME/oracle/config 디렉토리 생성 및 tbgw.cfg 파일 생성

<tbgw.cfg>

LISTENER_PORT=9998
LOG_DIR=/home/listener/tbgateway/oracle/log
LOG_LVL=5

즉 아래와 같은 디렉토리 구조가 생성되어야 함

$TBGW_HOME
ㄴ gw4orcl
ㄴ oracle
      ㄴ config - tbgw.cfg
      ㄴ log

 

5. tbdsn 에 게이트웨이 접속정보 입력

$TB_HOME/client/config/tbdsn.tbr

oralink = (
        (GATEWAY =
                (LISTENER = (HOST=localhost)(PORT=9998))
        (TARGET=oralink)
        (TX_MODE=GLOBAL)
        )
)

 

6. 게이트웨이 바이너리의 라이브러리 경로가 잘 잡혀있는지 확인

cd $TBGW_HOME

ldd gw4orcl

$ ldd gw4orcl
        linux-vdso.so.1 =>  (0x00007ffeb73a0000)
        libclntsh.so.12.1 => /home/listener/instantclient_12_1/libclntsh.so.12.1 (0x00007f5a2982d000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f5a2952b000)
        libnnz12.so => /home/listener/instantclient_12_1/libnnz12.so (0x00007f5a28e21000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f5a28c1d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5a28a01000)
        libons.so => /home/listener/instantclient_12_1/libons.so (0x00007f5a287bc000)
        libclntshcore.so.12.1 => /home/listener/instantclient_12_1/libclntshcore.so.12.1 (0x00007f5a2824a000)
        libipc1.so => /home/listener/instantclient_12_1/libipc1.so (0x00007f5a27ecc000)
        libmql1.so => /home/listener/instantclient_12_1/libmql1.so (0x00007f5a27c56000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f5a27888000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f5a2766e000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f5a27466000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5a2c7ea000)
        libaio.so.1 => /lib64/libaio.so.1 (0x00007f5a27264000)

 

7. 게이트웨이 바이너리 실행 및 접속 확인

./gw4orcl

$ tbsql tibero/tmax@oralink

tbSQL 6  

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to ORACLE GATEWAY using oralink.

SQL> 

 


* 접속 원리

tbdsn 의 접속정보 (ip : 192.168.17.102 / port : 9998)

-> 게이트웨이 바이너리에 접속 (즉 tbdsn 정보와 tbgw.cfg 의 정보가 일치해야함)

-> $TNS_ADMIN 정보를 통해 오라클 리스너 접속 (TNS_ADMIN 정보와 오라클의 tnsnames.ora 정보가 일치해야함)

-> 오라클 접속 (ip : 192.168.17.102 / port : 1521)


 

* Trouble Shooting

1. 오라클 리스너가 종료되어 있을 경우 -> lsnrctl start

$ tbsql tibero/tmax@oralink

tbSQL 6  

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

TBR-130092:(ORA-12541) TNS:no listener


SQL> 

 

2. TNS:listener does not currently know of service requested in connect descriptor

리스너와 게이트웨이의 연결이 유실된 경우로 리스너, 게이트웨이 종료 및 재부팅하면 대부분 해결 됨.

$ tbsql tibero/tmax@oralink

tbSQL 6  

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

TBR-130092:(ORA-12514) TNS:listener does not currently know of service requested in connect descriptor

 

반응형