隨筆-193  評論-715  文章-1  trackbacks-0
          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就表示支持。


          特別提示:
          本Blog所有內容不得隨意轉載,版權屬于作者所有。如需轉載請與作者聯系(
          fastzch@163.com)。未經許可的轉載,本人保留一切法律權益。
          posted on 2009-02-17 19:22 Robin's Programming World 閱讀(16006) 評論(15)  編輯  收藏 所屬分類: DB

          評論:
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步[未登錄] 2009-02-18 14:41 | kim
          不知道效率如何?  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2009-02-18 17:11 | 虎嘯龍吟
          也在關注效率問題啊  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2009-02-18 17:47 | Robin's Java World
          效率這事兒可以在腳本上動手腳。
          目前的腳本應該比全部刪除然后循環著一筆筆插快些。  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2009-02-19 08:41 | Leo1734
          插入的時候可以改成存儲過程這樣應該比較快一些吧!猜測……:p
          btw:LZ要是用過高級復制的話,可以介紹介紹,我多次嘗試都不成功!  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2009-03-19 16:38 | Robin's Java World
          @Leo1734
          這就是高級復制功能的一種用法。  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步[未登錄] 2009-03-20 10:03 | jody
          請樓主詳細分析下select * from b_schema.A()@AAA_LINK; #這里是指向要同步的來源表(只能一個表一個表的同步?且表的結構不一樣呢?也可以?),表名必須是<表所有者>.<表名>@<dblink name>


            回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2009-03-20 12:37 | Robin's Java World
          @jody
          通常,表結構要一樣,不一樣的話可用SQL語句調整成一樣。  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2009-05-07 17:08 | book
          一句話,誤人子弟  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步[未登錄] 2009-12-24 13:33 | 啊啊
          垃圾   回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2010-11-21 11:11 | qzcong
          請問樓主第二步的腳步如何使用?具體是怎么操作呢?是保存腳步?保存為什么擴展名?  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2013-09-23 22:51 | 路人甲
          一句話,誤人子弟  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2013-12-09 19:22 | 軒轅恒辰
          #!/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;

          這些輸進去為什么總是出錯  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步[未登錄] 2014-03-14 11:56 | aa
          服了,說別人不好的人,先拿出自己已本事看看啊。  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2014-06-18 11:36 | guodefu909
          這個是屬于全量更新,只適用于一次更新或記錄數少的情況。大表更新還是需要用增量更新  回復  更多評論
            
          # re: 利用DB Link兩步搞定Oracle兩個數據庫間的表同步 2014-06-18 11:37 | guodefu909
          準確的說不能叫表同步,只能叫表復制  回復  更多評論
            
          主站蜘蛛池模板: 剑阁县| 韶关市| 阳城县| 彭州市| 芜湖市| 眉山市| 交城县| 喀喇沁旗| 屏东县| 青岛市| 澜沧| 武川县| 大化| 临洮县| 麟游县| 仁布县| 五华县| 新野县| 嵊州市| 富裕县| 凉山| 鹤峰县| 芜湖市| 商洛市| 岳西县| 乌鲁木齐县| 加查县| 灯塔市| 平江县| 土默特左旗| 洛隆县| 巴林左旗| 新乡县| 拉孜县| 油尖旺区| 英吉沙县| 昌乐县| 江源县| 平遥县| 镇坪县| 尼木县|