隨筆-193  評(píng)論-715  文章-1  trackbacks-0
          1,在目標(biāo)機(jī)上建立Oracle DB Link:
          A,在network/admin/tnsname.ora文件中加入源庫(kù)的連接信息,如:
          AAA=
          ??(DESCRIPTION?
          =
          ????(ADDRESS?
          =?(PROTOCOL?=?TCP)(HOST?=?10.5.1.3)(PORT?=?1521))
          ????(CONNECT_DATA?
          =
          ??????(SERVER?
          =?DEDICATED)
          ??????(SERVICE_NAME?
          =?AAA)
          ????)
          ??)

          B,在目標(biāo)機(jī)上用sqlplus user/pwd登錄。
          C,用如下命令建立DB Link:
          create?public?database?link?AAA_LINK?connect?to?user?identified?by?pwd?using?'AAA';
          命令說(shuō)明:
          CREATE PUBLIC DATABASE LINK 數(shù)據(jù)庫(kù)鏈接名 CONNECT TO 用戶名 IDENTIFIED BY 密碼 USING ‘本地配置的數(shù)據(jù)的實(shí)例名’;
          如果建立成功,會(huì)提示:Database link created.

          2,使用如下腳本,即可同步數(shù)據(jù)表:
          #!/bin/sh
          #?to?sync?table?A?to?BBB?database?from?AAA?database

          sqlplus?user/pwd@BBB?<<EOF????#這里是BBB上的數(shù)據(jù)庫(kù)和密碼還有實(shí)例名,請(qǐng)按照實(shí)際情況修改
          truncate?table?A;
          insert?into?A?
          select?*?from?b_schema.A@AAA_LINK;?#這里是指向要同步的來(lái)源表,表名必須是<表所有者>.<表名>@<dblink?name>
          commit;


          PS:需要DB支持Advanced replication功能,是否支持,可用如下SQL查看:
          select?*?from?v$option?where?PARAMETER='Advanced?replication';
          如果是返回True就表示支持。


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

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


            回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步 2009-03-20 12:37 | Robin's Java World
          @jody
          通常,表結(jié)構(gòu)要一樣,不一樣的話可用SQL語(yǔ)句調(diào)整成一樣。  回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步 2009-05-07 17:08 | book
          一句話,誤人子弟  回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步[未登錄](méi) 2009-12-24 13:33 | 啊啊
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步 2010-11-21 11:11 | qzcong
          請(qǐng)問(wèn)樓主第二步的腳步如何使用?具體是怎么操作呢?是保存腳步?保存為什么擴(kuò)展名?  回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步 2013-09-23 22:51 | 路人甲
          一句話,誤人子弟  回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步 2013-12-09 19:22 | 軒轅恒辰
          #!/bin/sh
          # to sync table A to BBB database from AAA database
          sqlplus user/pwd@BBB <<EOF #這里是BBB上的數(shù)據(jù)庫(kù)和密碼還有實(shí)例名,請(qǐng)按照實(shí)際情況修改
          truncate table A;
          insert into A
          select * from b_schema.A@AAA_LINK; #這里是指向要同步的來(lái)源表,表名必須是<表所有者>.<表名>@<dblink name>
          commit;

          這些輸進(jìn)去為什么總是出錯(cuò)  回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步[未登錄](méi) 2014-03-14 11:56 | aa
          服了,說(shuō)別人不好的人,先拿出自己已本事看看啊。  回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步 2014-06-18 11:36 | guodefu909
          這個(gè)是屬于全量更新,只適用于一次更新或記錄數(shù)少的情況。大表更新還是需要用增量更新  回復(fù)  更多評(píng)論
            
          # re: 利用DB Link兩步搞定Oracle兩個(gè)數(shù)據(jù)庫(kù)間的表同步 2014-06-18 11:37 | guodefu909
          準(zhǔn)確的說(shuō)不能叫表同步,只能叫表復(fù)制  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 达孜县| 云林县| 磐安县| 襄城县| 淳安县| 布拖县| 涪陵区| 庆阳市| 得荣县| 沙洋县| 鸡东县| 新宾| 特克斯县| 健康| 兴业县| 北票市| 黎平县| 广宁县| 道真| 绩溪县| 彩票| 瑞金市| 准格尔旗| 壤塘县| 榕江县| 饶阳县| 清远市| 红原县| 永昌县| 深泽县| 甘南县| 宜城市| 平乐县| 凤山市| 黎平县| 自治县| 茶陵县| 宝清县| 南开区| 张北县| 富平县|