1. 程式人生 > >利用DB Link兩步搞定Oracle兩個資料庫間的表同步

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

一、實現目標:

         要實現從源表:AAA到目標表:BBB的資料同步。

二、在目標機上建立Oracle DB Link:


     1、 在network/admin/tnsname.ora檔案中加入源庫的連線資訊,如:

AAA=
  (DESCRIPTION 
=
    (ADDRESS 
= (PROTOCOL = TCP)(HOST =10.5.1.3)(PORT =1521))
    (CONNECT_DATA 
=

      (SERVER 
= DEDICATED)
      (SERVICE_NAME 
=
 AAA)
    )
  )


    2、在目標機上用sqlplus user/pwd登入。


    3、用如下命令建立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。

三、使用如下指令碼,即可同步資料表:

#!/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$optionwhere PARAMETER='Advanced replication
';

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