반응형
포스팅에 들어가며
긴 휴일을 마췄으니 일에 대한 포스팅을 할 차례인것 같다. 세상에 DBMS는 너무나도 많다. Oracle 외에 대표적으로 많이 쓰이는 것이 MS사의 MS-SQL, Oracle이 먹어버림 My-SQL, 앞서 말씀드린 것보다는 많이 사용하지는 않지만 Maria DB, Mongo DB, Postgres, tibero 등. 물론 필자의 경우는 Oracle에 대해서만 알고 있다. 하지만 세상에 Oracle만 존재하지 않기 때문에 아마 이번 포스팅이 중요할 것 같다.
DB 대 DB로만 본다면 같은 DB일 경우에 데이터를 가져오는 것은 너무나 쉽지만 이기종간(HS, Heterogeneous Service) DB connection의 경우에는 조금 문제가 복잡해진다. 이렇게 서로 다른 DB를 연결해주기 위해서 Oracle에서 제공되는 것은 게이트웨이이고 그 방법이 아니라면 MS에서 만든 ODBC(Open DataBase Connectivity)를 사용해야 한다.
사실 Gateway는 굉장히 훌륭하다. 연결하고자하는 DB를 선택해서 약간의 설정만 해준다면 Oracle에서 그대로 Query를 날려도 알아서 번역해서 Data를 Fetch해주니 말이다. 하지만 가장 큰 단점은 역시 라이선스 비용이 발생한다는 것이다. 이에 비해 ODBC는 설정도 어렵거니와 세부 파라메터의 영향을 많이 받기 때문에 굉장히 손이 많이 가는 대신 무료이다.
Gateway에 대한 내용은 정말 많이 나와있고 유료이기 때문에 매뉴얼 또한 제공이 된다. 그래서 오늘은 ODBC를 사용한 Oracle to MSSQL connect에 대한 1부 이야기를 시작해보겠다.
일단 시작전에 환경을 말씀드리자면 Oracle on Linux, MS-SQL은 NT 밖에 없으니, 환경은 이렇게 되고 Driver Version은 ODBC Manager 2.3, MSODBC Driver 11 이되겠다.
ODBC 개념부터 알고가자
이해를 하지 않으면 정말 어려울 수 있는 부분이다. 필자 역시 그랬으니까. ODBC 드라이버는 뭐고 어떤 OS에 어떤걸 깔아야하며 또 ODBC Manager는 뭐며 이건 또 어디서 가져와서 어떻게 사용하는거며 하나서 열까지 대충알고가면 셋팅시에도 자꾸만 헛갈리게 된다. 오늘 개념부터 잡고 설치까지만 설명을 할테니 ODBC를 사용할 계획이거나 Oracle과 타 DB 연동할 일이 있으신 분은 참고하길 바란다.
ODBC Manager의 경우 게임기 혹은 컴퓨터다. 내가 원하는 게임을 하기 위한 기기라고 가정하고, ODBC Driver의 경우 게임팩 혹은 게임CD라고 가정해보자. 그럼, Driver는 내가 하고 싶은 게임이 될 것이고, Manager는 내가 하고 싶은 게임을 돌려주는(관리해주는) 역할이라고 보면된다. 그럼 당연히 컴퓨터는 한대면되고 게임 CD는 하고싶은 게임이 많다면 여러장 있어야하지 않은가? 즉, ODBC Manager는 OS에 한번 설치가되면 끝이고 ODBC 드라이버의 경우 Connection 하고자 하는 DB에 맞게 사용하면 되는 것이다.
그렇다면 어디에 어떻게 설치돼야 할까? 테스트를 해보고 나니 당연하다는 생각이 들기도한다. 제목에서와 같이 ORACLE(Linux)에서 MSSQL(NT)로 붙고 싶다. ORACLE (Linux)이 클라이언트가 될 것이고, MSSQL(NT)이 서버가 될 것이다. 붙고 싶은 쪽인 ORACLE(Linux)에 설치돼야 하는 것이 맞다. 위에서도 언급했듯이 붙고 싶은 쪽이 NT라면 ODBC 데이터 원본 관리자에서 간단한 설정만으로 Connection이 끝난다. 하지만 우린 Linux이기 때문에 그럼 어떻게 해야할까?
일단 컴퓨터(ODBC Manager)부터 만들어보자. 컴퓨터는 내가 조립할 수도 있고 만들어진 걸 택배로 받을 수도 있지 않은가? RPM 파일이 있거나 외부망을 통할 수 있어 yum을 사용할 수 있다면 난 택배로 게임기를 받을 수 있다. 하지만 IT가 더러운게 늘 내가 원하는데로 흘러가지 않는다. 작업을 오늘 끝내야 하는데 외부망을 통할 수 없어 yum이 안된다면? rpm을 어떤걸 어디서 받아야할 지 모른다면? 그럼 우린 만들어야 한다. 때문에 우린 두 가지 모두 알아야 한다.
Step 1. ODBC Manager, MSODBC 드라이버 자동 설치
택배받는 방법은 간단하다. 구글 형에게 부탁하면 바로 알려준다. 대략 아래 한줄로 끝이난다.
# yum install unixODBC
rpm 파일을 가지고 있다면 두줄로 끝이난다.
# rpm -Uvh unixODBC*
# rpm -Uvh msodbcsql*
Step 2. ODBC Manager 수동 설치
기본적으로 설치되는 경로라던지 옵션 on & off하는 기능이다. 이렇게 설정해서 설치하면되겠다.
# tar xvfz unixODBC-2.3.0.tar.gz // ODBC Manager 파일 -> 압축해제
# CPPFLAGS="-DSIZEOF_LONG_INT=8" // 환경변수 설정. 이 변수는 뭔지 잘 모르겠습니다.
# export CPPFLAGS // 환경변수 쳐묵쳐묵
# ./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc --enable-gui=no --enable-drivers=no --enable-iconv --with-iconv-char-enc=UTF8 --with-iconv-ucode-enc=UTF16LE // conguration
# make
# make install
Step 3. MSODBC 드라이버 수동 설치
# tar xvfz msodbcsql-11.0.2270.0.tar.gz // MSSQL for Linux ODBC Driver -> 압축해제
# cd msodbcsql-11.0.2270.0
# ./install.sh // 설치 옵션 확인 -> install과 verify를 볼 수 있다.
Microsoft ODBC Driver 11 for SQL Server Installation Script
Copyright Microsoft Corp.
Starting install for Microsoft ODBC Driver 11 for SQL Server
Unknown command given.
Usage: install.sh [global options] command [command options]
Global options:
--help - prints this message
Valid commands are verify and install
install) install the driver (also verifies before installing and registers
with the driver manager)
verify) check to make sure the unixODBC DriverManager configuration is
correct before installing
install command take the following options:
--bin-dir=<directory> - location to create symbolic links for bcp and sqlcmd utilities,
defaults to the /usr/bin directory
--lib-dir=<directory> - location to deposit the Microsoft SQL Server ODBC Driver for Linux,
defaults to the /opt/microsoft/msodbcsql/lib directory
--force - continues installation even if an error occurs
--accept-license - forgoes showing the EULA and implies agreement with its contents
# ./install.sh verify // 설치 전 Check
Microsoft ODBC Driver 11 for SQL Server Installation Script
Copyright Microsoft Corp.
Starting install for Microsoft ODBC Driver 11 for SQL Server
Checking for 64 bit Linux compatible OS ..................................... OK
Checking required libs are installed ........................................ OK
unixODBC utilities (odbc_config and odbcinst) installed ..................... OK
unixODBC Driver Manager version 2.3.0 installed ............................. OK
unixODBC Driver Manager configuration correct .............................. OK*
Microsoft ODBC Driver 11 for SQL Server already installed ............ NOT FOUND
Install log created at /tmp/msodbcsql.7831.32494.22024/install.log.
One or more steps may have an *. See README for more information regarding
these steps.
# ./install.sh install // install 시작
실행 후 영문설명이 나오는데 Ctrl + C로 끊어주면 위와 같이 나온다. YES를 입력하고 엔터를 쳐보자.
Enter YES to accept the license or anything else to terminate the installation: YES // 끊어주면 YES
Checking for 64 bit Linux compatible OS ..................................... OK
Checking required libs are installed ........................................ OK
unixODBC utilities (odbc_config and odbcinst) installed ..................... OK
unixODBC Driver Manager version 2.3.0 installed ............................. OK
unixODBC Driver Manager configuration correct .............................. OK*
Microsoft ODBC Driver 11 for SQL Server already installed ............ NOT FOUND
Microsoft ODBC Driver 11 for SQL Server files copied ........................ OK
Symbolic links for bcp and sqlcmd created ................................... OK
Microsoft ODBC Driver 11 for SQL Server registered ................... INSTALLED
Install log created at /tmp/msodbcsql.170.21213.14852/install.log.
One or more steps may have an *. See README for more information regarding
these steps.
설치가 완료됐다. 이 글을 보고 따라면 하면 설치까지는 굉장히 쉬울 것이다. 이로서 컴퓨터도 조립했고 CD도 만들었고 게임을 즐겨봐야 한다. 하지만 시작전에 환경설정은 해야하지 않는가. 2부를 통해 그 부분은 진행하겠다.
포스팅을 마치며
이기종 DB간 Connection은 사이트가 크면 클 수록 많아진다. 시스템 간에 운영팀이 다르고 그 팀간에 사용하는 DB가 다를 수도 있기 때문이다. 아니면 간단한 시스템의 경우 비교적 저렴한 DB를 사용하는 경우도 있다. 빈번한 작업은 아니겠지만 알면 정말 편한게 ODBC이다. ODBC 설치 및 설정은 꼭 알아두도록하고 필요할 때 꼭 써먹도록 하자. 다음편에서는 ODBC 설정 및 Oracle DB에서의 설정을 통한 Connection에 대해 글을 작성해 보도록 하겠다.
제 블로그의 내용이 도움이 되셨나요?
▼▼▼▼▼▼▼▼▼▼▼
여러분의 공감과 댓글이 아잇티에게 큰 힘이됩니다 :)
반응형
'과거자료 > Oracle - Admin' 카테고리의 다른 글
Oracle 11g Engine install on Windows(NT) (0) | 2017.10.26 |
---|---|
Linux용 Oracle hotbackup Script (1) | 2017.10.25 |
Oracle 11g deinstall on Windows (0) | 2017.10.24 |
11gR2 Installation On Linux(Requirements) (0) | 2017.10.18 |
Linux에서 ODBC를 통한 Connetion from Oracle to MSSQL 2부 (1) | 2017.10.12 |