database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 1734 게시물 읽기
No. 1734
오라클 연동 질문입니다.,
작성자
이도희
작성일
2008-10-14 12:14ⓒ
2008-10-14 12:14ⓜ
조회수
12,239

DB2 에서 오라클 서버를 연결하고 싶을 떄 


페더레이티드 시스템을 사용하잖아요. 


혹시 어떤 식으로 연결해야 하는지 방법을 알 수 있을까요?


이 글에 대한 댓글이 총 3건 있습니다.

1. DB2가 설치된 서버(클라이언트 아님, 서버군 ESE 혹은 WSE)에서 오라클 클라이언트 설치가 되어야 하고 설치 후 연결할 오라클 서버의 연결정보를(TNSNAMES )등록하여야 함.

2. 역시 DB2가 설치된 서버에서 같은 버전의 통칭 WFS(Websphere Federation Server)가 설치되어야 함.( DataJoiner 혹은 DB2 II 혹은 WII 혹은 WFS 모두 같은 제품을 가리킴 )
즉, DB2가 V8이면 DB2 II V8.x 혹은 DB2 V9 이면 WII 혹은 WFS V9.x

3. DB2 인스턴스 유저로 로그인하여 {인스턴스 홈 디렉터리}/cfg 디렉터리 위치에 db2dj.ini 라는 임의의 파일을 만들고 설치된 오라클에 대한 필요 내용 기입


ORACLE_HOME=<오라클 클라이언트 설치 홈 디렉터리>
TNS_ADMIN=<참조할 tnsnames.ora 파일이름 및 위치>


예)
ORACLE_HOME=/oraclnt
TNS_ADMIN=/oraclnt/network/admin/tnsnames.ora

4. DBM CFG 파라메터의 FEDERATED 값을 YES로 바꾸어주어야 함. (DB2 인스턴스 유저로서 수행)
$ db2 update dbm cfg using federated yes

값 바꾼 후 DB2 인스턴스 재시작해야함.

5. DB2 인스턴스의 레지스트리 파라메터 2개의 설정이 필요함.(DB2 인스턴스 유저로서 수행)
DB2_DJ_COMM=<참조할 랩퍼 라이브러리 파일이름>
DB2_DJ_INI=<참조할 db2dj.ini 파일의 이름 및 위치>

예)
$ db2set DB2_DJ_COMM=libdb2drda.a,libdb2net8.a
$ db2set DB2_DJ_INI=/home/db2inst1/sqllib/cfg/db2dj.ini


6. 오라클 클라이언트 환경변수, libclntsh 라이브러리를 참조, 오라클과의 리모트 액세스를 위한 
랩퍼에서 사용할 라이브러리파일 libdb2net8F.a 를 갱신이 필요함.
- root 유저로 {DB2 소프트웨어 설치위치}/bin 위치에서 djxlinkOracle 을 수행함. 수행후 생성된
파일 확인필요 ( 생성되는 파일은 libdb2net8F.a 이고 실제 wrapper 생성시 사용 파일은 libdb2net8.a 임 혼란하지 말것)

※ 참고로 오라클 랩퍼 라이브러리 파일이름은 libdb2net8.a 이고 DB2 랩퍼 라이브러리 파일이름은 libdb2drda.a 임 다른 DB2 데이터베이스와 페더레이션 구성을 하지 않을것이면 DB2_DJ_COMM 파라메터 설정에서 libdb2drda.a 부분은 없어도 됨.

예) # /usr/opt/IBM/db2/V9.1/bin/djxlinkOracle
     # ls -l libdb2net8F.a
 

7. 구성이 모두 마쳐졌다면 닉네임을 구성할 DB2 데이터베이스에 접속하여 아래순서대로 수행할 수 있음.

랩퍼 생성 : DB2와 오라클 데이터소스간 상호 연동을 위한 랩퍼 라이브러리 파일 지정
서버 생성 : 랩퍼이름과 연결 오라클 TNSNAME를 이용하여 연결 대상 서버 정보 생성
유저 맵핑 : 타켓 테이블을 엑세스 할수 있는 오라클 유저와 DB2서버에서 엑세스할 DB2 유저와의 맵핑 정보 등록 (반드시 오라클 유저는 해당 테이블을 엑세스 할수 있는 권한이 있어야 함.)
별칭(Nickname) 생성 : 대상 오라클 테이블(<서버>.<스키마>.<테이블이름>) 을 해당 DB2유저에서 사용할 이름으로 등록, 유저맵핑에 오라클유저가 있으므로 경우에 따라 스키마이름은 생략해서 <서버>.<테이블이름> 으로 해두 되긴함;; 그러나 불명확하므로 비추

