天天看點

利用DB Link兩步搞定Oracle兩個資料庫間的表同步

1,在目标機上建立Oracle DB Link:

A,在network/admin/tnsname.ora檔案中加入源庫的連接配接資訊,如:

AAA =

  (DESCRIPTION  =

    (ADDRESS  =  (PROTOCOL  =  TCP)(HOST  =   10.5.1.3 )(PORT  =   1521 ))

    (CONNECT_DATA  =

      (SERVER  =  DEDICATED)

      (SERVICE_NAME  =  AAA)

    )

  )

B,在目标機上用sqlplus user/pwd登入。

C,用如下指令建立DB Link:

create  public  database link AAA_LINK connect to user identified by pwd using  ' AAA ' ;

指令說明:

CREATE PUBLIC DATABASE LINK 資料庫連結名 CONNECT TO 使用者名 IDENTIFIED BY 密碼 USING ‘本地配置的資料的執行個體名’;

如果建立成功,會提示:Database link created.

2,使用如下腳本,即可同步資料表:

# !/bin/sh

# to sync table A to BBB database from AAA database

sqlplus user / pwd @BBB   << EOF      # 這裡是BBB上的資料庫和密碼還有執行個體名,請按照實際情況修改

truncate  table A;

insert into A 

select   *  from b_schema . A @AAA_LINK ;  # 這裡是指向要同步的來源表,表名必須是<表所有者>.<表名>@<dblink name>

commit;

PS:需要DB支援Advanced replication功能,是否支援,可用如下SQL檢視:

select   *   from  v$ option   where  PARAMETER = ' Advanced replication ' ;

如果是傳回True就表示支援。