MS SQL 2005를 주로 사용하는 중에, 종종 타 시스템 연동관련해서,
Oracle DB 데이터를 연결해야 하는 경우가 발생한다.
이 경우, Oracle 클라이언트를 설치해서 별도로 Select 해서 넣는 방법도
있을 것이고, ODBC를 써서 넣을 수도 있다.

하지만, 지속적으로 Oracle DB의 데이터를 SQL 2005에 업데이트 해줘야 되는 경우가
발생하면, 이 부분에 대해서 다시 생각할 필요가 있을 것이다.

MS SQL 2005에서 연결된 서버(Linked Server)라는 기능을 이용해서 할 수 있다.

이 작업을 하는 방법에 대해서 설명을 할 것이다.

1. Oracle Client 설치.


맨 먼저 해야 될 것은 Oracle 서버 버전 보다 높은 클라이언트를 설치한다.
나 같은 경우, 오라클 DB 10i의 데이터 베이스를 다운 로드 링크로 들어가서, Client만 받았다.
 10i 클라이언트를 다운 받으려면 여기를 클릭하면 된다.
단 다운로드 받기 위해서는 오라클 사이트에서 로그인이 필요하다.
다운로드 받아서 설치할 때, 가급적 관리자 옵션을 해서 설치한다. 일단, Native 클라이언트와
Oracle for OLE-DB가 설치되어야 하는데, 옵션에 대하여 잘 아시는 분은 설정하면되지만,
나처럼 잘 모르면 그냥 관리자로 설치한다.
 
다 설치하고 난 뒤, 서비스 이름이나, 호스트 IP 주소, 포트 등을 설정한다.
만일 부적절하게 되었으면 오라클 설치 위치에 있는 network/admin 폴더로 들어가,
tnsnames.ora 텍스트 파일을 수정하도록 한다.

반드시 SQL Plus 같은 도구를 이용해서 접속이 정상적으로 되는지 확인하도록 한다.

2. 연결된 서버 만들기.


SQL 2005 Server Management Studio를 실행 시킨다. 서버에 로그인을 하고 난뒤,
왼편의 개체 탐색기에 들어가서 연결된 서버 항목을 오른쪽 버튼 클릭하여 컨텍스트
메뉴를 띄운다.

연결된 서버에는 현재 SQL 에서 이 연결된 서버를 가르킬 때 쓸만한 적당한 이름을 넣는다.
OracleDB 뭐 이런 것으로 해결하면 된다.
공급자에서는 Oracle Provider for OLE DB를 선택한다.
제품 이름에 tnsnames.ora 에서 정한 데이터 원본 이름을 넣고,
데이터 원본에는 서비스 이름을 넣는다.


보안 탭으로 넘어가서 로컬 서버 로그인과 원격 서버 로그인 매핑 부분에, 추가 버튼을 클릭해서 로컬 로그인을 선택한 뒤, 원격 사용자원격 암호를 넣는다.
로컬 로그인은 SQL DB에 로그인하는 계정, 특히 이 연결된 서버를 사용할 계정을 선택한다.
원격 사용자, 원격 암호는 오라클에서 사용하는 ID와 Password를 넣는다.
그리고 맨 아래쪽의 로그인 현재 보안 컨텍스트를 사용하여 연결.을 선택한다.

완료 해서 저장한다.

3. Oracle Provider 관련 옵션 변경


Open Query를 이용해서 연결해서 보면, ID와 Password가 틀리지 않으면 다음과 같은 에러 메시지를 볼 수 있을 것이다.

메시지 7399, 수준 16, 상태 1, 줄 2
연결된 서버 "ORACLEDB"의 OLE DB 공급자 "OraOLEDB.Oracle"에 오류가 발생했습니다. 공급자에서 오류에 관한 정보를 주지 않았습니다.
메시지 7303, 수준 16, 상태 1, 줄 2
연결된 서버 "ORACLEDB"에 대한 OLE DB 공급자 "OraOLEDB.Oracle"의 데이터 원본 개체를 초기화할 수 없습니다.

이 문제는 Oracle Provider 옵션의 문제인데, 일단 Oracle Provider의 옵션으로 들어간다.
연결된 서버 -> 공급자 -> OraOLEDB.Oracle  에서 오른쪽 버튼을 눌러 속성으로 들어간다.

그러면 공급자 옵션을 볼 수 있는데, 대부분의 옵션이 Disable 되어 있음을 확인할 수 있다.
그 중 Inprocess 허용을 체크 해주면 정상적으로 작동하게 된다.

728x90

+ Recent posts

728x90