[ Oracle - DATABASE LINK 사용 방법 ]
Database Link(데이터베이스 링크)
먼저 디비 링크를 사용하기 위해서는 v$parameter 에 global_names=false로 되어 있어야 합니다..
init.ora를 고치던지.아님 alter system set global_names=false;로 해 줘야 합니다.
그리고 grant create database link to scott; 로 해당 유저한테 권한을 부여 합니다.
그리고 tnsnames.ora파일을 수정해 해당 연결하고자 하는 database의 알리아스를 만들어 주면 됩니다.
우선 고려되어야 사항은 ORACLE INSTANCE가 두 개 이상이고 각기 다른 PLATFORM에서 운용된다는 가정하에서 각각의 HOST NAME과 ORACLE_SID는 다르고 NLS_CHARACTER_SET은 동일하게 되어 있어야 합니다.
만약 같은 MACHINE에서 INSTANCE의 ORACLE_SID가 같다면 TNS ERROR가 발생할 것이다.
또한 미래를 위해 다른 MACHINE이라 할지라도 ORACLE_SID는 규칙에 의해 다르게 가져가는 것이 좋습니다.
그리고, NLS_CHARACTER_SET이 동일하게 되어 있지 않으면 DATA 입/출력 시 한글 데이타가 ?????로 나타날 것입니다.
그럼 환경 점검이 끝났으니 ORACLE7에서 ORACLE V6(ORACLE7의 경우도 비슷)에 있는 TABLE의 DATA를 db link를 이용하여 SELECT하거나 VIEW를 작성하여 보겠습니다.
HOST NAME : HP7 -> SUN7
ORACLE_SID : ORA7 - ORATEST 이라 할 때
1) HP7 에서 SUN7로 DBLINK생성하기.
scott/tiger 로 Login
SQL> create public database link HP7TOSUN7
connect to scott identified by tiger
using 'ORATEST';
로 하면 된다.
이때 V2인 경우의 ORATEST는 $ORACLE_HOME/network/admin directory의
tnsnames.ora file 내에 지정된 service name이다.
tnsnames.ora의 service name이 잘 setting 되어 있는지 확인하는 방법
: SQL*Plus scott/tiger@service name했을 때, SQL*Plus에 log-in되어야
합니다.
2> SUN7 에 있는 TABLE의 select 및 view(view는 필요에 따라 생성) 작성,
HP에서 작업
SQL> select * from emp[at]HP7TOSUN7;
SQL> create view emp_view as select * from emp[at]HP7TOSUN7 a
where a.deptno = 10;
3> HP7 에서 SYNONYM을 생성하여 사용하는 경우
SQL> create synonym emp for emp[at]HP7TOSUN7;
SQL> select * from emp;
로 한다면 간단히 분산 DB의 환경에서 사용 할 수 있습니다.
select 를 제외한 DML(insert,update,delete) 를 하려면,sqlplus log-in 시에 다음과 같은 option 이 display 되어야 합니다.
SQL*Plus: Release 3.3.3.0.0 - Production on Mon Jan 19 14:18:47 1998
Copyright (c) Oracle Corporation 1979, 1996. All rights reserved.
Connected to:
Oracle7 Server Release 7.3.3.4.0 with the 64-bit option - Production
Release With the distributed, ......
------------------------------------
remote 작업의 예
select * from table_name[at]HP7TOSUN7;
insert into table_name[at]HP7TOSUN7;
delete table_name[at]HP7TOSUN7;
(단 SERVER TO SERVER로 NETWORK 환경이 구축되어 있어야 하고,
listener 가 반드시 떠 있어야 합니다.)
SQL> create public database link link_test
2 connect to scott identified by tiger
3 using 'haksan21'; -- service name
데이타베이스 링크가 생성되었습니다.
SQL> select * from all_db_links;
OWNER DB_LINK USERNAME HOST CREATED
---------- -------------------- ---------- ---------- --------
PUBLIC HSA.WORLD HSA haksan21 99/03/12
PUBLIC HSE.WORLD HSE haksan21 99/03/30
PUBLIC HSR.WORLD HSR haksan21 99/03/23
PUBLIC LINK_TEST.WORLD SCOTT haksan21 99/05/07
SQL> drop public database link link_test;
데이타베이스 링크가 삭제되었습니다.
SQL> select * from all_db_links;
OWNER DB_LINK USERNAME HOST CREATED
---------- -------------------- ---------- ---------- --------
PUBLIC HSA.WORLD HSA haksan21 99/03/12
PUBLIC HSE.WORLD HSE haksan21 99/03/30
PUBLIC HSR.WORLD HSR haksan21 99/03/23
** export, import 작업을 수행할 경우 (또는 동일한 환경으로 새로운 유저를 만들경우) ??
Synonym 처음
* 목적 : 다른 사용자가 소유한 테이블을 쉽게 사용하기 위해
OBject 이름을 짧게 하기 위해
* SYNONYM의 정보를 가진 Data Dictionary
USER_SYNONYMS
ALL_SYNONYMS
* 예문
create synonym tmp00 for fsr.tmp00;
* 삭제 : drop synonym synonym_name
*** db link의 사용
다른 기계의 데이타베이스를 사용하고자 할 때 이용
create public database link link_name
connect to user_name identified by password
using 'db_alias_name';
확인 : all_db_links
사용 : select * from user_name.table_name[at]link_name;
synonym : create synonym synonym_name for user_name.table_name[at]link_name;
'(DB) Oracle > Object & Utility' 카테고리의 다른 글
Oracle - DB Scheduler_스케쥴러 (0) | 2017.01.21 |
---|---|
Oracle - DB Link (0) | 2017.01.21 |
Oracle - DATABASE LINK 사용 방법 (0) | 2017.01.21 |
Oracle - DataLink_예제1 (0) | 2017.01.21 |
Oracle - DB Link 생성 방법 및 SYNONYM 생성 방법 (0) | 2017.01.21 |