MS-SQL - 오라클 ODAC를 이용해서 연결된 서버를 연결해보자 (Oracle Instant Client, Linked Server)

반응형

연결된 서버(Linked Server) 관련 글 보기

[ 연결된 서버 사용 방법] 

 

[ 연결된 서버에서 오픈 쿼리 사용 방법 ]

 

[ 다른 RDBMS를 연결된 서버로 연결하기 ]

 

[ 연결된 서버로 프로시저 실행하기 ]


서론

아래의 방법은 실무에서 사용하는 방식이다.
개인이 테스트 용도로 사용하려면 오라클 데이터베이스를 설치하면 보다 쉽게 Linked Server를 구성할 수 있다.


기업에서는 오라클 데이터베이스를 사용하려면 라이센스를 구매해야하기 때문에
클라이언트가 데이터베이스에 접근할 때에는 아래의 방법처럼 ODAC를 이용한다.
(ODAC에는 Oracle Instant Client가 포함되어 있다.)
오라클 데이터베이스 클라이언트는 상용 라이센스가 필요할 수도 있으나,
오라클 인스턴트 클라이언트는 라이센스 비용이 따로 없다.


ODAC 설치 (Oracle Data Access Components)

오라클 데이터베이스를 접속하기 위한 클라이언트이다.
데이터베이스 자체를 설치하는 것은 너무 무겁기 때문에
보통 ODAC를 통해 작업을 진행한다.

 
오라클 ODAC 64비트 xCopy 버전 다운로드

 

64-bit Oracle Data Access Components (ODAC) for Windows | Oracle 대한민국

죄송합니다. 검색 내용과 일치하는 항목을 찾지 못했습니다. 원하시는 정보를 찾는 데 도움이 되도록 다음을 시도해 보십시오. 검색에 사용하신 키워드의 철자가 올바른지 확인하십시오. 입력

www.oracle.com

혹은 검색 엔진에 'ODAC'를 검색하면 오라클 다운로드 홈페이지가 뜬다.
 

  • 설치할 경로에 압축 해제

 
 
관리자 권한으로 cmd를 열고, 다운받은 ODAC의 install.bat 파일을 이용하여 설치 설정을 진행한다.
(포스팅에서는 모두 설치하는 것을 전제로 하였다.)

 

  • (cmd에서) ODAC경로\install.bat all 설치경로 odac
  • 포스팅에서는 c:\oracle 로 지정하였다.
install.bat all 설치경로 odac


환경 변수 등록

오라클 클라이언트가 정상적으로 작동할 수 있도록 해주는 작업이다.
컴퓨터 환경 변수에 설치한 ODAC의 경로를 입력하여
ODBC, OraOLEDB 드라이버가 정상적으로 등록되고 작동하도록 해준다.

 

  • ORACLE_HOME 등록
    (ODAC를 설치한 경로를 적어준다. ODAC 압축 해제한 경로가 절대 아니다!)

 

  • TNS_ADMIN 등록
    (ODAC 설치 경로에서 network 폴더가 있을 것이다. 해당 경로로 입력해주면 된다.)

 

  • path 등록
    (변수 path에 아래의 환경 변수를 추가해주자.)
%ORACLE_HOME%
%ORACLE_HOME%\bin


추가 ODBC 패키지 설치, ODBC 드라이버 등록

오라클 데이터베이스에 접속하여 데이터를 제어하려면
오라클 데이터 원본을 다루는 ODBC 드라이버가 필요하다.

 
포스팅에서는 ODAC를 받은 클라이언트가 12.2 버전이므로 ODBC도 12.2버전에 맞게 설치해주자.

  • 클라이언트 12.2 64비트 추가 ODBC 패키지 다운로드

https://www.oracle.com/kr/database/technologies/instant-client/winx64-64-downloads.html#license-lightbox

 

Instant Client for Microsoft Windows (x64) 64-bit | Oracle 대한민국

Base - one of these packages is required Tools - optional packages Development and Runtime - optional packages

www.oracle.com

 
혹은 검색 엔진에 'oracle instant client' 를 검색하여 오라클 다운로드 홈페이지에 접속한다.
그리고 자신이 다운로드 받은 ODAC 버전과 맞춰 ODBC Package를 다운로드 받는다.

 
다운로드 받은 파일을 기존의 oracle 폴더로 이동한다. (ODAC 설치 경로)
ODBC 추가 패키지 파일이므로 파일이 겹치지 않으니 안심하고 파일 이동해도 된다.

 

  • ODBC 패키지의 파일을 추가한 화면

 
관리자 모드로 cmd를 실행하고,
추가한 파일 중 'odbc_install.exe' 파일을 실행한다.

odbc_install.exe

 
그러면 아래와 같이 ODBC 드라이버가 설치되었다고 나오게 된다.


오라클 접속을 위한 필수 패키지 설치

윈도우 환경에서 오라클 접속을 위한 드라이버를 설치하는데 필수 패키지가 존재한다.
그 것은 바로 Visual C++ 재배포 패키지인데, 이 패키지가 없으면 설치한 드라이버를 사용 할 수 없다.
다운로드 받은 Instant Client 버전에 따라 아래의 패키지를 설치해주자.
 
ODBC 데이터 원본 관리자에서 오라클 드라이버와
MS-SQL에서 공급자에 OraOLEDB.Oracle 드라이버가
오류가 발생할 경우는 매우 높은 확률로 아래의 Visual C++ 재배포 패키지를 설치하지 않아 발생되는 문제이다. 
다운로드는 아래의 링크를 누르거나 검색 엔진에 직접 검색하여 다운로드 받을 수 있다.

 
instantclient_19

  • Visual Studio 2017 redistributable

