數(shù)據(jù)庫同步有很多方法,這里不討論了,我這里只針對異構(gòu)數(shù)據(jù)庫.那什么是異構(gòu)數(shù)據(jù)庫呢,我們先看下定義(引用)
異構(gòu)數(shù)據(jù)庫系統(tǒng)是相關(guān)的多個數(shù)據(jù)庫系統(tǒng)的集合,可以實現(xiàn)數(shù)據(jù)的共享和透明訪問,每個數(shù)據(jù)庫系統(tǒng)在加入異構(gòu)數(shù)據(jù)庫系統(tǒng)之前本身就已經(jīng)存在,擁有自己的DMBS。異構(gòu)數(shù)據(jù)庫的各個組成部分具有自身的自治性,實現(xiàn)數(shù)據(jù)共享的同時,每個數(shù)據(jù)庫系統(tǒng)仍保有自己的應(yīng)用特性、完整性控制和安全性控制。異構(gòu)數(shù)據(jù)庫系統(tǒng)的異構(gòu)性主要體現(xiàn)在以下幾個方面:
計算機體系結(jié)構(gòu)的異構(gòu)
各個參與的數(shù)據(jù)庫可以分別運行在大型機、小型機、工作站、PC或嵌入式系統(tǒng)中。
基礎(chǔ)操作系統(tǒng)的異構(gòu)
各個數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)操作系統(tǒng)可以是Unix、Windows NT、 Linux等。
DMBS本身的異構(gòu)
可以是同為關(guān)系型數(shù)據(jù)庫系統(tǒng)的Oracle、 SQL Server等,也可以是不同數(shù)據(jù)模型的數(shù)據(jù)庫,如關(guān)系、模式、層次、網(wǎng)絡(luò)、面向?qū)ο螅瘮?shù)型數(shù)據(jù)庫共同組成一個異構(gòu)數(shù)據(jù)庫系統(tǒng)。
在轉(zhuǎn)換的過程中,有時要想實現(xiàn)嚴(yán)格的等價轉(zhuǎn)換是比較困難的。首先要確定兩種模型中所存在的各種語法和語義上的沖突,這些沖突可能包括:
命名沖突:即源模型中的標(biāo)識符可能是目的模型中的保留字,這時就需要重新命名。
格式?jīng)_突:同一種數(shù)據(jù)類型可能有不同的表示方法和語義差異,這時需要定義兩種模型之間的變換函數(shù)。
結(jié)構(gòu)沖突:如果兩種數(shù)據(jù)庫系統(tǒng)之間的數(shù)據(jù)定義模型不同,如分別為關(guān)系模型和層次模型,那么需要重新定義實體屬性和聯(lián)系,以防止屬性或聯(lián)系信息的丟失。
異構(gòu)數(shù)據(jù)庫同步的解決方法主要有以下幾種:
1.建立觸發(fā)器記錄表的變化情況,在源數(shù)據(jù)庫建立增、刪、改觸發(fā)器,然后根據(jù)變化登記表進行處理.優(yōu)點是充分結(jié)合業(yè)務(wù)進行處理,保持?jǐn)?shù)據(jù)的一致性、完整性,實時性較強,對多個數(shù)據(jù)源合并有非常大的優(yōu)勢,我們現(xiàn)在也是采用這種方式來同步的。
2.日志:通過分析源數(shù)據(jù)庫日志,來獲得源數(shù)據(jù)庫中的變化的數(shù)據(jù)。ORCLE 的 異步 CDC (Asynchronized CDC) 就是使用這種方式,但缺點是有一定延時.
3.可以使用中間件(PlusWell Data Replication 軟件)的方式實現(xiàn):http://www.cnblogs.com/seed_lee/archive/2011/02/13/1953068.html
引自: http://hi.baidu.com/fly_ch/blog/item/361dbbc7ba6b18d9d000604a.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

