대부분의 DB 개발자들은 오라클 DB 하나를 설치한 후 유저를 여러명 만들어서 쓰고 테이블 스페이스로 사용자를 나누어서 운영하고 있다. 하지만 한 팀이 물리적으로 이동한다던가 업무가 전혀 달라진다던가 하면 다른 DB를 사용할 수 밖에 없다. 그러나 이렇게 격리됨으로 인해 두 DB를 연결하고 싶을때가 있다.
그럼 내가 쓰는 DB에서 다른 DB를 볼수 있고 데이타도 바로 select 가 가능하기 때문에 db_link 는 거의 오라클에서는 필수가 되었다. 또한 link 만드는 법도 매우 쉽다.
먼저 oraA, oraB 의 서비스네임을 가진 데이타베이스 2개가 있다고 하자. 그리고 oraA 에서 oraB 의 데이타를 보려고 한다.
간단하게 설명하면,, 1. oraA 에서 oraB 로 접속가능하게 설정한다. 2. oraA 에서 oraB 로 접속해본다. 3. oraA 에서 db link 를 만든다. 4. 만든 db_link 로 테이블을 select 해본다. --------------------------------------------------------------------------------------------------
1. oraA 서버상에 상대 오라클 서버(oraB)를 등록한다. $ORACLE_HOME/network/admin/tnsnames.ora 파일에 등록함 (oraA)
ex) oraB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oraB의 ip 또는 host name )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oraB) ) )
2. 접속해본다. % sqlplus <userid>/<passwd>@oraB
3. DB Link 를 사용할 오라클 계정(oraA)으로 sqlplus에 로그인하고 다음과 같이 DB Link를 생성한다. SQL> create database link <링크로사용할이름> connect to <userid> identified by <passwd> using 'oraB(상대 서비스 네임)'; -- 여기서는 아무 에러없이 만들어지지만 잘못 만들었을경우 select 할때 에러가 난다.
4. 잘 만들어 졌는지 확인 SQL> select * from tab@<링크이름>
5. drop Database link 방법 (잘못 만들었다면 지우고 다시 만든다.) SQL> drop database link <링크이름>;
6. Database link 보기 SQL> select * from all_db_links;
|