ORACLE/ADMIN2007. 12. 7. 00:16
반응형


DATABASE LINK 사용 방법
=======================


먼저 한글 data간의 전달을 위해 두 db간의 character set이 같아야 합니다.
character set을 확인하는 방법은

sqlplus system/manager
select * from v$nls_parameters;
하여 보면 nls_characterset에 대한 값이 나옵니다.

 
  예를 위해 다음과 같은 환경을 가정하겠습니다.
    
           HOST NAME    :      HP7     -       SUN7      
      
           ORACLE_SID   :      ORA7   -    ORATEST 
    
  이라 할 때

  1)  HP7 에서 SUN7로 DB LINK 생성하기. 

 

      scott/tiger 로 Login

    SQL*NET V1의 경우
      SQL> create public database link  HP7TOSUN6
                connect to scott identified by tiger
                using 't:SUN7:ORATEST';

    (rdbms 7.3 이상은 SQL*NET v2 를 사용하십시오)


    SQL*NET V2의 경우

 

create [public |private] DATABASE LINK {사용할 링크 명}
 CONNECT TO {접속 아이디} IDENTIFIED BY {접속암호}using'연결문자열';   

 

 public 일 경우 모든 사용자가 사용할 수 있으며 pribate일 경우에는 생성한 사용자만 사용할 수있다.
 
 링크 이름을 지정하는 데 숫자가 먼저 올 수 없다.


      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@HP7TOSUN7;

      SQL> create view emp_view as select *
           from emp@HP7TOSUN7 a
           where a.deptno = 10;
                   
  3> HP7 에서 SYNONYM을 생성하여 사용하는 경우

 

         SQL> create synonym emp for emp@HP7TOSUN7;
         SQL> select * from emp;

 

   로 한다면 간단히 분산 DB의 환경에서 사용할 수 있습니다.

  select를 제외한 DML(insert, update, delete)을 하려면,
  sql*plus 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@HP7TOSUN7;
  insert into table_name@HP7TOSUN7;
  delete table_name@HP7TOSUN7;
  ...

  (단 SERVER TO SERVER로 NETWORK 환경이 구축되어 있어야 하고,
  listener 가 반드시 떠 있어야 합니다.)

 

DATABASE LINK 삭제하기

 
 DROP [public|private\ database link {삭제할링크 명};

 

==db links 조회

 

==USER ACCOUNT

SELECT * FROM USER_DB_LINKS

 

--DBA ACCOUNT

SELECT * FROM DBA_DB_LINKS

 

/* NEW 오라클 테이블 비우기 */
select 'truncate table '||table_name||';' from user_tables;


 

/* NEW 오라클 노로깅 */
select 'alter table '||table_name||' nologging;' from user_tables ;


 

/* NEW 오라클 index drop */
select 'drop index '||object_name||';' from user_objects
where object_type = 'INDEX';


 

/* NEW 오라클 인서트  */
select 'insert /*+ append */ into '||table_name||' select * from '||table_name||'@dblinkname;'
from user_tables
where owner = 'KVDBA';


 


/* NEW 오라클 테이블 로깅으로 변경 */
select 'alter table '||table_name||' logging;' from user_tables;


덧글. 오라클이 CBO이면 analyze 를 수행할것을 권장...

반응형

'ORACLE > ADMIN' 카테고리의 다른 글

오라클 캐릭터 셋 변경(CHARACTER SET)  (0) 2008.04.02
오라클 파라미터 관련 사이트 링크  (0) 2007.12.13
oracle lock  (0) 2007.08.14
ORACLE relink  (0) 2007.08.07
Oradebug Command  (0) 2007.08.04
Posted by [PineTree]