ORACLE과 MSSQL간의 DBLINK 방법

오라클 제품군 중에 Oracle_Transaparent Gateway for Microsoft MSSQL 라는 게 있습니다.



오라클 Enterprise Edition이 설치된 상태에서 별도 구매해야하는 제품입니다만 이름이 의미하듯이 이기종 DB와 연결시 매우 뛰어난 성능을 보여줍니다.



MS SQL에서 ORACLE을 연결할때 LINKED SERVER 기술이 사용됩니다. ODBC를 기반으로 하고 있고 무료로 이용할 수 있지만 OLTP 목적으로 사용하기에는 부적합니다.



질문하신 분의 환경과 맞을 지 모르겠지만 아래의 내용으로 TEST를 해보시기 바랍니다.


1. Oracle Enterprise Edition을 Windows Platform을 갖는 Machine에 설치한다.

2. 설치 Option에서 Transparent Gateway for Microsoft SQL Server Option을 추가 설치한다.

3. 연결하고자 하는 MS SQL Server의 IP Address와 Hostname을 lmhosts 파일에 등록하거나 WINS Server를 통해 등록한다.

4. $ORACLE_HOME\tg4msql\admin 디렉토리 아래의 inittg4msql.ora 파일을 initSID.ora 로 복사한다. (SID는 사용자가 MS SQL Server별로 지정할 수 있다.)

5. 신규로 생성한 initSID.ora 파일을 Open 후 HS_FDS_CONNECT_INFO 값을 . 을 지정한다. 단, MS SQL Server가 설치된 Machine의 경우 Host 이름으로 입력하도록 한다. IP Address는 사용하지 않는다.

6. $ORACLE_HOME\network\admin 디렉토리 아래의 listener.ora 파일을 Open 후 다음과 같은 내용을 추가한다.

(SID_DESC =

(SID_NAME = SID)

(ORACLE_HOME = $ORACLE_HOME)

(PROGRAM = tg4msql)

)




7. $ORACLE_HOME\network\admin 디렉토리 아래의 tnsnames.ora 파일을 Open 후 다음과 같은 내용을 추가한다.

SID =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = Transparent Gateway가 설치된 Machine의 IP Address)(PORT = Listener에서 사용하는 Port번호))

(CONNECT_DATA =

(SID = SID))

(HS = OK)

)




8. Datbase Link 또는 Public Database Link를 생성할 수 있는 권한이 있는 사용자로 Login한 후 다음과 같은 방식으로 Database Link를 생성한다. (여기서는 Public Database Link를 생성하였다.)

create public database link 사용자가 식별하고자 하는 이름 connect to sa identified by simsnt using 'TNSNAMES.ORA에서 지정한 이름';




9. Database Link처럼 사용한다.







또는, MS-SQL의 Open Query라는 것이 있습니다.

http://www.en-core.com/bin/main/module/solution/admin_view.asp?solution_code=&searchString=&column=&board_id=solution&state=view&article_id=19469&location=&page_num=1&group_id=19570&direction=n&step=0