SQL -> ORACLE DATA 조회는 여러번 언급되어 왔기에
ORACLE -> SQL DATA 조회하는 방법을 소개한다.
은폐 게이트웨이 설치 및 설정
은폐 게이트웨이(Transparent Gateway)는 오라클 DBMS에 기본으로 설치되는 부분은 아니므로 은폐 게이트웨이가 설치되지 않았다면 Oracle Universal Installer에서 지정해 설치하도록 한다(Oracle Universal Installer에서 ‘Oracle9i Database 9.2.0.1.0 > Oracle Transparent Gateway 9.2.0.1.0’을 설치하면 된다). 설치시 <화면 5>와 같이 SQL 서버 및 데이터베이스를 입력하라고 나오는데, 본 예제에서는 SQL 서버에는 127.0.0.1, 데이터베이스는 Northwind로 설정했다(여기서는 SQL 서버가 은폐 게이트웨이와 같은 서버에 있다고 가정한다). 여기서 지정하는 데이터베이스가 은폐 게이트웨이로 접속했을 때, 사용할 수 있는 데이터베이스가 된다.
<화면 5> 은폐 게이트웨이 설치 화면
이렇게 은폐 게이트웨이의 설치를 마치면 『오라클 설치 폴더 | ora92 | tg4msql | admin』에 은폐 게이트웨이 설정 파일 및 수정에 필요한 샘플 파일이 생성된다.
◆ 은폐 게이트웨이 SID 선정 : SID는 서버 내에서 각 오라클 인스턴스 및 은폐 게이트웨이를 구별하는 구분자 역할을 하는데, 은폐 게이트웨이의 경우 디폴트로 tg4msql로 설정되어 있다. 따라서 은폐 게이트웨이 설정 파일명도 inittg4msql.ora로 되어 있다(설정 파일명은 init 은폐 게이트웨이 SID.ora 형식으로 되어 있다). SID를 변경하고자 한다면, inittg4msql.ora에서 init 변경된 SID.ora로 파일명을 변경해야 한다. 여기서는 디폴트 SID를 사용하도록 한다.
◆ 은폐 게이트웨이로 요청을 분배하기 위한 TNS Listener 설정 : 기본적으로 TNS 리스너는 오라클 클라이언트로부터 오라클 서버의 접속 요청을 받아 접속 요청 내에 포함된 SID를 확인한 뒤, 해당 SID를 가진 오라클 인스턴스에게 요청을 넘겨주는 역할을 한다. 이제 은폐 게이트웨이도 설치됐으므로 TNS Listener로 하여금 은폐 게이트웨이에 대한 접속 요청을 받아서 접속 요청 내에 포함된 SID를 확인한 뒤, 해당 SID를 가진 은폐 게이트웨이에 요청을 넘겨주도록 설정해야 한다. listener.ora와 tnsnames.ora를 <리스트 4>와 같이 수정하도록 한다. 수정 후에는 반드시 TNS 리스너를 재시작해 변경사항이 적용되도록 한다.
이제 오라클에서 SQL 서버를 사용하기 위한 은폐 게이트웨이에 필요한 설정은 모두 끝이 났다. 이제 오라클에 system 계정으로 로그인해 SQL 서버에 연결할 수 있도록 데이터베이스 링크를 만들어 주도록 하자(scott 계정에서 데이터베이스 링크를 만드는 것도 가능하지만 다른 데이터베이스를 접속하도록 인가하는 것은 DBA가 하는 것이 바람직하다).
CREATE PUBLIC DATABASE LINK ms CONNECT TO sa IDENTIFIED BY password USING 'hsagent';
그리고 scott 계정으로 접속해 데이터베이스 링크를 이용해 SQL 서버의 Northwind 데이터베이스를 오라클처럼 사용해 보도록 하자.
◆ SQL 서버 테이블 접근
SELECT * FROM Customers@ms WHERE rownum <= 3;
SELECT sum("col4") FROM test@ms
SELECT * FROM test@ms m, TEST ora WHERE m."col1" = ora.col1;
출처 : http://www.dbguide.net/dbqa/dbqa120001.jsp?mode=view&pg=1&idx=797