대부분의 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;



+ Recent posts