문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣTibero 7.2.4
문서번호 | TADTI133
개요
UNIX 계열의 경우 ODBC Driver Manager가 존재하지 않기 때문에 iODBC 또는 unixODBC를 별도로 설치해야 합니다.
본 가이드 문서는 iODBC와 Tibero를 연결하는 방법에 대해 설명하고자 합니다.
방법
설치 전 환경 설정
다음은 iODBC를 설치하기 전 기본 환경을 설정하고 사전 환경 점검하는 방법에 대한 설명입니다.
본 문서는 다음과 같은 환경에서 테스트 결과를 기술했으며, 타 UNIX 환경과는 일부 명령어/옵션이 다를 수 있습니다.
- 테스트 환경 : Rocky Linux 8.10
- 티베로 바이너리 : tibero7-bin-FS02_PS04-linux64_4.18-303667-20251013015219.tar.gz
- iODBC 드라이버 : libiodbc-3.52.12.tar.gz
1) 설치 컴파일러 확인
컴파일러(cc or gcc)의 설치 유무를 확인해야 합니다.
컴파일러에 따라 iODBC를 설치 전 CC 파라미터 (컴파일러 파라미터) 를 다르게 적용해야 합니다.
아래는 컴파일러 설치 유무를 확인하는 방법입니다.
$ gcc -v (or cc -v)
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.rockylinux.org/ --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.5.0 20210514 (Red Hat 8.5.0-26) (GCC)
2) 라이브러리 구성을 위한 Client 설정
-
Tibero DB Server 수행
iODBC 연동을 위한 Tibero Client 기본 환경을 설정합니다.
Tibero DB Server에 위치한 $TB_HOME/client 디렉터리 또는 Tibero 설치 바이너리(.tar.gz)를 복사합니다.
[client 디렉터리를 복사할 경우]
$ cd $TB_HOME
$ scp -r ./client [cleint user]@[IP]:~/tibero7
[Tibero 설치 바이너리 복사할 경우]
$ find . -name "tibero*.tar.gz" -exec scp {} [cleint user]@[IP]:~/ \;
-
Tibero DB Client 수행
DB Server로부터 받은 파일을 Client 환경에 맞게 설정합니다.
[client 디렉터리를 복사할 경우]
$ vi ~/.bash_profile
$ scp -r ./client [cleint user]@[IP]:~/tibero7
[Tibero 설치 바이너리 복사할 경우]
$ cd ~
$ tar -zxvf tibero7-bin-FS02_PS04-linux64_4.18-303667-20251013015219.tar.gz
$ vi ~/.bash_profile
export TB_HOME=$HOME/tibero7
export TB_SID=tibero
export iODBC_HOME=$HOME/iODBC # iODBC 설치할 위치
export PATH=$TB_HOME/bin:$TB_HOME/client/bin:$iODBC_HOME/bin:$PATH
export LD_LIBRARY_PATH=$TB_HOME/client/lib:$iODBC_HOME/lib:$LD_LIBRARY_PATH
[공통 진행]
$ cd $TB_HOME/config
$ sh gen_tip.sh
$ vi $TB_HOME/client/config/tbdsn.tbr
tibero=(
(INSTANCE=(HOST=xxx.xxx.xxx.xxx) # 접속하려는 서버의 IP 주소
(PORT=8629) # 접속하려는 서버의 Port
(DB_NAME=TIBERO7DB) # 접속하려는 서버의 DB NAME
)
)
[Tibero 설치 바이너리 복사할 경우 client 디렉터리 이외 삭제, 생략 가능]
$ cd $TB_HOME
$ rm -rf ./bin/ ./config/ ./lib/ ./license/ ./nls/ ./scripts/
DB Server로부터 받은 $TB_HOME/client/lib/libtbodbc.so 파일의 권한을 확인합니다.파일을 읽고 실행할 권한이 없는 경우 driver manager를 실행할 수 없다.
$ ls -l $TB_HOME/client/lib/libtbodbc.so
-rwxrwxr-x 1 root root 58306848 Oct 13 11:11 /root/tibero7/client/lib/libtbodbc.so
ODBC Driver Manger 설치
1) 설치 파일 다운로드
iODBC 설치 파일은 https://iodbc.org/ 에 접속하여 다운로드 할 수 있습니다.
다운로드 받은 파일은 설치하고자 하는 서버의 경로에 업로드 한다.
2) 설치 파일 압축 해제
$ cd ~
$ tar -xzvf libiodbc-3.52.12.tar.gz
$ mv libiodbc-3.52.12 iODBC_install # 폴더 이름 변경(option)
3) iODBC 컴파일 및 설치
-
컴파일
실행 경로 : $HOME/iODBC_install
--prefix와 --sysconfdir 옵션을 주지 않을 경우 각각 /usr/local, /etc에 IODB와 .ini파일 경로가 설정됩니다.
옵션
내용
기본값
--prefix 컴파일후 iODBC 관련 파일이 설치되는 디렉터리 경로 지정 /usr/local --sysconfdir 설정파일 디렉터리 경로 지정 /etc --with-iodbc-inidir ini 파일의 위치 경로 지정 /etc --disable-gui GUI 인터페이스를 컴파일하지 않음 $ mkdir $HOME/iODBC
$ mkdir $HOME/iODBC/etc
$ cd $HOME/iODBC_install
$ export CC=gcc
$ ./configure --prefix=$HOME/iODBC \
--sysconfdir=$HOME/iODBC/etc \
--with-iodbc-inidir=$HOME/iODBC/etc \
--disable-gui
$ make
$ make install -
설치 확인
실행 경로 : $HOME/iODBC/bin
설치된 서버에 iODBC의 bit가 맞는지 확인합니다. 만약, ODBC Manage의 서버의 bit와 다르다면 재컴파일 후 재설치를 해야합니다.
재컴파일 및 재설치가 필요할 경우, make clean 이후 진행해야 합니다.
$ cd $HOME/iODBC/bin
$ file iodbctest
iodbctest: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=4bc9e4703f1f6caf031c2b3efceb77b62236e55e, with debug_info, not stripped
-
iODBC 환경설정
ODBC Driver Manager의 환경 파일에 Tibero ODBC Driver 및 데이터 소스를 설정합니다.
연결 테스트 전에 Tibero Client 또는 Server의 설치 및 관련 환경설정이 되어야 합니다.-
ODBC Driver 설정
$HOME/iODBC/etc/odbc.ini(개인설정) 또는 /etc/odbc.ini(공통설정)로 설정 가능합니다.우선순위는 $HOME/iODBC/etc/odbc.ini가 높습니다.
$ vi $HOME/iODBC/etc/odbc.ini
[ODBC Data Sources]
tibero = Tibero7 ODBC driver # <ODBC Data Sources> = Tibero6 ODBC driver
[ODBC]
Trace = 1
TraceFile = /root/iODBC/tmp/odbc.trace
[tibero] # [<ODBC Data Sources 세부설정>]
Driver = /root/tibero7/client/lib/libtbodbc.so
Description = Tibero7 ODBC Datasource
SID = tibero
User = sys
Password = tibero옵션
내용
<ODBC Data Sources> Datasource 이름으로 Oracle Gateway 설정 파일에 해당 내용이 들어갑니다. <ODBC Data Sources 세부설정> ODBC Data Sources에서 설정한 이름으로 대소문자까지 일치해야 합니다. Driver ODBC Manager에서 로드하는 Tibero ODBC Driver 파일이다. 해당 파일 존재여부 및 권한에 대해서 확인이 필요합니다. SID Tibero 클라이언트 또는 서버의 tbdsn.tbr 파일에 설정한 Alias 정보입니다. User 사용자를 의미한다. 테스트 및 링크 생성의 경우 별도로 사용자를 가져가므로 크게 의미는 없습니다. Password 사용자 패스워드를 의미합니다. 테스트 및 링크 생성의 경우 별도로 사용자를 가져가므로 크게 의미는 없습니다. -
ODBC 데이터 소스 설정
$ vi $HOME/iODBC/etc/odbcinit.ini
[Tibero7 ODBC Driver]
Description = ODBC Driver for Tibero7
Driver = /root/tibero7/client/lib/libtbodbc.so
UsageCount = 1
-
-
iODBC 관리자 확인
실행 경로 : $HOME/iODBC/bin
iODBC 관리자를 통해 ODBC Driver 및 데이터 소스의 설치 정보를 확인합니다.
결과값으로 자신이 설정한 odbc.ini, odbcinst.ini 파일의 결과가 출력됩니다.
$ cd $HOME/iODBC/bin
$ iodbc-config --odbcini --odbcinstini
/root/iODBC/etc/odbc.ini
/root/iODBC/etc/odbcinst.ini -
연결 테스트
실행 경로 : $HOME/iODBC/bin
iodbctest를 이용하여 연결 테스트를 수행합니다.
테스트에 문제가 발생하는 경우 ODBC 환경 파일 이름 및 위치와 설정을 확인합니다.
$ iodbctest "DSN=tibero;UID=sys;PWD=tibero"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.1216.0712
Driver: 07.02.0218 (libtbodbc.so)옵션
내용
DSN ODBC 환경 파일에서 설정한 ODBC Datasource 이름 UID, PWD 테스트 할 접속 계정 및 패스워드
설치 에러
다음은 iodbctest를 실행하면서 발생할 수 있는 오류 케이스입니다.
Case 1
libtbodbc.so ($TB_HOME/client/lib/libtbodbc.so)파일에 문제가 있는 경우 발생할 수 있습니다.
다른 바이너리의 libtbodbc.so 파일을 동일한 경로에 업로드 후, 테스트를 다시 진행합니다.
$ iodbctest "DSN=tibero;UID=sys;PWD=tibero"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.1216.0712
1: SQLDriverConnect = [iODBC][Driver Manager]/home/tibero/tibero7/client/lib/libcommon.so: undefined symbol: MD5 (0) SQLSTATE=00000
2: SQLDriverConnect = [iODBC][Driver Manager]Specified driver could not be loaded (0) SQLSTATE=IM003
Case 2
libtbodbc.so 파일이 $TB_HOME/client/lib/libtbodbc.so경로에 없는 경우 발생할 수 있습니다.
libtbodbc.so 파일을 해당 경로에 업로드 후, 테스트를 다시 진행합니다.
$ iodbctest "DSN=tibero;UID=sys;PWD=tibero"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.1216.0712
1: SQLDriverConnect = [iODBC][Driver Manager]/root/tibero7/client/lib/libtbodbc.so: cannot open shared object file: No such file or directory (0) SQLSTATE=00000
2: SQLDriverConnect = [iODBC][Driver Manager]Specified driver could not be loaded (0) SQLSTATE=IM003
Case 3
libtbodbc.so 파일의 실행 권한이 유효하지 않은 경우 발생할 수 있습니다.
libtbodbc.so 파일을 읽고 실행할 수 있는 권한 이상을 부여한 후, 테스트를 다시 진행합니다.
$ iodbctest "DSN=tibero;UID=sys;PWD=tibero"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.1216.0712
1: SQLDriverConnect = [iODBC][Driver Manager]/root/tibero7/client/lib/libtbodbc.so: cannot open shared object file: Permission denied (0) SQLSTATE=00000
2: SQLDriverConnect = [iODBC][Driver Manager]Specified driver could not be loaded (0) SQLSTATE=IM003