본문 바로가기
DATABASE/Databse

[Database] ODBC 란? - DBMS 이기종 간의 접속에 대하여

by DANEW 2023. 8. 7.

Intro

안녕하세요!

초보 DBA 다뉴입니다.

 

정말 요즘 공부에 끝이 없다는 것을 느끼고 있는데요.

사실 공부를 많이 하고 있지는 않지만.... 알면 알수록 어려운 DB의 세계... 끝이 없습니다.

 

저는 현업에서 Oracle, MsSQL, MariaDB를 혼합해서 사용하고 있습니다.

이기종간의 데이터를 주고 받아야 하는 상황이 있는데요.

 

Oracle, MsSQL, MariaDB 각각의 데이터베이스에서 다른 데이터베이스에 접근하고 테이블을 조회하고 변경하는지

한번 간략하게 알아보도록 하겠습니다.


ODBC

ODBC(Open DataBase Connectivity) 란?

ODBC에 대해서는 많은 분들이 다른 글에서도 많이 다루고 있는데요.

 

조금 형식적인 이야기를 해보자면,

 

Open DataBase Connectivity 의 줄인말로 Microsoft에서 개발한 표준방법입니다.

ODBC는 각 데이터베이스의 중간에서 SQL 요청을 처리하여, 이기종간의 데이터베이스에 접근 하도록 합니다.

A라는 MsSQL서버 에서 B라고 하는 Oracle 서버를 접속하고 싶다면

A(MsSQL)에 Oracle ODBC를 설치하여, B(Oracle) 서버의 데이터베이스에 접근 할 수 있습니다.

Oracle에서 이기종 접근

Oracle 에서 MsSQL이나 MariaDB등 다른 DBMS에 접근하는 방법은 쉽지않은데요.

Oracle 끼리의 접근은 DB Link를 통해 가능하지만, 이기종의 접근은 그렇지않습니다.

 

Oracle 은 좀 보수적으로 막혀있다고 생각이 듭니다.

사실 방법을 찾아봐도 잘 나오지않아서, 팀장님에게 한번 여쭤봤는데요.

Oracle 에서 유료 툴로 따로 판매를 하고 있다고 하네요....

 

Oracle -> MsSQL, MariaDB로 접속보다,

MsSQL,MariaDB -> Oracle로 접속하는 방법을 활용하는게 비용적으로 효율이 좋을 것 같습니다.

MsSQL에서 이기종 접근

MsSQL에서는 주로 많이 사용하는 방법이 연결된 서버(Linked Server)를 통한 접근입니다.

 

같은 MsSQL끼리의 접근도 연결된 서버를 이용해서 하지만,

다른 DBMS의 접근도 원하는 DBMS의 ODBC를 설치 후 연결된 서버를 설정하여 접근합니다.

 

ODBC를 통한 연결된 서버를 설정 후 openquery를 통한 접근을 합니다.

반응형

 

다시 정리하자면,

MsSQL에서는 ODBC를 설치하여, 기본적으로 제공하는 연결된 서버(Linked Server)라는 방법을 통해 접근을 하네요.

MariaDB에서 이기종 접근

MariaDB에서 Connect Engine을 설치하여 접근을 합니다.

 

접근을 원하는 DBMS의 ODBC를 설치 후, Connect Engine까지 설치하여 세팅을 해줘야하는데요.

 

Connect Engine까지 설치가 완료 된다면,

Connect Engine Table을 생성하여 접근을 원하는 DBMS의 Table과 매칭을 합니다.

 

간단하게 ODBC와 Connect Engine설치만으로 이기종간의 접근을 할 수 있습니다.


Outro

간략하게 ODBC가 무엇이며 어떻게 사용하는지 말로 한번 풀어봤는데요.

정확한 사용법, 설정법에 대해서는 다음에 기회가 되면 한번 다뤄보도록 하겠습니다.

 

이러한 외부 서버의 접근으로 대용량 데이터 처리에는 맞지않습니다.

 

간단한 데이터 조회와 필요에 의한 변경정도만 처리하는 것을 추천드리며,

대용량 데이터 처리를 할 일이 있다면, 따로 CSV파일 등으로 내려받아서 데이터 처리를 하는것이 보다 올바를 것이라는 생각이 드네요.

 

뭔가 설명이 두리뭉실 했지만, 다음에 추가로 정리하는 것으로 하겠습니다.

 

감사합니다.

반응형