Tibero

Similar documents
단계

Tibero

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식

Tibero

개발및운영 Tibero Perl 연동

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Windows 8에서 BioStar 1 설치하기

Microsoft Word - CNVZNGWAIYSE.docx

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint - 10Àå.ppt

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

13주-14주proc.PDF

DBMS & SQL Server Installation Database Laboratory

Microsoft Word - src.doc

Chapter 1

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

Remote UI Guide

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

슬라이드 1

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

윈도우시스템프로그래밍

untitled

untitled

MySQL-Ch10

10.ppt

FileMaker 15 ODBC 및 JDBC 설명서

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

Tmax

ISP and CodeVisionAVR C Compiler.hwp

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Install stm32cubemx and st-link utility

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

FileMaker ODBC 및 JDBC 가이드

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

PowerPoint 프레젠테이션

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

슬라이드 1

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

마리오와 소닉 리우 올림픽™

System Recovery 사용자 매뉴얼

vm-웨어-앞부속

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

PowerPoint 프레젠테이션

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Assign an IP Address and Access the Video Stream - Installation Guide

ALTIBASE 사용자가이드 Templete

1217 WebTrafMon II

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

PCServerMgmt7

Backup Exec

PowerPoint 프레젠테이션

Endpoint Protector - Active Directory Deployment Guide

APOGEE Insight_KR_Base_3P11

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

LXR 설치 및 사용법.doc

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Orcad Capture 9.x

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

bn2019_2


ICAS CADWorx SPLM License 평가판설치가이드

untitled

PowerPoint 프레젠테이션

윈도우시스템프로그래밍

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

인디쓔피-IOM핸돜벁닄큐1014pdf, page Preflight ( IOM핸돜벁닄큐__1014 )

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

MS-SQL SERVER 대비 기능

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Solaris Express Developer Edition

Sena Technologies, Inc. HelloDevice Super 1.1.0

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Microsoft Word ARM_ver2_0a.docx

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

슬라이드 1

PowerPoint Presentation

4S 1차년도 평가 발표자료

문서 템플릿

JDK이클립스

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

Studuino소프트웨어 설치

PowerPoint Template

SAS9.2_SAS_Enterprise_Miner_for_Desktop_install_guide

초보자를 위한 ADO 21일 완성

chapter4

Transcription:

Tibero DB Link 가이드 Copyright 2013 TmaxData Co., Ltd. All Rights Reserved.

