먼저 oraA, oraB 의 서비스네임을 가진 데이타베이스 2개가 있다고 하자.
그리고 oraA 에서 oraB 의 데이타를 보려고 한다.
간단하게 설명하면 아래의 절차와 같다.
1 oraA 에서 oraB 로
접속
가능하게
설정한다.
2 oraA 에서 oraB 로
접속해본다.
3 oraA 에서 db link 를
만든다.
4 만든 db_link 로
테이블을 select 해본다.
1. oraA
서버상에 상대 오라클 서버(oraB)를 등록한다.% vi $ORACLE_HOME/network/admin/tnsnames.ora 파일에 등록함 (oraA)
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(상대 서비스 네임)';
4. 잘 만들어 졌는지 확인
SQL> select * from tab@<링크이름>
oraB의
테이블정보와 일치하면 성공.
5. drop Database link 방법
잘못 만들었다면 지우고 다시 만든다.
SQL> drop database link <링크이름>;
6. Database link 현황 보기
SQL> select * from all_db_links;
SQL> select * from dba_db_links;
7. TNS-03505 에러 발생시
oraA와 oraB의 $ORACLE_HOME/network/admin/sqlnet.ora 비교하여 NAMES.DIRECTORY_PATH= 의 값이 동일한지 확인
생성 권한 : grant CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK to babs;
set pagesize 200
set linesize 300
col OWNER
format a20
col DB_LINK format a25
col USERNAME format a20
col HOST
format a20
col CREATED format a20