MySQL에서 오라클의 dblink 처럼 쓰는 기능 (FEDERATED)

 

내가 하고자 한 것은….
A서버의 AA DB에서 table A1 이 있고
B서버의 BB DB에서 table B1 이 있을때,

A서버의 client 에서 A1테이블과 B1테이블을 조인하고자 한다..

물론 JDBC로 두 DB를 연결해서 join 프로그램을 짜도 되는데…

그냥 할수 있는 방법이 없을까 고민하다가 이런 방법을 찾게 되었다.

CREATE TABLE TestB1 (
`SEQ` bigint(20) NOT NULL,
`NODEID` varchar(10) default NULL,
`NAME` varchar(128) default NULL,
...
`DEL_YN` char(1) default 'Y'
PRIMARY KEY  (`SEQ`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8
CONNECTION='mysql://mysqluserid:mysqluserpw@B서버Domain:3306/BB/B1';

위의 쿼리를 서버 A의 AA DB에 생성을 하게되면, AA DB에서 TestB1 를 통해서 B서버의 BB DB의 B1테이블에 대한 insert, update, delete, select 을 할 수 있다. (물론 Join도…)

PS. Federated Tables기능을 사용하기 위해서는 Mysql 컴파일시 Configure에서 “-with-federated-storage-engine ” 옵션을 주어야 한다. (MySQL 5.0.3 or newer. )
트랜젝션 처리도 안된다고 하며, B서버의 BB DB에 대한 접속정보가 노출되므로 주의..

참고 :
http://dolba.net/tt/k2club/entry/Mysql-FEDERATED-Tables-DB-Link
http://blackbull.tistory.com/31

 

This entry was posted in Database and tagged , , . Bookmark the permalink.

댓글 남기기