MSSQL에서 Oracle Linked Server 설정

1. 오라클 ODAC 설치
https://www.oracle.com/technetwork/topics/dotnet/index-090165.html


– 64 비트 Oracle Data Access Components (ODAC) 다운로드 (ODAC122010_x64.zip)

2. tnsnames.ora 파일복사

설치한 경로의 sample폴더에 있는 tnsnames.ora 파일을 복사하여 Admin 폴더 아래에 붙혀넣는다.
(예 c:\oracleexe/app/oracle/product/11.2.0/server/network/admin/sample/tnsnames.ora)
3. 연결정보 입력
– tnsnames.ora 파일에 연결정보를 입력 한다.

 

 *TNS명 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = *IP주소)(PORT = *포트번호))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = *DB명)
)
)

 

 

예) TNS명 : ISM / DBName : MMC / IP:222.222.222.222 / 포트번호: 1521

ISM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 222.222.222.222)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MMC)
)
)
4. Inprocess허용

링크드 서버를 등록할때 다음과 같은 에러 메시지가 나올것이다.

연결된 서버 “ISM시스템’에 대한 OLE DB공급자 “OraOLEDB.Oracle”의 인스턴스를 만들 수 없습니다.
(Microsoft SQL Server, 오류:7302)

해결방법 : Inprocess 허용을 해줘야 한다.

 

연결된 서버 > OraOLEDB.Oracle 의 속성창을 연다.

 

 

 

 

5. MSSQL에 링크드서버 등록

 

 

예) 위 예제 내용을 등록

 

**. Oracle Database User / Password 설정

[새 연결된 서버 팝업창] ->[패이지선택 영역] -> [보안] -> [다음 보안 컨텍스트를 사용하여 연결]

> 원격로그인 : ID

> 암호 : PW

 

6. 5번까지 했는데 링크드서버가 등록되지 않는다면 재부팅을 해야한다.

오라클 드라이버가 재부팅을 해야 적용되는 경우도 있다. (방화벽도 체크 해보시길)