Copyright Notice Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구황새울로 329 번길 5 티맥스빌딩우 463-824 Restricted Rights Legend All TmaxData Software (Tibero and documents are protected by copyright laws and international convention. TmaxData software and documents are made available under the terms of the TmaxData License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxData Co., Ltd. 이소프트웨어 (Tibero 사용설명서의내용과프로그램은저작권법과국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TmaxData Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 TmaxData 의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tibero is a registered trademark of TmaxData Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Tibero 는 TmaxData Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. 안내서정보안내서제목 : Tibero DB Link 가이드발행일 : 2013-09-10 소프트웨어버전 : Tibero 5 안내서버전 : 2.1.2

내용목차 안내서에대하여... vii 제1장 DB Link 소개... 1 1.1. 개요... 1 1.2. DB Link 장, 단점... 1 제2장 Tibero to Tibero... 3 2.1. Tibero to Tibero DB Link 설정... 3 2.1.1. 제약사항... 3 2.1.2. Tibero 클라이언트설정... 3 2.1.3. 대상서버연결확인... 4 2.2. DB Link 생성및사용... 4 2.2.1. tbsql에접속하여 DB Link Object 생성... 4 2.2.2. SQL 실행... 5 제3장 Tibero to Oracle... 7 3.1. 개요... 7 3.1.1. Gateway... 7 3.1.2. Gateway 디렉터리구조... 7 3.1.3. 확인사항... 8 3.1.4. 제약사항... 9 3.2. Gateway for Oracle 설정... 9 3.2.1. Gateway 설정 (UNIX 계열... 9 3.2.2. Gateway 설정 (Windows 계열... 17 3.3. Oracle 클라이언트... 19 3.3.1. 호환성확인... 19 3.3.2. Instant 클라이언트설정... 20 3.4. 문제해결... 22 3.4.1. 데이터조회... 22 제4장 Oracle to Tibero... 25 4.1. 개요... 25 4.1.1. Oracle Gateway... 25 4.1.2. DB Link 연결방식... 26 4.2. DB Link 설정... 27 4.2.1. UNIX 계열 (Linux 포함... 28 4.2.2. Windows 계열... 37 4.3. ODBC Manager 설치... 42 4.4. 문제해결... 48 4.4.1. DB Link 설정문제... 48 4.4.2. 운영문제... 50 Tibero iii

그림목차 [ 그림 3.1] Tibero to Oracle 구조도... 7 [ 그림 3.2] Oracle 서버와클라이언트호환성도표... 19 [ 그림 3.3] 글자깨짐현상이발생할경우확인요소... 22 [ 그림 4.1] Oracle to Tibero 구조도... 25 [ 그림 4.2] Oracle to Tibero 호출흐름... 27 [ 그림 4.3] ODBC 데이터소스추가... 39 [ 그림 4.4] ODBC 데이터소스설정... 39 [ 그림 4.5] Oracle Gateway 서비스등록화면... 41 Tibero v

안내서에대하여 안내서의대상 본안내서는 DB Link Object 생성관련가이드문서이다. 안내서의전제조건 본안내서는 DB Link 생성과정을설명한안내서이다. 따라서본안내서를원활히이해하기위해서는다음과같은사항을미리알고있어야한다. 데이터베이스의이해 RDBMS의이해 운영체제및시스템환경의이해 UNIX 계열 (LINUX 포함 의기본지식 안내서의제한조건 본안내서는 Tibero 를실무에적용하거나운용하는데필요한모든사항을포함하지않는다. 안내서에대하여 vii

안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ' 입력항목 ' 하이퍼링크 > +---- ---- 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } [ ] 필수인수값 옵션인수값 viii Tibero DB Link 가이드

제 1 장 DB Link 소개 본장에서는 DB Link 의기본적인개념과장, 단점에대해서설명한다. 1.1. 개요 DB Link 는현재의데이터베이스에서네트워크상의다른데이터베이스에접속하기위해접속설정을정 의하는객체이다. 1.2. DB Link 장, 단점 장점 분산된데이터를다루기편리하다. 데이터베이스에한번만접속해도 Link를통해다른데이터베이스에간편히접속할수있다. 단점 Link를통해접속된데이터베이스의세션과 Lock이증가할수있으므로실시간트랜잭션이많은시스템에서장애가발생할수있다. 배치작업과같은큰트랜잭션을 DB Link를통해직접작업할경우장애발생가능성이증가한다. DB 운영자의경우데이터베이스간 DB Link에대해사용현황관리가필요하다. 장애가발생할경우개발, 시스템운영, 네트워크, DB 업무담당자간확인이필요하다. Long Type, CLOB, BLOB 타입을 Link를통해 DML 작업할경우오류가발생할가능성이있다. 참고 Link 사용을지양하며 AP 에서각각별도로처리하는것을권장한다. 제 1 장 DB Link 소개 1

제 2 장 Tibero to Tibero 본장에서는 Tibero 와 Tibero 간의 DB Link 생성방법을설명한다. 2.1. Tibero to Tibero DB Link 설정 Tibero 의동일한기종간에는특별한 Gateway 모듈없이접근이가능하다. 간단한설정방법을통해 Tibero 간의 DB Link 를생성할수있다. 2.1.1. 제약사항 다음은 Tibero 간의호환성에대한설명이다. Source에해당하는 Tibero에서 Target에해당하는 Tibero에연결할수없다면 Link 구성을할수없다. Tibero 5 버전의경우 Tibero 3 SP2에연결할수없고 Tibero 4 SP1 또는 Tibero 5에는연결할수있다. 단, 아래와같은경우는연결할수없다. 하지만 Target 버전의리비전패치이후에연결이가능하다. Source 버전이 Tibero 5 r55824 이후버전이고, Target 버전이 Tibero 5 r55824 이전버전일경우 Source 버전이 Tibero5 r55824 이후버전이고, Target 버전이 Tibero 4 SP1 r55825 이전버전일경우 2.1.2. Tibero 클라이언트설정 접속하려는 Tibero(Tibero_A라고함 의 IP 주소, 포트번호, DB NAME 내용을확인하고, DB Link를생성할 Tibero(Tibero_B라고함 의네트워크설정파일 (tbdsn.tbr 에설정한다. Tibero_A는설정이필요없고, Tibero_B가설치되어있는서버의 tbdsn.tbr 파일을아래와같이설정한다. tibero_a=( (INSTANCE=(HOST=192.168.70.185 (PORT=8629 (DB_NAME=t5 참고 Tibero 4 SP1 이전버전의설정파일은 tbnet_alias.tbr 이며, 사용문법이다르므로해당버전의매뉴 얼을참고한다. 제 2 장 Tibero to Tibero 3

2.1.3. 대상서버연결확인 다음과같이실행해서 Tibero_B Instance 에 tbdsn.tbr 파일의설정을확인한다. $ tbsql sys/tibero@tibero_a tbsql 5 Copyright (c 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. Connected to Tibero using tibero_a. SQL> select * from v$instance; INSTANCE_NUMBER INSTANCE_NAME DB_NAME HOST_NAME PARALLEL --------------- -------------- --------- --------- ---------- HREAD# VERSION STARTUP_TIME STATUS SHUTDOWN_PENDING ---------- -------- ------------- -------- ---------------- 0 t5 t5 tsteam NO 0 5 2013/04/01 NORMAL NO 1 row selected. 2.2. DB Link 생성및사용 Tibero to Tibero DB Link 를생성할계정 (Tibero_B 으로접속하여 DB Link 생성작업을수행한다. 2.2.1. tbsql 에접속하여 DB Link Object 생성 아래와같은문법을사용하여 DB Link Object 를생성한다. SQL> create database link <DB Link명 > connect to < 접속사용자 ID> identified by < 접속패스워드 > 2 using < 접속에사용할 alias> 항목 <DB Link명 > < 접속사용자 ID> < 접속패스워드 > < 접속에사용할 alias> 설명생성할 DB Link Object 이름이다. 대상 DB 서버에접속할사용자이름이다. 대상 DB 서버에접속할패스워드이다. Source DB의 tbdsn.tbr에설정된 Alias 이름이다. 4 Tibero DB Link 가이드

다음은 tbsql 에접속하여 DB Link Object 생성에대한예이다. SQL> create database link t5link connect to dbtech identified by 'dbtech' 2 using 'tibero_a'; Database Link 'T5LINK' created. 참고 DB Link 를생성하기위해서는 CREATE DATABASE LINK 또는 CREATE PUBLIC DATABASE LINK 권한이필요하다. 2.2.2. SQL 실행 생성이완료되면아래와같이 <@Link 명 > 을붙여사용한다. SQL> select * from dual@t5link; DUMMY ----- X 1 row selected. 사용중인 Link 의이름으로알수없는경우다음과같이 View 를조회한다. SQL> select * from user_db_links; OWNER DB_LINK USERNAME HOST CREATED ----------- ----------- ----------- ----------- ----------- TIBERO T5LINK DBTECH tibero_a 2013/04/01 1 row selected. 제 2 장 Tibero to Tibero 5

제 3 장 Tibero to Oracle 본장에서는 Tibero 에서 DB Link Object 를만들어 Oracle 의데이터를가져오는방법을설명한다. 3.1. 개요 DB Link 를통해질의를수행할때 DB Link 대상이 Tibero 가아닌다른 DBMS 라면각각의 DBMS 를위한 Gateway 를통해 DB Link 를생성하거나수행할수있다. 3.1.1. Gateway Tibero 서버는다른 DBMS에필요한질의를해당 Gateway에전달하고, Gateway는다른 DBMS에접속하여 Tibero 서버로부터전달받은질의를수행한후결과를 Tibero 서버로전송한다. 다른 DBMS의 DB Link 기능을사용하려는경우해당 DBMS에대한 Gateway 바이너리와환경설정파일이필요하다. [ 그림 3.1] Tibero to Oracle 구조도 3.1.2. Gateway 디렉터리구조 Gateway는기본적으로 TBGW_HOME 환경변수를통해설정파일을읽고로그파일을기록한다. TBGW_HOME 환경변수가설정되어있지않은경우디폴트값은 '$TB_HOME/client/gateway' 이며 Windows 환경에서는 '%TB_HOME%\client\gateway' 로설정된다. Gateway가사용하는설정파일과로그파일이존재하는디렉터리구조는다음과같다. $TBGW_HOME +-- <DBMS Vender명 > -- config -- tbgw.cfg -- log -- Log File 제 3 장 Tibero to Oracle 7

다음은디렉터리와파일의설명이다. <DBMS Vender명 >/config Gateway 설정파일이생성되는위치이다. 다음은해당디렉터리에있는파일의설명이다. 파일 tbgw.cfg 설명 Gateway 설정파일로사용자가 Gateway 와관련된설정값을변경하는경우생성한다. <DBMS Vender 명 >/log Gateway 와관련된로그파일이생성되는위치이다. 3.1.3. 확인사항 Tibero to Oracle DB Link를구성하는경우다음의사항을확인한다. 기본바이너리위치 Gateway for Oracle 바이너리파일은 Tibero 버전및 OS에따라위치및파일명이다르다. Tibero 버전 Tibero 4 SP1 및이전버전 Tibero 5 이상 OS UNIX 계열 Windows 계열 UNIX 계열 Windows 계열 위치및파일명 $TB_HOME/client/bin/gw4orcl %TB_HOME%\client\bin\gw4orcl.exe $TB_HOME/client/bin/gw4orcl %TB_HOME%\bin\gw4orcl.exe 내부적으로 Oracle 클라이언트라이브러리를사용하며 Windows 계열바이너리는 Oracle 9i, 10g, 11g 모두호환이가능하다. UNIX 계열바이너리는 Oracle 10g 라이브러리에맞추어져있으며, Oracle 9i 또는 11g 라이브러리를 이용할경우 ( 주 TmaxData 기술지원팀또는 QM 팀에해당버전용바이너리를요청한다. Oracle 클라이언트라이브러리 Gateway for Oracle 인경우내부적으로 Oracle 클라이언트라이브러리를사용하여 Oracle 에접속한 다. (Oracle 서버바이너리안에있는라이브러리, Instant 클라이언트라이브러리도가능 Gateway 가설치된곳에 Oracle 클라이언트라이브러리가존재해야한다. Oracle 클라이언트라이브러리가 Oracle 서버에연결되지않는다면 DB Link 역시연결될수없다. 8 Tibero DB Link 가이드

3.1.4. 제약사항 LONG RAW, NCLOB을지원하지않는다. LOB, LONG의경우아래와같은형태를일부지원한다. insert into (local ~ select from (dblink insert into (dblink ~ select from (local Multi Threaded Agent를지원하지않는다. 단, Windows 환경에서 Listener 방식을사용하는경우에는 Multi Threaded Agent를지원한다. DB Link를통한 UDF(User Defined Function 사용은 PSM(=PL/SQL 내부에서가능하다. Select 절에직접적으로 DB Link를통한 UDF 사용은지원하지않는다. PSM(=PL/SQL 내부에서 DB Link UDF를사용하고해당 PSM을 Select 절에서간접사용하는구조는가능하다. 3.2. Gateway for Oracle 설정 본절에서는 Gateway for Oracle 의구성방식과설정방법에대해서설명한다. Gateway for Oracle은다음의방식으로구성한다. Local 방식 Gateway를미리기동하지않고 DB Link를사용할경우 Gateway 프로세스가기동되는방식으로, Tibero 서버와 Gateway for Oracle이동일서버에존재할경우에 Local 방식으로구성이가능하다. Listener 방식 Gateway를미리기동해서 Listening하는방식으로모든경우에설정이가능하다. 참고 Local 방식은 UNIX 계열에만해당하며 Windows 계열은 Listener 방식으로구성한다. 3.2.1. Gateway 설정 (UNIX 계열 Local 또는 Listener 방식중하나의방식을선택하여설정한다. 설정이다른경우개별적으로설명하며동 일할경우는구분하지않고제목에 ' 공통 ' 이라는문구를사용한다. 다음은 UNIX 계열에서 Gateway 를설정하는과정이다. 제 3 장 Tibero to Oracle 9

1. profile 설정 ( 공통 2. Oracle 라이브러리관련권한변경 ( 공통 3. Gateway 바이너리복사 ( 공통 4. Network Alias 설정 5. Gateway 환경설정 ( 공통 6. DB Link 생성및확인 각과정에대한상세한설명은해당절의내용을참고한다. profile 설정 ( 공통 Gateway for Oracle이기동되는사용자의 OS 환경파일 (.profile,.bash_profile 등 에다음과같이환경변수를설정한다. 설정방법 export TBGW_HOME=$TB_HOME/client/gateway export ORACLE_HOME=<Oracle Home> export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export ORACLE_SID=<Oracle SID> export PATH=$ORACLE_HOME/bin:$PATH 설정예 # Gateway for Oracle 11g export TBGW_HOME=/home/tibero/gateway export ORACLE_HOME=/home/ora11/app/oracle/product/11.2.0/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH 주의 1. Local 방식의경우 Tibero 서버가기동하기전에위환경변수설정을가지고기동이되어야한다. 만약, 환경변수설정및 Local 방식을새롭게구성한다면 Tibero 서버재기동이필요하며재기동이힘들다면 Listener 방식을고려한다. 2. OS에맞게환경변수 LD_LIBRARY_PATH(Linux, LIBPATH(AIX, SHLIB_PATH(HP 를설정한다. 3. TBGW_HOME은 Tibero 바이너리폴더밖으로설정할것을권장한다. ( 예 : $TB_HOME=/home/tibero/tibero5, $TBGW_HOME=/home/tibero/gateway 10 Tibero DB Link 가이드

Oracle 라이브러리관련권한변경 ( 공통 Oracle 라이브러리를설치한사용자또는 root 계정에서다음과같이권한을부여한다. chmod o+rx $HOME chmod o+rx $ORACLE_HOME chmod o+rx $ORACLE_HOME/lib chmod o+r $ORACLE_HOME/lib/* chmod o+rx $ORACLE_HOME/bin chmod o+rx $ORACLE_HOME/bin/sqlplus chmod o+x $ORACLE_HOME/network chmod o+x $ORACLE_HOME/network/admin chmod o+r $ORACLE_HOME/network/admin/tnsnames.ora Gateway 바이너리복사 ( 공통 지정된경로에바이너리복사를수행한다. 설정방법 $ mkdir $TBGW_HOME $ cp <Gateway Binary 명 > $TBGW_HOME/gw4orcl $ chmod u+x $TBGW_HOME/gw4orcl 설정예 $ mkdir $TBGW_HOME $ cp $TB_HOME/client/bin/gw4orcl $TBGW_HOME/gw4orcl $ chmod u+x $TBGW_HOME/gw4orcl 주의 profile 설정과라이브러리권한을설정한후 ldd gw4orcl 를수행했을때 Oracle 라이브러리에대해 서 not found 부분이없어야한다. Network Alias 설정 Tibero 클라이언트의 Network Alias 설정파일에 Gateway 정보를설정한다. Network Alias 설정파일명은 Tibero 버전에따라각각다음과같다. Tibero 4 SP1 이후 : $TB_HOME/client/config/tbdsn.tbr Tibero 4 이전 : $TB_HOME/client/config/tbnet_alias.tbr 제 3 장 Tibero to Oracle 11

다음은각구성방식별설정방법이다. Local 방식 tbdsn.tbr 설정방법 <Gateway Alias명 >=( (GATEWAY= (PROGRAM=<Gateway Binary 경로및파일명 > (TARGET=<tnsnames.ora에설정된 Alias> (TX_MODE={GLOBAL LOCAL} 항목 PROGRAM TARGET TX_MODE 설명 Gateway 바이너리 (gw4orcl 의경로를반드시절대경로로입력한다. Oracle 클라이언트의 tnsnames.ora에설정한 Alias 이름으로대소문자수준까지일치해야하며, 단위테스트로 sqlplus를이용해해당 Alias로접속이되는지확인한다. 처리방식을글로벌트랜잭션 (Global Transaction 과로컬트랜잭션 (Local Trans action 중에서설정한다. Commit을요청할경우글로벌트랜잭션만 Two-phase Commit으로동작한다. TX_MODE 의값은처리여부에따라다음과같이설정할수있다. GLOBAL : 글로벌트랜잭션인경우설정값이다. LOCAL : 로컬트랜잭션인경우설정값이다. tbdsn.tbr 설정예 gw_local=( (GATEWAY= (PROGRAM=/home/tibero/gateway/gw4orcl (TARGET=orcl (TX_MODE=GLOBAL tbnet_alias.tbr 설정방법 <Gateway Alias명 >=( IP=localhost DB_NAME=<tnsnames.ora에설정된 Alias> GW=LOCAL:<Gateway Binary 경로및파일명 > 12 Tibero DB Link 가이드

항목 IP DB_NAME GW 설명 Gateway가존재하는 IP 주소이다. Oracle 클라이언트의 tnsnames.ora에설정한 Alias 이름으로대소문자수준까지일치해야하며, 단위테스트로 sqlplus를이용해해당 Alias로접속이되는지확인한다. 트랜잭션모드및 Gateway 바이너리 (gw4orcl 의경로를반드시절대경로로입력한다. tbnet_alias.tbr 설정예 gw_local=( IP=localhost DB_NAME=orcl GW=LOCAL:/home/tibero/gateway/gw4orcl Listener 방식 tbdsn.tbr 설정방법 <Gateway Alias명 >=( (GATEWAY= (LISTENER= (HOST=<Gateway IP> (PORT=<Gateway PORT> (TARGET=<tnsnames.ora에설정된 Alias> (TX_MODE= {GLOBAL LOCAL } 항목 LISTENER 설명 Listener 가기동되어있는서버에대한정보를입력한다. HOST : Gateway 가기동되어있는서버 IP 주소이다. PORT : Gateway 가 Listening 하는포트번호이다. ( 기본값 : 9999 TARGET TX_MODE Oracle 클라이언트의 tnsnames.ora에설정한 Alias 이름으로대소문자수준까지일치해야하며, 단위테스트로 sqlplus를이용해해당 Alias로접속이되는지확인한다. 처리방식을글로벌트랜잭션 (Global Transaction 과로컬트랜잭션 (Local Trans action 중에서설정한다. Commit을요청할경우글로벌트랜잭션만 Two-phase Commit으로동작한다. 제 3 장 Tibero to Oracle 13

항목 설명 TX_MODE 값은처리여부에따라다음과같이설정할수있다. GLOBAL : 글로벌트랜잭션인경우설정값이다. LOCAL : 로컬트랜잭션인경우설정값이다. tbdsn.tbr 설정예 gw_listen=( (GATEWAY= (LISTENER= (HOST=192.168.70.185 (PORT=9999 (TARGET=orcl (TX_MODE=GLOBAL tbnet_alias.tbr 설정방법 <Gateway Alias명 >=( IP=<Gateway IP> PORT=<Gateway Port> DB_NAME=<tnsnames.ora에설정된 alias> GW=INET 항목 IP PORT DB_NAME GW 설명 Gateway가기동되어있는서버 IP 주소이다. Gateway가 Listening 하는포트번호이다. ( 기본값 : 9999 Oracle 클라이언트의 tnsnames.ora에설정한 Alias 이름으로대소문자수준까지일치해야하며, 단위테스트로 sqlplus를이용해해당 Alias로접속이되는지확인한다. INET으로설정한다. tbnet_alias.tbr 설정예 gw_orcl=( IP=192.168.70.185 PORT=9999 DB_NAME=orcl 14 Tibero DB Link 가이드

GW=INET Gateway 환경설정 ( 공통 tbgw.cfg 파일에초기화파라미터의설정값을명시함으로써 Gateway와관련된설정을변경할수있다. Gateway를설치한서버에서 $TBGW_HOME/oracle/config/tbgw.cfg 파일을설정한다. 설정방법 LISTENER_PORT = <port-no> LOG_DIR = <log-dir> LOG_LVL = <log_lvl> MAX_LOG_SIZE = <max-log-size> MAX_LOG_BAKCUP_SIZE = <max-log-backup-size> FETCH_SIZE = <fetch-size> SKIP_CHAR_CONV = <skip-char-conv> 항목 LISTENER_PORT LOG_DIR LOG_LVL 설명 Listening 포트번호로로컬방식의경우필요하지않다. ( 기본값 : 9999 로그가생성될디렉터리이다. ( 기본값 : $TBGW_HOME/$VENDER/log 로그레벨을설정한다. ( 기본값 : 2 0-6 까지설정가능하며높을수록많은로그를생성한다. 운영인경우 : 1 또는 2 를설정한다. 문제대응인경우 : 5 또는 6 을설정한다. MAX_LOG_SIZE MAX_LOG_BAKCUP_SIZE 로그파일의최대크기를설정한다. ( 단위 : Byte 백업폴더의최대크기를설정한다. 백업폴더의크기가 MAX_LOG_BACKUP_SIZE보다커지면오래된파일순으로약 1/3 가량의백업파일이삭제된다. 백업이이루어지는시점은 2가지경우가있다. 로그를쓰려할때쓰고있던로그파일크기가 MAX_LOG_SIZE보다크다는것이감지될때 로그파일을쓰던세션이종료될때 FETCH_SIZE fetch 일경우사용하는사이즈로최대 64KB 이다. ( 기본값 : 32K 대용량 fetch 일경우설정값을높이면네트워크부하를줄일수있다. 제 3 장 Tibero to Oracle 15

항목 SKIP_CHAR_CONV 설명 일반적으로해당설정은필요하지않으며특수한상황 (US7ASCII 캐릭 터셋에한글이들어있는경우 에만적용한다. Y : Gateway가 Oracle로부터데이터를받아올때환경변수 NLS_LANG 을사용하고전달받은데이터를그대로 Tibero 서버에보낸다. N : Tibero에서사용하는캐릭터셋에맞추어 Oracle 서버에데이터요청을한다. 이럴경우 Oracle에서해당캐릭터셋에맞게처리하여 Gateway로데이터를보낸다. ( 기본값 설정예 LISTENER_PORT=9999 LOG_DIR=/home/tibero/gateway/oracle/log LOG_LVL=2 MAX_LOG_SIZE=502400000 DB Link 생성및확인 DB Link 생성방법은 Local과 Listener 방식이동일하다. 단, Listener 방식은먼저 Gateway 프로세스의기동이필요하다. Listener 방식에서 Gateway 프로세스의기동방법은다음과같다. Windows 계열은 [ 시작 ] > [ 제어판 ] > [ 관리도구 ] > [ 서비스 ] 에서 Gateway 서비스를시작한다. $./gw4orcl 다음은지정포트번호가 9999 일경우 Listening 포트번호를확인하는예제이다. $ netstat -na grep 9999 tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 다음은 Local 과 Listener 방식에서 DB Link 생성과확인방법에대한설명이다. DB Link 생성방법 create database link <DB Link 명 > connect to <user 명 > identified by '<password>' using '<Network Alias 명 >'; Link 를생성할경우권한에러가발생하면아래와같은권한을부여한다. GRANT CREATE DATABASE LINK TO USER_NAME; GRANT CREATE PUBLIC DATABASE LINK TO USER_NAME; 16 Tibero DB Link 가이드

DB Link 생성예 SQL> create database link olink connect to scott identified by 'tiger' using 'gw_local'; Database Link 'OLINK' created. DB Link 생성확인예 DB Link 생성을확인할때 select 문을 'Table 명 @<DB Link 명 >' 으로설정하면 DB Link 를사용할수있 다. SQL> select * from dual@olink; DUMMY ----- X 1 row selected. 3.2.2. Gateway 설정 (Windows 계열 Windows 계열은 Listener 방식으로만구성가능하며, 본절에서는 UNIX 계열과다른내용만언급한다. Gateway 바이너리의경우 UNIX 계열과달리 Oracle 버전에따라구분되지않으며 9i, 10g, 11g 모두공통바이너리로사용가능하다. 다음은 Windows 계열에서 Gateway를설정하는과정이다. 1. Windows 환경변수설정 2. Gateway 바이너리복사및서비스등록 3. Gateway 실행 4. Network Alias 설정 (UNIX 계열의 Listener 방식참고 5. Gateway 환경설정 (UNIX 계열참고 6. DB Link 생성및확인 (UNIX 계열참고 각과정에대한상세한설명은해당절의내용을참고한다. Windows 환경변수설정 1. [ 내컴퓨터 ] 에서오른쪽마우스버튼을클릭한뒤 [ 속성 ] > [ 고급 ] > [ 환경변수 ] 를선택한다. 2. [ 시스템변수 ] 에 Gateway 를설정한다. 제 3 장 Tibero to Oracle 17

설정방법 TBGW_HOME = <Gateway Binary 경로 > 설정예 TBGW_HOME = C:\tibero\gateway Gateway 바이너리복사및서비스등록 1. Gateway 바이너리를위에서설정한 '%TBGW_HOME%' 경로에 'gw4orcl.exe' 이름으로저장한다. 2. 명령프롬프트 (Windows [ 시작 ] > [ 실행 ] 에 cmd.exe 를입력 를실행한다. 3. sc create 명령을실행한다. 만약, Windows 7 의경우관리자권한으로실행한다. 설정방법 sc create < 서비스이름 > binpath= %TBGW_HOME%\gw4orcl.exe 설정예 sc create tibero_gw binpath= C:\tibero\gateway\gw4orcl.exe 참고 1. 'binpath=' 다음에공백이들어가는것에주의한다. 2. 서비스등록취소를할경우 sc delete < 서비스이름 > 명령어를수행한다. 4. [ 시작 ] > [ 제어판 ] > [ 관리도구 ] > [ 서비스 ] 에위에서설정한 < 서비스이름 > 이있는지확인한다. Gateway 실행 다음은 Gateway를실행하는과정에대한설명이다. 1. [ 시작 ] > [ 제어판 ] > [ 관리도구 ] > [ 서비스 ] 에서등록한 < 서비스이름 > 을선택한다. 2. 오른쪽마우스버튼을클릭하여컨텍스트메뉴에 [ 시작 ] 을선택한다. 3. 오른쪽마우스버튼을클릭하여 [ 속성 ] > [ 시작유형 ] 을 ' 자동 ' 으로선택한후 [ 확인 ] 버튼을클릭한다. 만약자동으로하지않는다면수동으로시작해야한다. 4. 설정후 ' 상태 " 항목이 ' 시작됨 ' 으로 ' 시작유형 ' 항목이 ' 자동 ' 으로되어있는지확인한다. 참고 Windows 서버를재부팅할경우등록된 Gateway 서비스를시작하지않으면 DB Link 가정상동작하 지않는다. 18 Tibero DB Link 가이드

3.3. Oracle 클라이언트 본절에서는 Oracle 서버와클라이언트호환성확인과 Instant 클라이언트설정방법에대해서설명한다. 3.3.1. 호환성확인 Tibero to Oracle DB Link의경우 Gateway가내부적으로 Oracle 클라이언트를사용하므로 Oracle 클라이언트와서버가호환되지않으면 DB Link를연결할수없다. 아래의호환성도표를참고하여연결가능여부를확인한다. [ 그림 3.2] Oracle 서버와클라이언트호환성도표 ( 출처 DB Work 제 3 장 Tibero to Oracle 19

3.3.2. Instant 클라이언트설정 Gateway for Oracle의경우내부적으로 Oracle 클라이언트라이브러리또는서버라이브러리를이용하여 Oracle에연결한다. Oracle 클라이언트또는서버를설치하기가어려운경우 Instant 클라이언트를이용한 DB Link 설정이가능하다. 다음은 Oracle Instant 클라이언트를설정하는과정에대한설명이다. 1. Instant 클라이언트다운로드및압축해제 2. profile 설정 3. tnsnames.ora 생성및설정 4. Network Alias 설정 (UNIX 계열참고 5. Gateway 환경설정 (UNIX 계열참고 6. DB Link 생성및확인 (UNIX 계열참고 각과정에대한상세한설명은해당절의내용을참고한다. Instant 클라이언트다운로드및압축해제 Oracle 홈페이지접속한후 Gateway가설치된서버의 OS와 bit에맞는 Instant 클라이언트를다운로드하여압축을해제한다. 다음은 Linux 버전의실행결과이다. $ unzip instantclient-basic-linux.x64-11.2.0.3.0.zip Archive: instantclient-basic-linux.x64-11.2.0.3.0.zip inflating: instantclient_11_2/basic_readme inflating: instantclient_11_2/adrci inflating: instantclient_11_2/genezi inflating: instantclient_11_2/libclntsh.so.11.1 inflating: instantclient_11_2/libnnz11.so inflating: instantclient_11_2/libocci.so.11.1 inflating: instantclient_11_2/libociei.so inflating: instantclient_11_2/libocijdbc11.so inflating: instantclient_11_2/ojdbc5.jar inflating: instantclient_11_2/ojdbc6.jar inflating: instantclient_11_2/uidrvci inflating: instantclient_11_2/xstreams.jar 20 Tibero DB Link 가이드

profile 설정 다음은 profile 설정예이다. TNS_ADMIN 의경우 tnsnames.ora 파일의위치를설정한다. # Instanct client export TBGW_HOME=/home/tibero/gateway export ORACLE_HOME=/home/tibero/oracle/instantclient_11_2 export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH export PATH=.:$ORACLE_HOME:$PATH export TNS_ADMIN=$ORACLE_HOME 주의 1. LD_LIBRARY_PATH 설정에해당경로의모든라이브러리가존재하므로 $ORACLE_HOME의설정에주의한다. 2. OS에맞게환경변수 LD_LIBRARY_PATH(Linux, LIBPATH(AIX, SHLIB_PATH(HP 를설정한다. 3. profile 설정후 ldd gw4orcl를수행했을때 Oracle 라이브러리에대해서 not found 부분이없어야한다. tnsnames.ora 생성및설정 $TNS_ADMIN 으로설정된경로에 tnsnames.ora 파일을생성한다. 설정방법 $ cd $TNS_ADMIN $ vi tnsnames.ora <Alias명 > = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = <Oracle 서버접속 IP> (PORT = <Oracle 서버접속 Port> (CONNECT_DATA = (SERVER = DEDICATED(SERVICE_NAME = <Oracle 서버의 SID> 항목 <Alias 명 > ADDRESS 설명 tbdsn.tbr 설정의 TARGET 부분과대소문자수준까지일치해야한다. 대상 Oracle 에대한접속정보를설정한다. PROTOCOL : 프로토콜을설정한다. HOST : 대상 Oracle 서버의접속 IP 주소정보이다. PORT : 대상 Oracle 서버의접속포트번호정보이다. 제 3 장 Tibero to Oracle 21

항목 CONNECT_DATA 설명 대상 Oracle 서버의연결방식및 SID 를설정한다. SERVER : 서버의연결방식이다. SERVICE_NAME : 대상 Oracle 서버의 SID 이다. 설정예 다음은 Oracle 11g 에해당하는설정으로각 Oracle 버전마다문법이일부달라질수있다. 만약 $TNS_ADMIN 으로경로를설정하지않았다면기본경로는 "$ORACLE_HOME/network/admin" 이다. $ cd $TNS_ADMIN $ vi tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = 192.168.70.158(PORT = 1521 (CONNECT_DATA = (SERVER = DEDICATED(SERVICE_NAME = orcl 3.4. 문제해결 본절에서는 Tibero to Oracle DB Link 설정후발생할수있는문제와해결방법에대해서설명한다. 3.4.1. 데이터조회글자깨짐현상 DB Link를통하여 Oracle의데이터를조회할때글자가깨지는현상이발생한다. 다음은글자깨짐현상이발생할때확인해야할항목을나타내는그림으로상황에맞게각항목의적절한설정이필요하다. [ 그림 3.3] 글자깨짐현상이발생할경우확인요소 22 Tibero DB Link 가이드

클라이어언트환경 (1 터미널창으로접속하여 tbsql을통해확인할경우 OS 언어설정 (LANG, LC_ALL 등, 접속하는 SSH 또는텔넷의언어설정, TB_NLS_LANG 환경변수값을확인한다. 클라이언트 Tool을사용하여확인할경우 구분 tbadmin을사용할경우 ODBC를사용할경우 (Orange For Tibero 등 설명접속할때지정하는캐릭터셋설정확인이필요하다. 만약, 미지정의경우접속하는 Tibero 서버의캐릭터셋으로설정된다. TB_NLS_LANG 환경변수값을확인한다. Tibero 캐릭터셋 (2 Oracle 캐릭터셋이 Tibero 에서호환이되는캐릭터셋인지확인한다. 예를들어 Tibero 의캐릭터셋이 MSWIN949( 한글, Oracle 캐릭터셋이 JA16SJIS( 일본어 일경우호환되지않는다. Gateway(3 Gateway 는 Oracle 에서 Tibero 로데이터를가지고올때아래와같은 2 개의환경변수의영향을받는다. 환경변수 TB_NLS_LANG NLS_LANG 설명 Gateway 에서 Tibero 로접속할때영향을받는다. Gateway 에서 Oracle 로접속할때영향을받는다. 참고 TB_NLS_LANG 의기본값은 MSWIN949( 한글 이므로 Tibero 의환경이한글이아닌다른환경일경 우 TB_NLS_LANG 설정을고려한다. Oracle(4 Oracle 자체에서깨진글자가아닌지확인한다. 제 3 장 Tibero to Oracle 23

제 4 장 Oracle to Tibero 본장에서는 Oracle 에서 DB Link Object 를만들어 Tibero 의데이터를가져오는 DB Link 생성을설명한다. 4.1. 개요 Oracle에서는이 ( 異 기종분산데이터베이스환경에서 Non-Oracle 시스템데이터에접근하기위해 Het erogeneous Services(HS 와 Database Gateway(DG 모듈을지원하고있으며, 해당모듈과타 DB의 Generic ODBC Driver 연동작업을통해 DB Link를생성할수있다. [ 그림 4.1] Oracle to Tibero 구조도 4.1.1. Oracle Gateway Oracle 버전에따라사용하는 Gateway 가다르며 Oracle to Tibero 의경우 Oracle 에서제공하는 Gateway 를이용한다. 분류 HSODBC DG4ODBC 설명 Oracle 10g에서사용한다. Oracle 10g 클라이언트바이너리에는존재하지않으며 Oracle 10g 서버바이너리에만존재한다. Oracle 11g에서사용한다. Oracle 11g 클라이언트바이너리에는존재하지않으며 Oracle 11g Gateway 바이너리또는 11g 서버바이너리에존재한다. 제 4 장 Oracle to Tibero 25

참고 여러개의 Oracle Database Gateway 를설치할경우제품구성요소를 Oracle Database Gateway for ODBC 로선택한다. 제약사항 다음은 Oracle에서제공하는 Gateway인 HSODBC와 DG4ODBC의제약사항이다. Database Gateway for ODBC Limitations BLOB/CLOB data cannot be read through pass-through queries. Updates or deletes that include unsupported functions within a WHEREclause are not allowed. Stored procedures are not supported. Cannot participate in distributed transactions they support single-sitetransactions only.gateways are an integral component of the overall hetero geneous connectivity solution. Specifically, they provide: SQL and Data Dictionary Translation infor mation Datatype Translation Callback link is not supported. 참고 위내용은 Oracle 에대한제약사항으로 Tibero 제약사항은아니다. 내용의자세한설명은 Oracle 홈 페이지 (http://www.oracle.com 를참고한다. 4.1.2. DB Link 연결방식 연결방식은 OS 에따라다르다. 분류 UNIX 계열 설명 아래 2 가지방법이가능하다. HSODBC(10g 또는 DG4ODBC(11g 에서 Tibero ODBC Driver 직접연결방식의경우별도의 Manager의설치가필요하지않다. Driver Manager 사용연결방식또는 iodbc, unixodbc 사용의경우별도의 Manager의설치가필요하다. 26 Tibero DB Link 가이드

분류 Windows 계열 설명 데이터원본관리자를이용하여연결한다. (Windows 가설치된경우기본으 로설치되어있다 참고 1. Tibero ODBC Driver 직접연결방식은 Tibero 4 r51830 이후부터가능하나 Tibero 5 r71828 이전까지컬럼타입중 DATE, TIME, TIMESTAMP의제약이존재한다. 자세한내용은 4.4. 문제해결 를참고한다. 2. Tibero 3 SP2 또는 4 이전버전의경우 Driver Manager 사용방식으로구성해야한다. 4.2. DB Link 설정 Tibero ODBC Driver 직접연결방식의경우 Oracle to Tibero 호출흐름은다음과같다. Oracle 서버와 Gateway 서버가분리될경우다음의설정으로수행되지만분리되지않는다면모든설정을 Oracle 서버에서한다. [ 그림 4.2] Oracle to Tibero 호출흐름 1. create database ~ using 문구를수행한다. 2. tnsnames.ora 파일의 Alias 명의 SID 를찾는다. 제 4 장 Oracle to Tibero 27

3. listener.ora 파일에서 SID 를찾아서다음단계를수행한다. 4. init~.ora 파일의설정정보를읽어온다. 5. tbdsn.tbr 로 Tibero 서버를찾는다. 4.2.1. UNIX 계열 (Linux 포함 다음은 UNIX 계열에서 DB LINK를설정하는과정이다. 1. 사전확인및준비사항 2. Tibero 클라이언트설치 3. tnsnames.ora 설정 4. Listener 설정및기동 5. Oracle Gateway 환경설정 (init<dsn>.ora 6. DB Link 생성및확인 각과정에대한상세한설명은해당절의내용을참고한다. 사전확인및준비사항 다음과같은사항들을확인및준비한다. Oracle Gateway 설치여부확인다음과같이조회하여파일사이즈가 0보다크면설치된것이고, 0으로나온다면설치가되지않은것이다. $ ls -la $ORACLE_HOME/bin/dg4odbc -rwxr-xr-- 1 ora11 ora11 519566 Mar 3 18:49 dg4odbc 참고 Oracle 10g 의경우 $ ls -la $ORACLE_HOME/bin/hsodbc 로조회한다. Oracle Gateway 파일의 bit 확인 OS 명령어인 file 명령어를사용하여 32bit인지 64bit인지확인한다. 다음은 Gateway 파일의 bit를확인하는예제이다. 실행결과를보면해당파일은 Linux 64bit인것을확인할수있다. 28 Tibero DB Link 가이드

$ file $ORACLE_HOME/bin/dg4odbc dg4odbc: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV, for GNU/Linux 2.6.9, dynamically linked (uses shared libs, not stripped 참고 1. Oracle 10g의경우 $ file $ORACLE_HOME/bin/hsodbc로조회한다. 2. Gateway가 32bit라면내부적으로사용하는 Tibero ODBC Driver 역시 32bit를사용해야한다. 하지만 64bit로설치되어있어도해당모듈이 32bit인경우도있다. Tibero 클라이언트설치 Oracle Gateway가설치된서버에설치한다. 실제연동을위해서는 '$TB_HOME/client/lib/libtbodbc.so( 또는 libtbodbc.sl' 만있어도가능하지만단위테스트및설치의편의성을위하여 Tibero 클라이언트설치를권장한다. 다른사용자에게 Tibero 서버가설치되어있다면권한설정을한후해당라이브러리를이용할수있다. 별도로 Tibero 클라이언트바이너리가없을때 Tibero 서버바이너리를가져다가다음과같이설정을한다. Alias 항목은편의성을위하여설정한부분으로필요하지않다면설정하지않아도된다. profile 설정 # Oracle To Tibero DB Link Setting export TB_HOME=/home/ora11/tibero/tibero5 export LD_LIBRARY_PATH=$TB_HOME/client/lib:$LD_LIBRARY_PATH export PATH=$TB_HOME/client/bin:$PATH alias nadm='cd $ORACLE_HOME/network/admin' alias hadm='cd $ORACLE_HOME/hs/admin' 주의 OS 에맞게환경변수 LD_LIBRARY_PATH(Linux, LIBPATH(AIX, SHLIB_PATH(HP 를설정한다. tbdsn.tbr 설정 $TB_HOME/client/config/tbdsn.tbr 파일을설정한다. 만약 Tibero 4 이전버전의경우 $TB_HOME/client/config/tbnet_alias.tbr에설정한다. 설정항목에대한설명은 " 제2장 Tibero to Oracle" 의 "Network Alias 설정 " 을참고한다. 제 4 장 Oracle to Tibero 29

설정방법 <Alias명 >=( (INSTANCE=(HOST=<Tibero 서버 IP> (PORT=<Tibero 서버 Port> (DB_NAME=<Tibero 서버 DB명 > 항목 <Alias명 > HOST PORT DB_NAME 설명임의로설정한다. 단, Tibero ODBC Driver 직접연결방식의경우 Oracle Gateway 환경설정의 HS_FDS_CONNECT_INFO 파라미터에설정된값과일치해야한다. DB Link의경우사용하는 Tibero 서버의접속 IP 주소정보이다. DB Link의경우사용하는 Tibero 서버의접속포트번호정보이다. DB Link의경우사용하는 Tibero 서버의접속 DB_NAME 정보이다. 설정예 tibero=( (INSTANCE=(HOST=192.168.70.185 (PORT=8629 (DB_NAME=t5 Tibero 접속테스트 각설정이완료된후 Alias 명으로접속해서설정정보를확인한다. 접속에문제가발생하는경우 tbdsn.tbr 파일의설정정보를확인한다. $ tbsql sys/tibero@tibero tbsql 5 Copyright (c 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. Connected to Tibero using tibero. SQL> 30 Tibero DB Link 가이드

tnsnames.ora 설정 DB Link Object를생성하는 Oracle 서버에서 $ORACLE_HOME/network/admin/tnsnames.ora 파일을설정한다. 설정방법 <Alias명 >= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = <Gateway 서버 IP> (PORT = <Gateway 서버 Port> (CONNECT_DATA = (SID = <Gateway 서버 SID명 > (HS = OK 항목 <Alias 명 > ADDRESS 설명임의로설정한다. 단, DB Link를생성할때 using 절에해당 Alias를주어야한다. 대상 Oracle에대한접속정보를설정한다. PROTOCOL : 프로토콜을설정한다. HOST : Gateway 서버의접속 IP 주소정보이다. PORT : Gateway 서버의접속포트번호정보이다. CONNECT_DATA 대상 Oracle 서버의 SID 를설정한다. SID : 임의로설정한다. 단, Gateway 서버의 listener.ora 의 SID_NAME 설 정과일치해야한다. HS OK 로설정한다. 설정예 tibero= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = 192.168.70.185 (PORT = 1522 (CONNECT_DATA = (SID = tibero (HS = OK 주의 괄호가누락되는경우문제를찾을수없으므로위문법에주의한다. 제 4 장 Oracle to Tibero 31

Listener 설정및기동 해당설정및기동은 Gateway 서버에설정한다. 만약별도로 Oracle 서버와분리되지않았다면 Oracle 서버에설정한다. listener.ora 설정 $ORACLE_HOME/network/admin/listener.ora 파일을설정한다. 설정방법 <LISTENER_NAME> = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp(HOST=<Listening할 IP>(PORT=<Listening할 Port> SID_LIST_<LISTENER_NAME> = (SID_LIST= (SID_DESC= (SID_NAME=<Oracle 서버 SID명 > (ORACLE_HOME=<Oracle 홈주소 > (PROGRAM= {dg4odbc hsodbc} 항목 <LISTENER_NAME> ADDRESS 설명 임의로설정한다. Listener 를시작하거나종료할때해당이름을사용한다. Listening 할정보를설정한다. PROTOCOL : 프로토콜을설정한다. HOST : Listening 할 IP 주소정보이다. PORT : Listening 할포트번호정보이다. SID_NAME 임의로설정한다. 단, Oracle 서버에서설정된 tnsnames.ora 의 SID 설정과 일치해야한다. Oracle Gateway 설정파일을찾을때해당이름을사용한다. ORACLE_HOME Gateway 서버에설치된 Oracle 홈주소이다. PROGRAM dg4odbc : Gateway 서버가 Oracle 11g 일때설정한다. hsodbc : Gateway 서버가 Oracle 10g 일때설정한다. 32 Tibero DB Link 가이드

설정예 LTIBERO = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp(HOST=192.168.70.185(PORT=1522 SID_LIST_LTIBERO = (SID_LIST= (SID_DESC= (SID_NAME=tibero (ORACLE_HOME=/ora11/product/11g (PROGRAM=dg4odbc Listener 기동 listener.ora에서설정한 LISTENER_NAME으로기동, 종료, 상태정보등을확인할수있다. 기동 Oracle to Tibero DB Link를사용하기위해서 Listener를기동한다. $ lsnrctl start <listener_name> 다음은 LISTENER_NAME 이 LTIBERO 일경우 Listener 기동예제이다. $ lsnrctl start ltibero LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-MAY-2013 12:06:13 Copyright (c 1991, 2009, Oracle. All rights reserved....... Instance "tibero", status UNKNOWN, has 1 handler(s for this service... The command completed successfully 다음은 Listening 포트번호를확인하는예제이다. 실행결과를보면포트번호가 1522인것을확인할수있다. $ netstat -na grep 1522 tcp 0 0 192.168.70.185:1522 0.0.0.0:* LISTEN 위와같이성공했다는메세지가발생하고 LISTEN 상태가되면 Listener 가정상적으로기동된것이다. 종료 $ lsnrctl stop <listener_name> 제 4 장 Oracle to Tibero 33

상태정보 $ lsnrctl status <listener_name> tnsping 확인 Listener까지기동을했다면 tnsping을이용하여단위테스트를한다. tnsnames.ora를설정한 Oracle 서버에서확인하며해당파일의 Alias 이름을이용하여테스트를수행한다. 다음은 tnsping으로확인하는방법이다. $ tnsping <alias_name> 다음은 tnsping 을실행한예로결과를보면 tnsnames.ora 에서설정한 Alias 이름이 tibero 인것을확인 할수있다. $ tnsping tibero TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 09-MAY-2013 13:20:24 Copyright (c 1997, 2009, Oracle. All rights reserved. Used parameter files: /home/ora11/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP (HOST = 192.168.70.185(PORT = 1522 (CONNECT_DATA = (SID = tibero (HS = OK OK (0 msec Oracle Gateway 환경설정 (init<dsn>.ora Gateway 서버에설정하고 '$ORACLE_HOME/hs/admin' 디렉터리안의 inithsodbc.ora 파일을복사하여 init<dsn>.ora 파일을생성한다. 만약 SID_NAME이 'tibero' 일경우 inittibero.ora 파일을생성한다. HS_FDS_CONNECT_INFO=tibero #HS_FDS_TRACE_LEVEL=DEBUG # Tibero ODBC Driver HS_FDS_SHAREABLE_NAME=/home/ora11/tibero5/client/lib/libtbodbc.so 34 Tibero DB Link 가이드

# iodbc Driver Manager #HS_FDS_SHAREABLE_NAME=/home/ora11/iodbc/lib/libiodbc.so #HS_LANGUAGE=AMERICAN_AMERICA.KO16MSWIN949 # # ODBC specific environment variables # #set ODBCINI=<full path name of the odbc initilization file> #set ODBCINI=/home/ora11/.odbc.ini # # Environment variables required for the non-oracle system # #set <envvar>=<value> #set TB_NLS_LANG=UTF8 #set TBCLI_LOG_LVL=TRACE 다음은설정항목에대한설명이다. Oracle Gateway 환경설정항목 항목 HS_FDS_CONNECT_INFO 설명 ODBC Datasource 이름을기술하며연결방식에따라다르다. ( 필수 Tibero ODBC Driver 직접연결방식의경우 : tbdsn.tbr에설정된 Alias 명을설정한다. 만약, $HOME/.odbc.ini 설정파일이존재하거나 tbd sn.tbr과동일한 Alias가있다면 $HOME/.odbc.ini 설정파일을먼저읽어들이므로주의한다. Driver Manager 방식의경우 : Datasource 이름을설정한다. HS_FDS_SHARE ABLE_NAME 라이브러리경로및이름지정, 연결방식에따라다르다. ( 필수 Tibero ODBC Driver 직접연결방식의경우 : Tibero 라이브러리경로 및이름을설정한다. Driver Manager 방식의경우 : 해당 Manager Driver 라이브러리경로 및이름을설정한다. HS_FDS_TRACE_LEVEL HS_LANGUAGE Oracle Gateway의로그레벨을설정한다. '$ORACLE_HOME/hs/log' 경로에로그가남는다. ( 선택 Gateway의캐릭터셋을설정한다. 미설정일때 Listener를기동하면적용된 NLS_LANG의환경변수를따른다. ( 선택 참고 위에서언급한항목들은가장많이사용하는부분이고이외에자세한설명은 Oracle 홈페이지 (http://www.oracle.com 를참고한다. 제 4 장 Oracle to Tibero 35

Oracle Gateway 환경변수 환경변수 ODBCINI 설명 ODBC 초기설정파일위치를지정하는변수이다. 연결방식에따라다르다. Tibero ODBC Driver 직접연결방식의경우 : 설정이필요하지않다. Driver Manager 방식의경우 : 초기설정파일위치를지정한다. Tibero 환경변수 Tibero ODBC Driver 로드일때전달하는환경변수이다. 미설정일때 Listener 를기동하면적용된 Tibero 의환경변수를따른다. 가장많이사용하는환경변수는 TB_NLS_LANG, TBCLI_LOG_LVL 이다. DB Link 생성및확인 DB Link 생성방법 create database link <DB Link 명 > connect to <user 명 > identified by "<password>" using '<Network Alias 명 >'; Link 를생성할경우권한에러가발생하면아래와같은권한을부여한다. GRANT CREATE DATABASE LINK TO USER_NAME; GRANT CREATE PUBLIC DATABASE LINK TO USER_NAME; 참고 작은따옴표 (' ', 큰따옴표 (" " 사용에주의한다. 단, <user 명 > 을큰따옴표 (" " 로감싸는것은가능하 다. DB Link 생성예 SQL> create database link tlink connect to tibero identified by "tmax" using 'tibero'; Database link created. DB Link 확인예 DB Link 생성후확인을하는경우 select 문에 'Table 명 @<DB Link 명 >' 으로설정하면 DB Link 를사용할 수있다. SQL> select * from dual@tlink; DUM 36 Tibero DB Link 가이드

--- X 4.2.2. Windows 계열 Gateway 서버가 Windows 버전일때해당하는설정이다. 다음은 Windows 계열에서 DB LINK를설정하는과정이다. 1. Tibero ODBC 설치및설정 2. tnsnames.ora 설정 (UNIX 계열참고 3. Listener 설정및기동 4. Oracle Gateway 환경설정 (init<dsn>.ora 5. DB Link 생성및확인 (UNIX 계열참고 각과정에대한상세한설명은해당절의내용을참고한다. Tibero ODBC 설치및설정 Gateway 서버의 Oracle 라이브러리와동일한 bit로 Tibero ODBC를설치한다. Oracle 라이브러리 (32bit 일경우 Tibero ODBC(32bit 를설치하고 Oracle 라이브러리 (64bit 일경우 Tibero ODBC(64bit 를설치한다. 참고 Windows(32bit 일경우 Tibero ODBC(32bit 설치, Windows(64bit 일경우 Tibero ODBC(64bit 를설치해야한다. Windows(64bit 에 Tibero ODBC(32bit 를설치하는방법은별도의 "Tibero Driver 연결가이드 " 를참조한다. 다음은 Tibero ODBC 설치및설정하는과정에대한설명이다. 1. Tibero ODBC 설치 a. 바이너리확인해당서버에 Tibero 서버또는클라이언트가설치되어있다면, 해당바이너리를이용한다. UNIX 계열의 Tibero 바이너리에는아래와같은경로에존재한다. 32bit일경우 $TB_HOME/client/win32 제 4 장 Oracle to Tibero 37

64bit 일경우 $TB_HOME/client/win64 Windows 계열의 Tibero 바이너리에는아래와같은경로에존재한다. Tibero 4 SP1 및이전버전 %TB_HOME%\client\lib Tibero 5 이상 %TB_HOME%\bin Tibero 5일때 Tibero ODBC 바이너리이다. (Tibero가다른버전일경우 '.exe' 파일명이일부다를수있음 32bit : ibtbcli.dll, libtbcli.lib, tbodbc_driver_installer_5_32.exe 64bit : libtbcli.dll, libtbcli.lib, tbodbc_driver_installer_5_64.exe b. 바이너리복사 Tibero 버전에따라 Tibero ODBC 바이너리를해당위치에복사한다. Tibero 4 SP1 및이전버전 %WINDIR%\system32 Tibero 5 이상 임의위치로가능하지만 Driver 를등록할때해당경로의지정이필요하다. c. Driver 등록 command 창을열어서 ODBC 바이너리가위치한곳으로이동한후명령어를수행한다. 등록방법 tbodbc_driver_installer_5_xx.exe -i <driver path> 등록예 tbodbc_driver_installer_5_64.exe -i c:\windows\system32 주의 Windows 7 이상일경우 command 창을관리자권한으로실행한다. 38 Tibero DB Link 가이드

2. Tibero ODBC 설정 [ 제어판 ] > [ 관리도구 ] > [ 데이터원본 (ODBC] > [ 시스템 DSN] 에데이터소스를추가한다. [ 그림 4.3] ODBC 데이터소스추가 [ 그림 4.4] ODBC 데이터소스설정 제 4 장 Oracle to Tibero 39

Listener 설정및기동 다음은 Listener 설정및기동하는방법에대한설명이다. listener.ora 설정 %ORACLE_HOME%\network\admin\listener.ora 파일을설정한다. 설정예 LTIBERO = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp(HOST=192.168.70.185(PORT=1522 SID_LIST_LTIBERO = (SID_LIST= (SID_DESC= (SID_NAME=tibero (ORACLE_HOME=C:\Oracle\product\11.2.0\tg_1 (PROGRAM=dg4odbc 참고 위항목에대한설명은 UNIX 계열의 "Listener 설정및기동 " 내용을참고한다. Listener 기동및서비스등록확인 Windows [ 시작 ] > [ 실행 ] 에서 cmd.exe를입력하고실행하면서비스등록이이루어진다. 만약 Windows 7 이상일경우관리자모드실행이필요하다. 다음은 LISTENER_NAME이 LTIBERO일경우 Listener 기동예제이다. C:\Windows\system32>lsnrctl start ltibero LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 16-5Mon -2013 16:55:13 Copyright (c 1991, 2010, Oracle. All rights reserved....... Instance "tibero", status UNKNOWN, has 1 handler(s for this service... The command completed successfully 다음은 Listening 포트번호를확인하는예제이다. 실행결과를보면포트번호가 1522인것을확인할수있다. 40 Tibero DB Link 가이드

C:\Windows\system32>netstat -na findstr 1522 TCP 192.168.70.185:1522 0.0.0.0:0 LISTENING 위와같이성공했다는메세지가발생하고 LISTEN 상태가되면 Listener 가정상적으로기동된것이다. 정상적으로 Listener 기동이완료되면서비스항목에아래처럼자동등록을확인할수있다. [ 그림 4.5] Oracle Gateway 서비스등록화면 Oracle Gateway 환경설정 ( init<dsn>.ora '%ORACLE_HOME%\hs\admin' 디렉터리안의 inithsodbc.ora 파일을복사하여 init<dsn>.ora 파일을생성한다. <DSN> 은 listener.ora에서설정된 SID_NAME과반드시일치해야한다. 만약 SID_NAME이 'tibero' 일경우 inittibero.ora 파일을생성한다. # This is a sample agent init file that contains the HS parameters that are # needed for the Database Gateway for ODBC # # HS init parameters # HS_FDS_CONNECT_INFO = tibero #HS_FDS_TRACE_LEVEL = DEBUG #HS_LANGUAGE=AMERICAN_AMERICA.KO16MSWIN949 # # Environment variables required for the non-oracle system # #set <envvar>=<value> #set TB_NLS_LANG=UTF8 #set TBCLI_LOG_LVL=TRACE 다음은주요항목에대한설정항목에대한설명이다. 항목 HS_FDS_CONNECT_INFO HS_FDS_SHAREABLE_NAME 설명 Tibero ODBC 설정에서추가한 Datasource 이름과일치해야한다. Windows 계열에서는필요하지않다. 제 4 장 Oracle to Tibero 41

참고 설명되지않은항목에대해서는 UNIX 계열의 "Oracle Gateway 환경설정 (init<dsn>.ora" 내용을참 고한다. 4.3. ODBC Manager 설치 본절에서는 UNIX 계열 (Linux 포함 에서 iodbc 설치및연동하는과정을설명한다. UNIX 계열의경우 ODBC Manager 가존재하지않으므로 iodbc 또는 UNIX ODBC 를별도로설치해야한다. 다음은 ODBC Manager를설치하는과정에대한설명이다. 1. Driver Manager 설치 2. profile 설정 3. tnsnames.ora 설정 (UNIX 계열참고 4. ODBC 환경파일설정및확인 5. Oracle Gateway 환경설정 (init<dsn>.ora 6. DB Link 생성및확인 (UNIX 계열참고 각과정에대한상세한설명은해당절의내용을참고한다. Driver Manager 설치 다음은 Driver Manager를설치하는과정에대한설명이다. 1. 다운로드 http://iodbc.org에서다운로드후설치를원하는서버에업로드한다. 다음은 libiodbc-3.52.7.tar.gz 소스파일을다운받아서버에설치한결과이다. 만약, tar 옵션의 xvzf가적용되지않을경우먼저 gunzip으로압축을해제한후 tar -xvf 옵션으로해제한다. $ tar -xvzf libiodbc-3.52.7.tar.gz libiodbc-3.52.7/ libiodbc-3.52.7/admin/ libiodbc-3.52.7/admin/gtk-2.0.m4 libiodbc-3.52.7/admin/gtk.m4 libiodbc-3.52.7/admin/libtool.m4 libiodbc-3.52.7/admin/ltoptions.m4 libiodbc-3.52.7/admin/ltsugar.m4 42 Tibero DB Link 가이드

libiodbc-3.52.7/admin/ltversion.m4 libiodbc-3.52.7/admin/lt~obsolete.m4 libiodbc-3.52.7/admin/makefile.am libiodbc-3.52.7/admin/makefile.in libiodbc-3.52.7/admin/libiodbc.pc.in libiodbc-3.52.7/admin/libiodbc.spec.in libiodbc-3.52.7/admin/config.guess libiodbc-3.52.7/admin/config.sub libiodbc-3.52.7/admin/depcomp libiodbc-3.52.7/admin/install-sh libiodbc-3.52.7/admin/ltmain.sh libiodbc-3.52.7/admin/missing libiodbc-3.52.7/admin/mkinstalldirs libiodbc-3.52.7/debian/ libiodbc-3.52.7/debian/changelog 2. iodbc 설치 tar.gz 파일을가지고설치를진행하면아래와같은기본적인순서를따른다. 설치전사전환경점검에서 prefix를설정하지않으면기본적으로 /usr/local 아래에설치되기때문에특정디렉터리를지정하여설치하고, 컴파일및설치작업을다시수행할경우 make clean 이후에진행한다. a. '$HOME/iodbc' 디렉터리에설치전사전환경점검을한다../configure --prefix=$home/iodbc --disable-gui b. 점검한결과문제가없으면컴파일을한다../make c. 컴파일된파일을설치한다../make install 3. 설치확인설치된서버에원하는 bit로설치가되었는지확인한다. 특정 OS에따라 64bit 서버에 32bit로설치되는경우가있으므로 file 명령어를이용하여확인이필요하다. 만약, ODBC Manager가 64bit로설치됐다면내부적으로사용하는 Tibero ODBC 역시 64bit여야하며재설치가필요할경우 make clean 이후에진행한다. $ cd $HOME/iodbc/bin $ file iodbctest iodbctest: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV, for GNU/Linux 2.6.9, dynamically linked (uses shared libs, not stripped 제 4 장 Oracle to Tibero 43

[ 참고 ] 다음은 OS별로 iodbc 64bit 설치와설치확인방법에대한설명이다. AIX 1. 사전환경점검 export CFLAGS=-maix64 export LDFLAGS="-maix64 -brtl"./configure --prefix=$home/iodbc --disable-gui 2. 컴파일 export OBJECT_MODE=64./make 3. 설치./make install 4. 설치확인 $ file iodbctest iodbctest: 64-bit XCOFF executable or object module not stripped HP(IA64 1. 사전환경점검 export CFLAGS=+DD64./configure --prefix=$home/iodbc --disable-gui 2. 컴파일./make 3. 설치./make install 4. 설치확인 $ file iodbctest iodbctest: ELF-64 executable object file - IA64 SunOS 1. 사전환경점검 export CFLAGS=-m64./configure --prefix=$home/iodbc --disable-gui 44 Tibero DB Link 가이드

2. 컴파일./make 3. 설치./make install 4. 설치확인 $ file iodbctest iodbctest: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped, no debugging information available Linux 1. 사전환경점검 export CFLAGS=-m64./configure --prefix=$home/iodbc --disable-gui 2. 컴파일./make 3. 설치./make install 4. 설치확인 $ file iodbctest iodbctest: ELF 64-bit LSB executable, AMD x86-64, version 1(SYSV, for GNU/Linux 2.6.9, dynamically linked(uses shared libs, not stripped profile 설정 profile 내에아래와같은내용을추가한다. IODBC_HOME 의경우 iodbc 를설치한위치로설정한다. # iodbc setting export IODBC_HOME=$HOME/iodbc export LD_LIBRARY_PATH=$IODBC_HOME/lib:$LD_LIBRARY_PATH export PATH=$IODBC_HOME/bin:$PATHh" 주의 OS 에맞게환경변수 LD_LIBRARY_PATH(Linux, LIBPATH(AIX, SHLIB_PATH(HP 를설정한다. 제 4 장 Oracle to Tibero 45

ODBC 환경파일설정및확인 ODBC Driver Manager의환경파일에 Tibero ODBC Driver를등록하는방법이다. 연결테스트전에 Tibero 클라이언트또는서버의설치및관련환경설정이되어야한다. 1. 환경파일위치및이름설정 $HOME/.odbc.ini( 개인설정 또는 /etc/odbc.ini( 공통설정 로설정가능하다. 우선순위는 $HOME/.odbc.ini 가높다. ODBC 환경파일설정방법 [ODBC Data Sources] <ODBC Data Sources> = Tibero5 ODBC driver [ODBC] Trace = 1 TraceFile = /home/ora11/iodbc/tmp/odbc.trace [<ODBC Data Sources 세부설정 >] Driver = <Tibero ODBC Driver 파일 > Description = Tibero5 ODBC Datasource SID = <tbdsn.tbr 파일에설정한 alias 정보 > User = dbtech Password = dbtech 항목 <ODBC Data Sources> <ODBC Data Sources 세부설정 > Driver SID User Password 설명 Datasource 이름으로 Oracle Gateway 설정파일에해당내용이들어간다. ODBC Data Sources에서설정한이름으로대소문자까지일치해야한다. ODBC Manager에서로드하는 Tibero ODBC Driver 파일이다. 해당파일존재여부및권한에대해서확인이필요하다. Tibero 클라이언트또는서버의 tbdsn.tbr 파일에설정한 Alias 정보이다. 사용자를의미한다. 테스트및링크생성의경우별도로사용자를가져가므로크게의미는없다. 사용자패스워드를의미한다. 테스트및링크생성의경우별도로사용자를가져가므로크게의미는없다. ODBC 환경파일설정예 [ODBC Data Sources] tibero5 = Tibero5 ODBC driver [ODBC] Trace = 1 46 Tibero DB Link 가이드

TraceFile = /home/ora11/iodbc/tmp/odbc.trace [tibero5] Driver Description SID User Password = /home/ora11/tibero/tibero5/client/lib/libtbodbc.so = Tibero5 ODBC Datasource = tibero = dbtech = dbtech 2. 연결테스트 '$IODBC_HOME/bin' 폴더에있는 iodbctest를이용하여연결테스트를수행한다. 테스트에문제가발생하는경우 ODBC 환경파일이름및위치와설정을확인한다. 다음은 iodbctest를이용한연결테스트설정방법이다. iodbctest "DSN=<dsn>;UID=<user>;PWD=<pwd>" 항목 DSN UID, PWD 설명 ODBC 환경파일에서설정한 ODBC Datasources 이름이다. 테스트할접속계정및패스워드이다. 다음은 iodbctest 를이용한연결테스트사용예이다. $ iodbctest "DSN=tibero5;UID=dbtech;PWD=dbtech" iodbc Demonstration program This program shows an interactive SQL processor Driver Manager: 03.52.0709.0909 Driver: 05.00.0204 (libtbodbc.so SQL>select * from dept; DEPTNO DEPTNAME MGRNO LOCNO -------+------------------------------+---------+------- 100 Administration 2000 2700 200 Marketing 2010 2800 300 Purchasing 1140 2700 400 Human Resources 2030 3400 Oracle Gateway 환경설정 ( init<dsn>.ora HS_FDS_CONNECT_INFO, HS_FDS_SHAREABLE_NAME 에 ODBC Driver 관련설정을한다. HS_FDS_CONNECT_INFO=tibero5 #HS_FDS_TRACE_LEVEL=DEBUG 제 4 장 Oracle to Tibero 47

# Tibero ODBC Driver #HS_FDS_SHAREABLE_NAME=/home/ora11/tibero5/client/lib/libtbodbc.so # iodbc Driver Manager HS_FDS_SHAREABLE_NAME=/home/ora11/iodbc/lib/libiodbc.so #HS_LANGUAGE=AMERICAN_AMERICA.KO16MSWIN949 # # ODBC specific environment variables # #set ODBCINI=<full path name of the odbc initilization file> #set ODBCINI=/home/ora11/.odbc.ini # # Environment variables required for the non-oracle system # #set <envvar>=<value> #set TB_NLS_LANG=UTF8 #set TBCLI_LOG_LVL=TRACE 참고 설정항목에대한설명은 UNIX 계열의 "Oracle Gateway 환경설정 (init<dsn>.ora" 내용을참고한다. 4.4. 문제해결 Oracle to Tibero DB Link 설정및사용할때자주발생하는문제점에대해서설명한다. 4.4.1. DB Link 설정문제 Oracle 캐릭터셋이 AL32UTF8일경우 DB Link Object를생성하는 Oracle 서버의캐릭터셋이 AL32UTF8일때발생하는문제이다. Gateway 서버가 UNIX 계열일때발생하며 Windows 계열은해당하지않는다. 다음은해당문제의현상과해결방안에대한설명이다. 현상 Oracle 서버에서아래와같이에러가발생한다. SQL> select name, value$ from sys.props$ where name like 'NLS_CHAR%'; NAME VALUE$ ------------------------------ ---------------------------------------- 48 Tibero DB Link 가이드

NLS_CHARACTERSET AL32UTF8 SQL> conn scott/tiger Connected. SQL> select * from dual@tlink; select * from dual@tlink * ERROR at line 1: ORA-28511: lost RPC connection to heterogeneous remote agent using SID=ORA-28511: lost RPC connection to heterogeneous remote agent using SID=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP(HOST=192.168.70.185(PORT=1522 (CONNECT_DATA=(SID=tibero ORA-02063: preceding line from TLINK Process ID: 14824 Session ID: 8 Serial number: 14464 해결방안 Oracle Gateway 파일인 init<dsn>.ora 파일에 HS_LANGUAGE 설정을통해해결한다. 다음설정값은사이트환경에따라다를수있다. HS_LANGUAGE=AMERICAN_AMERICA.KO16MSWIN949 위와같이설정한후에재접속및테스트를수행하면정상적으로수행된다. $ sqlplus scott/tiger SQL*Plus: Release 11.2.0.1.0 Production on Tue Jun 4 14:23:11 2013 Copyright (c 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0-64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from dual@tlink; DUM --- X 참고 Oracle을 AL32UTF8로생성한상태에서 Oracle generic ODBC Gateway를이용해다른데이터베이스와 DB Link 구성을하여접속할경우 SQLDriverConnectW로주는인자가 wchar_t 형태 (UTF-16 형태 가아니라 UTF-8 형태로들어온다. 제 4 장 Oracle to Tibero 49

4.4.2. 운영문제 DATE, TIME, TIMESTAMP 조회문제 Oracle에서는 DB Link를통하여 Tibero의특정테이블을조회할수있는데 Tibero의테이블에 DATE, TIME, TIMESTAMP의컬럼이존재할경우발생하는문제이다. Gateway 서버가 UNIX 계열일때발생하며 Windows 계열은해당하지않는다. 해당문제는 Tibero 5 r71828 이전버전일경우에발생하는문제로 Tibero 5 r71828 이후에는 UNIX 계열에서도정상적으로동작한다. 다음은해당문제의현상과해결방안에대한설명이다. 현상 Oracle에서 DATE, TIME, TIMESTAMP 컬럼을포함하는 Tibero 테이블을조회할때에러가발생한다. 다음은 Tibero에서테이블정보를확인한결과이다. SQL> desc emp COLUMN_NAME TYPE CONSTRAINT ---------------------------------------- ------------------ ------------------- EMPNO NUMBER(6 PRIMARY KEY NOT NULL FIRSTNAME VARCHAR(20 LASTNAME VARCHAR(25 NOT NULL EMAIL VARCHAR(25 UNIQUE NOT NULL PHONE VARCHAR(20 SX CHAR(1 NOT NULL HIREDATE DATE NOT NULL JOBID VARCHAR(10 NOT NULL REFERENTIAL SALARY NUMBER(8,2 CHECK(salary > 0 COMM NUMBER(2,2 MGRNO NUMBER(6 REFERENTIAL DEPTNO NUMBER(4 REFERENTIAL 위와같이 HIREDATE 컬럼을포함하는 Tibero 테이블을 Oracle 에서조회할경우에러가발생한다. SQL> select empno, firstname, hiredate from emp@tlink; select empno, firstname, hiredate from emp@tlink * ERROR at line 1: ORA-03113: end-of-file on communication channel Process ID: 14643 Session ID: 125 Serial number: 24804 50 Tibero DB Link 가이드

해결방안 Tibero의테이블에서 DATE, TIME, TIMESTAMP 컬럼을 to_char 함수를사용하여 View로생성하고, Oracle에서는해당 View를조회한다. 다음과같이 Tibero에서 View를생성한다. SQL> create or replace view v_emp 2 as 3 select empno 4,firstname 5,to_char(hiredate, 'yyyy/mm/dd hh24:mi:ss' as hiredate 6 from emp; View 'V_EMP' created. 다음과같이 Oracle 에서해당 View 를조회한다. SQL> select * from v_emp@tlink; EMPNO FIRSTNAME HIREDATE ---------- ------------------------------ ---------------------------------------- 1000 Hailey 2001/01/03 00:00:00 1010 Dylan 2003/05/21 00:00:00 2290 Joseph 2002/08/16 00:00:00 1020 Logan 2006/06/25 00:00:00 1030 Sarah 2004/10/30 00:00:00 1040 Michael 2005/02/16 00:00:00 1050 Matthew 2008/04/10 00:00:00 1060 Victoria 2013/06/14 00:00:00 1070 Christopher 2007/08/26 00:00:00 1080 Emma 2001/09/28 00:00:00 1090 Ava 2006/11/15 00:00:00 1100 Chloe 2013/08/10 00:00:00 1110 Nathan 2003/07/18 00:00:00 1120 David 2008/04/10 00:00:00 1130 Evelyn 2006/05/01 00:00:00 1140 Elijah 2011/01/05 00:00:00 1150 Emma 2008/10/17 00:00:00 1160 Alexis 2002/01/29 00:00:00 1170 Wyatt 2008/03/15 00:00:00 1180 Hannah 2004/07/09 00:00:00 1190 Addison 2002/10/01 00:00:00 odbc manager 연동을통해접속한다. iodbc 설치및연동을하면해당현상이발생하지않는다. 제 4 장 Oracle to Tibero 51