이기종 간 데이터를 주고받는 경우 보통의 경우라면 REST1)와 같이 중간에 API2)를 만들어 통신합니다. 하지만 서로 다른 호스트의 데이터베이스를 직접 연결하여 통신하는 경우도 있는데 이때 DB Link라는 것을 사용하여 직접 다른 데이터베이스를 액세스할 수 있습니다.
DB Link
💡 Tips : A database link is a connection between two physical database servers that allows a client to access them as one logical database. A database link connection is one-way in the sense that a client connected to local database A can use a link stored in database A to access information in remote database B, but users connected to database B cannot use the same link to access data in database A. If local users on database B want to access data on database A, then they must define a link that is stored in the data dictionary of database B.- ORACLE
DB Link는 두 개의 데이터베이스 서버 사이의 커넥션을 의미하고 단방향이라고 합니다. 따라서 두 개의 데이터베이스에서 서로 접속할 수 있는 객체를 생성해야 합니다.
이기종 간 연결
이 글에서 ORACLE과 MS-SQL에 DB Link 객체를 설정하고 접속해 보도록 하겠습니다.
드라이버 설정
ODBC3)를 이용하기 위해 아래 그림과 같이 설정합니다.
- 제어판 → 관리도구 → ODBC 데이터 원본(설치 된 DB Architecture)
- -
- -
- -
- 반드시 테스트 원본 테스트를 눌러 연결이 되는지 확인해주세요!
- -
tnsnames.ora 설정
ORACLE이 설치된 곳(%ORACLE_HOME%\)에 network\admin\tnsnames.ora 파일이 있습니다. 이 파일을 메모장으로 열어 아래와 같이 추가해 주세요.
|
|
listener.ora 설정
같은 경로에 listener.ora 파일을 메모장으로 열어 아래와 같이 추가해 주세요.
|
|
Alias 파일 생성
%ORACLE_HOME%\hs 디렉터리에 init(Alias).ora 파일을 만들고 아래와 같이 기입 후 저장해주세요. Alias는 DSN을 만들 때 정의 되었던 별칭입니다!
|
|
DB Link 추가
DB Link를 만들기 위해 Admin 계정이 필요하고, 만약 사용자가 링크를 만들 수 있게 해주려면 grant 쿼리로 설정해 주면 됩니다.
이제 아래 쿼리를 이용해서 DB Link를 추가해보세요!
|
|
테스트
이제 만들어진 DB Link를 이용해서 MS-SQL에 직접 접속하여 쿼리를 날릴 수 있습니다. 사용 방법은 테이블 이름 뒤에 @Alias를 붙여 직접 조회할 수 있습니다.
|
|
참조
Oracle ® Database Administrator’s Guide - Database links