instantclient_18 and instantclient_12_2

  • Visual Studio 2013 redistributable

instantclient_12_1

  • Visual Studio 2010 redistributable

(위의 정보는 오라클 공식 문서에서 기재되어 있는 내용이다.)
https://www.oracle.com/kr/database/technologies/instant-client/winx64-64-downloads.html


오라클 접속 설정 (tnsnames.ora)

오라클 데이터베이스와 클라이언트 간 네트워크 연결 설정을 정의해야 한다.
그러기 위한 오라클 네트워크 서비스의 구성 파일 중 하나가 'tnsnames.ora' 이다.

 
시스템 환경 변수에 'TNS_ADMIN' 으로 지정한 폴더로 이동해보자. (ODAC 설치 경로\network)
포스팅에서의 경로는 'C:\oracle\network' 이다.
해당 디렉토리에 파일을 생성해준다. (파일명 : tnsnames.ora)
메모장으로 생성한 빈 파일을 열고 아래와 같이 작성하고 저장해준다.
 
아래의 tnsnames.ora 파일의 샘플 코드는 오라클 공식 문서에서 가져왔다.
tnsnames 파일에 대한 공식 문서는 아래의 링크에서 확인 가능하다.

net_service_name= 
 (DESCRIPTION= 
   (ADDRESS=(protocol_address_information))
   (CONNECT_DATA= 
     (SERVICE_NAME=service_name))) 
      

# 예시
TESTDB = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.123)(PORT = 13443))
    (CONNECT_DATA = 
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )

반응형

데이터 원본에서 오라클 서버 추가하기

서로 다른 데이터베이스 간 데이터베이스를 액세스 할 수 있어야 한다.
ODBC 데이터 원본 관리자는 이러한 ODBC 연결을 구성하고 관리하기 위한 도구이다.

 
윈도우 키를 누르고 'ODBC 데이터 원본 관리자(64비트)'를 검색하여 실행한다.

  • 시스템 DSN 탭 - 추가 버튼

오라클 드라이버가 생성된 것을 확인할 수 있다.

  • Oracle in oracle 선택 - 마침
    (oracle은 폴더 이름이기 때문에 사용자마다 다를 수 있다.)

 

  • Data Source Name, TNS Service Name, User ID 입력
  • Test Connection 클릭

 
서비스 이름과 사용자 정보를 적고 OK를 눌러주면 접속이 성공했는지 실패했는지 뜬다.

 
연결이 성공적이면 아래와 같이 'Connection successful' 이라고 출력된다.


OraOLEDB 드라이버 등록하기

MS-SQL(SSMS)의 데이터베이스에서 오라클 데이터베이스에 접속하기 위해서는 드라이버가 필요하다.
OraOLEDB 드라이버는 MS-SQL에서 Linked Server를 하기 위해 사용 되는 드라이버이다.

 
ODAC 설치 경로로 가면 bin 폴더가 있을 것이다. 해당 폴더로 이동하자.
포스팅에서는 c:\oracle\bin 이다.

 
우리가 ODAC를 인스톨 배치 파일을 통해 설치할 때,
옵션을 'all'로 하였지만 그 안에는 oledb도 포함되어 있다.
관리자 권한으로 'cmd' 를 실행하여 oledb를 드라이버로 등록해보자.
regsvr32 툴을 이용한다.

* regsvr32 툴은 운영체제 레지스트리에서 dll을 등록하기 위한 유틸리티 도구이다.

# 터미널에서
regsvr32 ODAC설치경로\OraOLEDB12.dll

 
MS-SQL(SSMS)에서 연결된 서버의 공급자에 오라클 OLEDB가 추가되었는지 확인해보자.


드라이버 등록 시 오류가 발생할 경우
1. 드라이버 등록을 하려면 반드시 시스템 환경 변수 경로에 내에 있는 파일이여야 한다.
2 Visual C++ 재배포 패키지가 설치되어 있지 않은 경우라면 등록이 되지 않을 수 있다.
아래와 비슷한 오류가 발생된다면 재배포 패키지를 설치하고 재부팅해주자.

 


MS-SQL에서 오라클 데이터베이스 Linked Server 추가하기

SSMS를 실행하여 Object Explorer(개체 탐색기)에서 연결된 서버를 만들어준다.

  • Server Objects - Linked Servers (우클릭) - New Linked Server
  • (한글일 경우)서버 개체 - 연결된 서버 (우클릭) - 연결된 서버

 

  • Linked server : SSMS에서 사용할 연결된 서버의 별명
  • Provider : Oracle Provider for OLE DB
  • Data source : 위에서 설정한 ODBC 데이터 원본 관리자에서 설정한 이름

 

  • Be made using this security context 선택
  • Remote login : DB에 접속할 사용자명
  • With password : 사용자 비밀번

 
정보를 모두 입력하였으면 하단의 OK 버튼을 누른다.
아무런 오류 문구 없이 Linked Server에 추가되면 접속이 성공한 것이다.

 


참고

오라클 공식 문서 - Oracle ODAC 구성 내 readme 파일
오라클 공식 문서 - Oracle Instant Client 구성 내 readme 파일
오라클 공식 홈페이지 - Oracle Instant Client for Microfot Windows 64-bit
 

반응형