본문서에서는 Tibero RDBMS 에서제공하는 Oracle DB Link 를위한 gateway 설치및설정방법과 Oracle DB Link 사용법을소개한다.
Contents 1. TIBERO TO ORACLE DB LINK 개요... 3 1.1. GATEWAY 란... 3 1.2. ORACLE GATEWAY... 3 1.3. GATEWAY 디렉터리구조... 3 1.4. 사젂준비... 4 2. TIBERO GATEWAY FOR ORACLE 구성... 5 2.1. 구성방식... 5 2.1.1. Local 방식... 5 2.1.2. Listener 방식... 5 3. LOCAL 방식 GATEWAY 설정... 6 3.1. OS홖경설정... 6 3.1.1..profile 설정... 6 3.1.2. Oracle 권한변경... 6 3.2. GATEWAY BINARY복사... 7 3.3. NETWORK ALIAS 설정... 7 3.3.1. tbnet_alias.tbr... 7 3.3.2. tbdsn.tbr... 8 3.4. GATEWAY 홖경설정... 8 3.5. DATABASE LINK 생성및 TEST... 9 4. LISTENER방식 GATEWAY 설정... 10 4.1. OS 홖경설정 (ORACLE(CLIENT 서버... 10 4.1.1. Unix/Linux의경우... 10 4.1.1.1..profile 설정... 10 4.1.1.2. Gateway Binary복사... 10 4.1.2. MS Windows의경우... 10 4.1.2.1. Windows 홖경변수설정... 10 4.1.2.2. Gateway Binary복사및 Service등록... 10 4.2. NETWORK ALIAS 설정 (TIBERO 서버... 11 4.2.1. tbnet_alias.tbr... 11 4.2.2. tbdsn.tbr... 12 1
4.3. GATEWAY 홖경설정 (ORACLE(CLIENT 서버... 12 4.4. GATEWAY 실행 (ORACLE(CLIENT 서버... 13 4.4.1. Unix/Linux의경우... 13 4.4.2. MS Windows의경우... 13 4.5. DATABASE LINK 생성및 TEST... 14 Update History Date Worker Comments 2011.03.11 박근용문서서식업데이트 2009.10.09 주형진최초작성 2
1. Tibero to Oracle DB Link 개요 1.1. Gateway 란 데이터베이스링크를통해질의를수행할때, 데이터베이스링크의대상이 Tibero가아닌 Oracle이라면 Oracle를위한 Gateway를통해데이터베이스링크를생성 / 수행할수있다. Tibero는필요한질의를 Oracle Gateway에젂달하고, Gateway는 Oracle에접속하여 Tibero 로부터젂달받은질의를수행하여그결과를다시 Tibero로젂송한다. Oracle로의데이터베이스링크기능을사용하고자하는경우에는 Oracle에대한 Gateway Binary와홖경설정파일이필요하다. 1.2. Oracle Gateway 다음은 Tibero RDBMS 에서데이터베이스링크기능을지원하기위한 Gateway Binary 명이다. DBMS Vender Gateway Binary Version Oracle gw4orcl Oracle 9i, 10g, 11g Gateway Binary 는 Oracle 의버젂에따라다를수있기때문에버젂에맞는 Gateway Binary 를사용할것을권장한다. 1.3. Gateway 디렉터리구조 Gateway는기본적으로 ${TB_HOME}/client/gateway 경로를사용하여설정파일을읽고로그파일을기록한다. 사용자가임의의경로를사용하고자하면홖경파일에 TBGW_HOME 홖경변수를설정하여경로를지정할수있다. Gateway가사용하는설정파일과로그파일이존재하는디렉터리구조는다음과같다. ${TB_HOME}/client/gateway 또는 $TBGW_HOME Oracle config tbgw.cfg log Log File 3
Oracle/config tbgw.cfg라는 Gateway 설정파일이있다. 사용자가 Gateway와관련된설정값을변경하고싶을때생성하며, 위의디렉터리구조에생성하면된다. ( 생성방법은 3.4항또는 4.3항의 Gateway홖경설정참고 Oracle/log Gateway와관련된로그파일이있다. DBMS Vender Log Listener Log Oracle gw4orcl.log gw4orcl_lsnr.log 1.4. 사젂준비 Gateway설정시 Tibero의설치및 Instance가생성되어있어야하며 Oracle Version에맞는 Gateway Binary가준비돼야한다. Gateway Binary는 TmaxData 고객지원센터 (1544-8629 또는 Tibero엔지니어에게다음정보와함께요청하면받을수있다. 항목 Tibero version Server OS (CPU Server bit 사이트명프로젝트명 Oracle 버전 내용 4
2. Tibero Gateway for Oracle 구성 2.1. 구성방식 2.1.1. Local 방식다음의경우 Gateway를 Local방식으로구성한다. Tibero와 Oracle이동일한 Unix서버에존재할경우 Tibero와 Oracle이다른서버에존재하나, Oracle Client가 Tibero와동일한 Unix서버에존재할경우 2.1.2. Listener 방식 다음의경우 Gateway 를 Listener 방식으로구성한다. 위 Local 방식의경우를제외한모든경우 다음은 Gateway for Oracle 이구성될수있는경우의수이다. Case# Tibero 서버 OS Oracle/ Oracle Client 서버 OS Tibero/Oracle 동일서버존재여부 Gateway 설정방법 1 UNIX/LINUX UNIX/LINUX O Local 2 UNIX/LINUX UNIX/LINUX X Listener 3 UNIX/LINUX MS Windows X Listener 4 MS Windows UNIX/LINUX X Listener 5 MS Windows MS Windows O Listener 6 MS Windows MS Windows X Listener 주의사항 Tibero와 Oracle(Client 가물리적으로동일한 Unix서버에존재해야 Local방식으로구성할수있다. (Case# 1 Tibero와 Oracle이물리적으로동일서버라도 Oracle(client 가 Windows에서구동된다면 Listener방식으로설정해야한다. (Case# 5 다음의이유로 Oracle Client를 Tibero서버에설치해서구성하는경우 Case#1 또는 Case#5의방법으로구성한다. Gateway로연결할 Oracle이여러서버에존재하는경우 Oracle서버에보안등의이유로작업이 Gateway설정작업이불가능한경우 5
3. Local 방식 Gateway 설정 3.1. OS 홖경설정 3.1.1..profile 설정 OS홖경파일 (.profile,.bash_profile 등 에다음과같이 Gateway용홖경변수설정을한다. Tibero서버의 Tibero 계정의홖경파일에다음을추가한다. 형식 export TBGW_HOME=$TB_HOME/client/gateway export ORACLE_HOME=<Oracle Home> export LD_LIBRARY_PATH=$ORACLE_HOME/lib export ORACLE_SID=<Oracle SID> 예제 $ vi.profile -- 다음내용추가 export TBGW_HOME=$TB_HOME/client/gateway export ORACLE_HOME=/home/oracle/product/ORA10 export LD_LIBRARY_PATH=/home/oracle/product/ORA10/lib export ORACLE_SID=ORA10 < 저장 > 설정저장후재로그인하여설정된홖경을적용한다. 3.1.2. Oracle 권한변경 Tibero에서 Oracle의일부파일에접근하기위해 Oracle 계정으로다음을실행한다. 명령 chmod o+rx $ORACLE_HOME chmod o+rx $ORACLE_HOME/lib chmod o+r $ORACLE_HOME/lib/* chmod o+x $ORACLE_HOME/network chmod o+x $ORACLE_HOME/network/admin chmod o+r $ORACLE_HOME/network/admin/tnsnames.ora chmod -R o+rx $ORACLE_HOME/nls chmod -R o+rx $ORACLE_HOME/oracore chmod o+x $ORACLE_HOME/sqlplus chmod o+x $ORACLE_HOME/sqlplus/mesg chmod o+rx $ORACLE_HOME/sqlplus/mesg/* 6
3.2. Gateway Binary 복사 Tibero 서버에 Tibero 계정으로다음작업을진행한다. 형식 예제 $ mkdir $TBGW_HOME $ cp <Gateway Binary명 > $TBGW_HOME/gw4orcl $ chmod u+x $TBGW_HOME/gw4orcl $ mkdir $TBGW_HOME $ cp gw4orcl_4_41536_ora10g $TBGW_HOME/gw4orcl $ chmod u+x $TBGW_HOME/gw4orcl 3.3. Network Alias 설정 Tibero Client의 Network Alias설정파일에 Gateway 정보를설정한다. Network Alias설정파일명은 Tibero Version에따라각각다음과같다. Tibero 4. 이젂 : $TB_HOME/client/config/tbnet_alias.tbr Tibero 4 sp1 이후 : $TB_HOME/client/config/tbdsn.tbr 주의사항 Network Alias설정파일명에따라설정방법이다름 Gateway Binary(gw4orcl 의경로는반드시절대경로로입력한다. DB_NAME은 SID가아닌 Oracle의 tnsnames.ora에설정한 Alias명이다 Network Alias설정후반드시 Tibero를재부팅해야함. 3.3.1. tbnet_alias.tbr 형식 <Gateway Alias명 >=( IP=localhost DB_NAME=<tnsnames.ora에설정된 alias> GW=LOCAL:<Gateway Binary경로및파일명 > 예제 gw_orcl=( IP=localhost DB_NAME=ora10 GW=LOCAL:/home/tibero/tibero4/client/gateway/gw4orcl 7
3.3.2. tbdsn.tbr 형식 <Gateway Alias명 >=( (GATEWAY= (PROGRAM=<tnsnames.ora에설정된 alias> (TARGET=<Oracle SID> (TX_MODE=GLOBAL 예제 gw_orcl=( (GATEWAY= (PROGRAM=/home/tibero/tibero4/client/gateway/gw4orcl (TARGET=ora10 (TX_MODE=GLOBAL 3.4. Gateway 홖경설정 tbgw.cfg 파일에초기화 Parameter의설정값을명시함으로써 Gateway와관련된설정을변경할수있다. Gateway를설치한서버에서 ${TB_HOME}/client/gateway 또는 $TBGW_HOME의아래 config/tbgw.cfg파일을다음내용으로생성한다. 형식 LOG_DIR=<Log File생성경로 > LOG_LVL=<Log Level(default: 2> LSNR_PORT=<Gateway Port> MAX_LOG_SIZE=<Log File 크기 ( 초과시 backup Log file생성 > MAX_LOG_CNT=<Backup Log file 개수 ( 초과시오래된것부터 Overwrite> FETCH_SIZE=<Row Patch Size (MAX 64KB> 예제 LOG_DIR=/home/tibero/tibero4/client/Oracle/log LOG_LVL=2 LSNR_PORT=9999 MAX_LOG_SIZE=1000 MAX_LOG_CNT=5 FETCH_SIZE=32000 8
3.5. Database Link 생성및 Test tbsql 에서작업유저로접속하여다음을실행한다. 형식 create database link <DB link 명 > connect to <user 명 > identified by <password> using <Network Alias 명 > ; 이후 Table 명뒤에 @<DB link 명 > 을붙이면 DB link 를사용할수있다. 예제 SQL> create database link dl_test connect to scott identified by tiger using gw_orcl ; Database Link 'DL_TEST' created. SQL> select count(* from emp@dl_test; COUNT(* ---------- 14 주의사항 DB link 생성시 Network Alias 명과 Password 는반드시작은따옴표 ( 로감싸야한다. DB Link 관련자세한사항은 Tibero Admin Guide 참고 9
4. Listener 방식 Gateway 설정 4.1. OS 홖경설정 (Oracle(Client 서버 4.1.1. Unix/Linux의경우 4.1.1.1..profile 설정 OS홖경파일 (.profile,.bash_profile 등 에다음과같이 Gateway용홖경변수설정을한다. Oracle 서버의 Oracle 계정홖경파일에다음을추가한다. 형식 export TBGW_HOME=$ORACLE_HOME/gateway 예제 $ vi.profile -- 다음내용추가 export TBGW_HOME=$ORACLE_HOME/gateway 설정저장후재로그인하여설정된홖경을적용한다. 4.1.1.2. Gateway Binary복사 Oracle(Client 서버의 Oracle계정으로다음작업을진행한다. 형식 $ mkdir $TBGW_HOME $ cp <Gateway Binary명 > $TBGW_HOME/gw4orcl $ chmod u+x $TBGW_HOME/gw4orcl 예제 $ mkdir $TBGW_HOME $ cp gw4orcl_4_41536_ora10g $TBGW_HOME/gw4orcl $ chmod u+x $TBGW_HOME/gw4orcl 4.1.2. MS Windows의경우 4.1.2.1. Windows 홖경변수설정 Oracle 서버의 Windows 홖경변수에다음을추가한다. 변수명 : TBGW_HOME 변수값 : %ORACLE_HOME%\gateway 이후변수값으로설정한디렉터리를생성한다. 4.1.2.2. Gateway Binary복사및 Service등록 Gateway binary를위에서설정한 %TBGW_HOME% 경로에 gw4orcl.exe 이름으로저장한다. [ 명령프롬프트 ] 를실행하여다음명령을실행한다. 형식 sc create < 서비스이름 > binpath=%tbgw_home%\gw4orcl.exe 예제 sc create tibero_gw binpath=%tbgw_home%\gw4orcl.exe [ 시작 ]-[ 제어판 ]-[ 관리도구 ]-[ 서비스 ] 에서위에서설정한 < 서비스이름 > 이있는지확인한다. 10
4.2. Network Alias 설정 (Tibero 서버 Tibero Client의 Network Alias설정파일에 Gateway 정보를설정한다. Network Alias설정파일명은 Tibero Version에따라각각다음과같다. Unix/Linux 경로 Tibero 4. 이젂 : $TB_HOME/client/config/tbnet_alias.tbr Tibero 4 sp1 이후 : $TB_HOME/client/config/tbdsn.tbr MS Windows 경로 Tibero 4. 이젂 : %TB_HOME%\client\config\tbnet_alias.tbr Tibero 4 sp1 이후 : %TB_HOME%\client\config\tbdsn.tbr 주의사항 Network Alias설정파일명에따라설정방법이다름 tbnet_alias.tbr의 DB_NAME 또는 tbdsn.tbr의 TARGET의입력값은 SID가아닌 Oracle(Client 의 tnsnames.ora에설정한 Alias명이다 IP에반드시 IP주소를입력해야한다. localhost안됨. Network Alias설정후반드시 Tibero를재부팅해야함. 4.2.1. tbnet_alias.tbr 형식 <Gateway Alias명 >=( IP=<Oracle(client 서버 IP> PORT=<Gateway Port> default port: 9999 DB_NAME=<tnsnames.ora에설정된 alias> GW=INET 예제 gw_orcl=( IP=192.168.0.101 PORT=9999 DB_NAME=ora10 GW=INET 11
4.2.2. tbdsn.tbr 형식 <Gateway Alias명 >= (GATEWAY= (LISTENER= (HOST=<Oracle(Client 서버 IP> (PORT=<Gateway Port> default port: 9999 (TARGET=<tnsnames.ora에설정된 alias> (TX_MODE=GLOBAL 예제 gw_orcl= (GATEWAY= (LISTENER= (HOST=192.168.0.101 (PORT=9999 (TARGET=ora10 (TX_MODE=GLOBAL 4.3. Gateway 홖경설정 (Oracle(Client 서버 tbgw.cfg 파일에초기화 Parameter의설정값을명시함으로써 Gateway와관련된설정을변경할수있다. Gateway를설치한서버에서 ${TB_HOME}/client/gateway 또는 $TBGW_HOME의아래 config/tbgw.cfg파일을다음내용으로생성한다 Oracle 서버에서다음파일을아래내용으로생성한다. Unix/Linux 경로 : $TBGW_HOME/config/tbgw.cfg 또는 $TB_HOME/client/gateway/config/tbgw.cfg MS Windows 경로 : %TBGW_HOME%\config\tbgw.cfg 또는 %TB_HOME%\client\gateway\config\tbgw.cfg 형식 LOG_DIR=<Log File 생성경로 > LOG_LVL=<Log Level(default: 2> 12
LSNR_PORT=<Gateway Port> MAX_LOG_SIZE=<Log File 크기 ( 초과시 backup Log file생성 > MAX_LOG_CNT=<Backup Log file 개수 ( 초과시오래된것부터 Overwrite> FETCH_SIZE=<Row Patch Size (MAX 64KB> 예제 LOG_DIR=$TBGW_HOME/Oracle/log MS Windows의경우 (%TBGW_HOME%\Oracle\log LOG_LVL=2 LSNR_PORT=9999 MAX_LOG_SIZE=1000 MAX_LOG_CNT=5 FETCH_SIZE=32000 주의사항 위 LSNR_PORT의 Port와 Network Alias에설정한 Port와동일해야한다. 만일 Network Alias에설정한 Port가 9999가아니면반드시 LSNR_PORT를설정해야한다. 4.4. Gateway 실행 (Oracle(Client 서버 4.4.1. Unix/Linux의경우 Oracle서버에서 Oracle계정으로 Gateway를실행해준다. 명령 $ $TBGW_HOME/gw4orcl 주의사항 서버재부팅시 gw4orcl 을실행하지않으면 Tibero Gateway가작동하지않는다. 서버관리자에게서버재부팅시 $TBGW_HOME/gw4orcl의자동실행이되도록등록을요청한다. 4.4.2. MS Windows의경우 [ 시작 ]-[ 제어판 ]-[ 관리도구 ]-[ 서비스 ] 에서 3.2.2항에서설정한 < 서비스이름 > 을선택후다음작업을실행한다. [ 마우스오른쪽버튼클릭 ]-[ 속성 ]-[ 시작유형 ]: 자동 으로변경후확인 [ 마우스오른쪽버튼클릭 ]-[ 시작 ] 설정후 상태 : 시작됨, 시작유형 : 자동 확인 13
주의사항 서버재부팅시동록된 Gateway서비스를실행하지않으면 Tibero Gateway가작동하지않는다. 4.5. Database Link 생성및 Test tbsql 에서작업유저로접속하여다음을실행한다. 형식 create database link <DB link 명 > connect to <user 명 > identified by <password> using <Network Alias 명 > ; 이후 Table 명뒤에 @<DB link 명 > 을붙이면 DB link 를사용할수있다. 예제 SQL> create database link dl_test connect to scott identified by tiger using gw_orcl ; Database Link 'DL_TEST' created. SQL> select count(* from emp@dl_test; COUNT(* ---------- 14 주의사항 DB link 생성시 Network Alias 명과 Password 는반드시작은따옴표 ( 로감싸야한다. DB Link 관련자세한사항은 Tibero Admin Guide 참고 14
Information Intelligence, Tibero