oracle之DBLINK

liqilin0429發表於2012-05-16
建立oracle dblink
1 在本地伺服器上授予建立DBLINK的許可權
SQL> conn /as sysdba
已連線。
SQL> grant create public database link to scott;
授權成功。
2 在遠端伺服器上建立相應的賬戶
3 在遠端伺服器上查詢GLOBAL_NAME
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------
WNPMPDAT
4 建立DBLINK
A 在本地伺服器建立DBLINK(已經配置本地服務)
SQL> conn scott/qilin
已連線。
SQL> create public database link wnpmpdat connect to scott identified by qilin u
sing 'qilin137';
資料庫連結已建立。
A wnpmpdat 是遠端伺服器上查詢到的GLOBAL_NAME
B scott 是遠端伺服器上使用者 qilin是遠端伺服器上scott的密碼
C qilin137是本地建立的連線到遠端伺服器的資料庫的服務名
B 在本地伺服器建立DBLINK(未配置本地服務)
create database link wnpmpdat
   connect to scott identified by scott
   using '(DESCRIPTION =
   (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.189.137)(PORT = 1521))
   )
   (CONNECT_DATA =
   (SERVICE_NAME = wnpmpdat)
   )
   )';
5 測試連線是否成功
SQL> select * from dept@wnpmpdat;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
6 在遠端資料庫伺服器SCOTT的使用者表DEPT上插入一條記錄
SQL> conn scott/qilin
已連線。
SQL> insert into dept values(80,'wang','li');
已建立 1 行。
SQL> commit;
提交完成。
7 在本地伺服器上通過DBLINK的連線查詢驗證結果
SQL> select * from dept@wnpmpdat;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        80 wang           li
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
SQL> conn scott/qilin
已連線。
SQL> select * from dept;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
SQL> select * from dept@wnpmpdat minus select * from dept;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        80 wang           li
8 查詢已經建立的遠端連線名
SQL> col owner for a20;
SQL> col object_name  for a40;
SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER                OBJECT_NAME
-------------------- ----------------------------------------
PUBLIC               DBMS_CLRDBLINK
PUBLIC               WNPMPDAT
9 檢視Global_name引數是true還是False
SQL> col parameter for a20;
SQL> col value for a10;
SQL> select * from v$option where PARAMETER='Advanced replication';
PARAMETER            VALUE
-------------------- ----------
Advanced replication TRUE
Advanced replication為TRUE,則支援高階複製功能;否則不支援。
SQL> show parameter global_name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
global_names                         boolean     FALSE
引數global_name=true時要求資料庫連結名稱跟遠端資料庫名稱一樣
兩個同名的資料庫間不得建立dblink;
11 查詢建立的DBLINK的資訊
SQL> desc dba_db_links;
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
會話已更改。
SQL> select * from dba_db_links;
OWNER    DB_LINK      USERNAME   HOST                 CREATED
-------- ------------ ---------- -------------------- -------------------
PUBLIC   DBMS_CLRDBLI            ORACLR_CONNECTION_DA 2012-02-08 17:19:57
         NK                      TA
PUBLIC   WNPMPDAT     SCOTT      qilin137             2012-05-16 14:46:31
12 刪除DBLINK
SQL>DROP PUBLIC DATABASE LINK wnpmpdat
13 給DBLINK建立同義詞,用來查詢方便和系統的安全
SQL> select * from dept@wnpmpdat minus select * from dept;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        80 wang           li
SQL> create synonym re_scott_dept for dept@wnpmpdat;
同義詞已建立。
SQL> select * from re_scott_dept;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        80 wang           li
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20976446/viewspace-729929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章