DBA 택이 님 페이지 에서 퍼온 내용입니다. http://blog.naver.com/taek78?Redirect=Log&logNo=40024448851 먼저 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 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oraB의 ip 또는 host name )(PORT = 포트번호)) ) (CONNECT_DATA = (SERVICE_NAME 또는 SID = remote SID) 2. 일단 접속해본다. % sqlplus 접속이 되면 빠져나온다. 3. DB Link 를 사용할 오라클 계정(oraA)으로 sqlplus에 로그인하고 다음과 같이 DB Link를 생성한다. SQL> create database link <링크로사용할이름> connect to 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= 의 값이 동일한지 확인 |
DB/__Oracle