- 그외 서버 생성 부분에서 option 부분 추가 설정을 통해 오퍼레이션 성능을 개선할 수 있음.(DB2 인포센터 참고) WFS는 단순한 데이터 링크가 아님. 양측 통계정보를 모두 사용하며 리소스 분배도 가능한 아주 강력한 제품임. 

7.1 Wrapper define
db2 "create wrapper <wrapper-name> library 'libdb2net8.a'"

7.2 Server define
db2 "create server <server-name> type oracle version <version> wrapper <wrapper-name> options ( node '<tnsname>' )"

7.3 User mapping
db2 "create user mapping for <db2 username> server <server-name> options ( remote_authid '<oracle-user-name>', remote_password '<oracle-user-password>' )"

7.4 Nickname define
db2 "create nickname <nickname>  for <server-name>.<mapping username>.<tablename>"


예)
db2 "create wrapper net8 library 'libdb2net8.a'"
db2 "create server orasvr1 type oracle version '10.2.0.1' wrapper net8 options( node 'ORCL', password 'Y')"
db2 "create user mapping for db2inst1 server orasvr1 options(remote_authid 'SCOTT', remote_password 'tiger')"
db2 "create nickname dept2 for orasvr1.scott.dept"

8. nickname 조회 (조회권한이 있으면 조회가능, INSERT,DELETE,UPDTE등 맵핑한 오라클 유저의
권한이 허용되는대로 오퍼레이션 가능)

db2 "select * from db2inst1.dept2"

※ 그외 SERVER 생성단계를 마친후 유저맵핑을 하지 않았더라도 set passthru 명령을 이용하여 오라클 데이터소스에 대한 연결 테스트가 가능함. ( 등록한 서버이름를 이용하여 set passthru 하고 오라클 쿼리가 수행되면 set passthru reset 하여 원래 상태로 돌아옴. )

연결테스트
1. db2 set passthru <서버이름>
2. db2 "<오라클 native 쿼리>"
3. db2 set passthru reset

예)
1. db2 set passthru orasvr1
2. db2 "select count(*) from user_tables"
3. db2 set passthru reset



이상 끝~

wlskrkejswnd님이 2008-10-14 17:47에 작성한 댓글입니다.
이 댓글은 2008-10-14 18:17에 마지막으로 수정되었습니다. Edit

WFS(Websphere Federation Server)


답변 정말 감사드립니다. 근데 WFS제품은 어디서 다운받아서 설치해야 하나요?>


혹시 라이센스가 필요한 유료 제품인지요?

이도희님이 2008-10-14 18:27에 작성한 댓글입니다. Edit

혹시나 Trial 받을데가 생겼는지 확인했눈뎁 역시나 없네요.

IBM BP, 총판, 영업 쪽을 Contact 하셔서 SW를 구하셔야 하겠네요.

WFS...아니 이제는 IBM IFS (Infosphere Federation Server)로 2008년 9월 30일부로 바뀌어졌네요.

암퉁.. DB2서버랑 같은 메이저 버전으로 설치하셔야 하고 마이너 DB2 패치레벨에 맞추어 

WFS 패치도 하여야 하므로 가능한 위의 Contact 라인에서 구하시고 도움 받으심이 좋을거에요.


원래 WFS가 가격이 좀 있는 제품이라 아직 유로로서만 제공되는 것 같습니다. 

당연 구매가 전제라면 라이센스 구매가 일어나야 하는것이구요.


그럼 수고요~
wlskrkejswnd님이 2008-10-15 11:08에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1737DB2 버젼갖고계신분 부탁드립니다.
잠실벌
2008-10-23
8570
1736SQL 외부 프로시저에서..
이도희
2008-10-17
8645
1735데이타 export에서요. [1]
초보자
2008-10-16
11804
1734오라클 연동 질문입니다., [3]
이도희
2008-10-14
12239
1733테이블스페이스 지정에 관한 문의드립니다. [1]
초보
2008-10-09
8305
1732os 사용자 삭제 시 오브젝트 삭제 [2]
이도희
2008-10-07
8588
1731다시 라이브러리 패스 질문 드립니다.. [1]
이도희
2008-10-07
9440
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2021 DSN, All rights reserved.
작업시간: 0.011초, 이곳 서비스는
	PostgreSQL v13.3으로 자료를 관리합니다