欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法

文檔序號(hào):6352622閱讀:196來(lái)源:國(guó)知局
專利名稱:實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)同步的方法,尤其是涉及一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù) 庫(kù)數(shù)據(jù)同步的方法。
背景技術(shù)
在企業(yè)級(jí)的網(wǎng)絡(luò)環(huán)境中,異種數(shù)據(jù)庫(kù)同時(shí)并存的現(xiàn)象越來(lái)越普遍地存在,比如,在 市場(chǎng)部門采用微軟的SQL krver數(shù)據(jù)庫(kù),在研發(fā)部門采用國(guó)產(chǎn)神通數(shù)據(jù)庫(kù),而企業(yè)的總服 務(wù)器采用ORACLE數(shù)據(jù)庫(kù),這種異種數(shù)據(jù)庫(kù)同時(shí)使用的情況在許多系統(tǒng)集成的方案與實(shí)施 中屢見不鮮,于是在不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)內(nèi)容的同步變成一個(gè)普遍令人關(guān)心的問(wèn)題。目 前,各大主流數(shù)據(jù)庫(kù)產(chǎn)品都提供了在各自數(shù)據(jù)庫(kù)之間進(jìn)行同步的功能?,F(xiàn)有的同步功能一 般采用發(fā)布/訂閱模型來(lái)實(shí)現(xiàn)。一般說(shuō)來(lái),發(fā)布/訂閱模型包括下列對(duì)象發(fā)布服務(wù)器、分 發(fā)服務(wù)器、訂閱服務(wù)器,體系結(jié)構(gòu)如附圖1所示。發(fā)布服務(wù)器發(fā)布服務(wù)器是提供數(shù)據(jù)以便同步到其它服務(wù)器的服務(wù)器。分發(fā)服務(wù)器分發(fā)服務(wù)器是具體執(zhí)行數(shù)據(jù)分發(fā)任務(wù)的服務(wù)器。訂閱服務(wù)器訂閱服務(wù)器是接收同步數(shù)據(jù)的服務(wù)器。首先,在發(fā)布服務(wù)器進(jìn)行發(fā)布配置,對(duì)同步的內(nèi)容,執(zhí)行同步的周期等進(jìn)行設(shè)置; 訂閱服務(wù)器根據(jù)需要訂閱配置好的發(fā)布;分發(fā)服務(wù)器會(huì)根據(jù)發(fā)布配置執(zhí)行數(shù)據(jù)分發(fā),將數(shù) 據(jù)寫入訂閱服務(wù)器。在這樣的實(shí)現(xiàn)模型下,數(shù)據(jù)被寫入發(fā)布數(shù)據(jù)庫(kù)后,分發(fā)服務(wù)器根據(jù)發(fā)布 配置定期去檢查數(shù)據(jù)變更,然后將這些數(shù)據(jù)變更提取出來(lái)寫入訂閱服務(wù)器。然而,這種同步技術(shù)存在兩個(gè)主要的問(wèn)題1、不能實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)間的數(shù)據(jù)同步發(fā)布服務(wù)器和分發(fā)服務(wù)器的實(shí)現(xiàn)和數(shù)據(jù)庫(kù)服務(wù)器緊密相關(guān)(因?yàn)橐@取數(shù)據(jù)庫(kù) 服務(wù)器上的數(shù)據(jù)更改需要數(shù)據(jù)庫(kù)本身的支持),各數(shù)據(jù)庫(kù)廠商只能開發(fā)出配合自己的數(shù)據(jù) 庫(kù)產(chǎn)品的發(fā)布服務(wù)器和分發(fā)服務(wù)器,目前最多只能做到訂閱數(shù)據(jù)庫(kù)可以是其他數(shù)據(jù)庫(kù),這 主要通過(guò)sql標(biāo)準(zhǔn)來(lái)屏蔽不同數(shù)據(jù)庫(kù)間的差異。2、對(duì)實(shí)時(shí)性的支持還不夠好分發(fā)服務(wù)器按設(shè)定的周期去檢查發(fā)布數(shù)據(jù)庫(kù)的更改,然后再寫入訂閱數(shù)據(jù)庫(kù),這 一般會(huì)有幾秒的延時(shí),實(shí)時(shí)性能不夠好。

發(fā)明內(nèi)容
為了解決上述問(wèn)題,本技術(shù)提供了一種全新的方法,它可以在任意兩個(gè)數(shù)據(jù)庫(kù)之 間實(shí)時(shí)的進(jìn)行數(shù)據(jù)同步。為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用如下的技術(shù)方案一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,其中異種數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B, 數(shù)據(jù)庫(kù)A是用戶應(yīng)用所使用的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)訪問(wèn)接口使用JDBC接口,數(shù)據(jù)庫(kù)B是進(jìn)行數(shù) 據(jù)同步的目的數(shù)據(jù)庫(kù);還包括符合SUN規(guī)范的JDBC驅(qū)動(dòng)AB,所述驅(qū)動(dòng)AB包含A的JDBC驅(qū)動(dòng)包和B的JDBC驅(qū)動(dòng)包;對(duì)驅(qū)動(dòng)AB上的函數(shù)調(diào)用都被原樣傳遞給數(shù)據(jù)庫(kù)A的JDBC驅(qū)動(dòng), 而對(duì)數(shù)據(jù)庫(kù)有更改的函數(shù)調(diào)用,則經(jīng)過(guò)sql語(yǔ)法映射轉(zhuǎn)換后,再傳遞給數(shù)據(jù)庫(kù)B的JDBC驅(qū) 動(dòng),其中數(shù)據(jù)同步的步驟如下步驟1、建立連接,驅(qū)動(dòng)程序AB分別調(diào)用數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng),建立和 數(shù)據(jù)庫(kù)A的連接ConnectionA以及和數(shù)據(jù)庫(kù)B的連接ConnectionB ;步驟2、創(chuàng)建語(yǔ)句,驅(qū)動(dòng)程序AB分別在ConnectionA上建立MatementA和在 ConnectionB 上建立 StatementB ;步驟3、轉(zhuǎn)發(fā)應(yīng)用程序?qū)DBC接口的函數(shù)調(diào)用,而根據(jù)該調(diào)用是否對(duì)數(shù)據(jù)庫(kù)的內(nèi) 容有更改,又分為兩種處理方式,其中對(duì)于對(duì)數(shù)據(jù)庫(kù)的內(nèi)容無(wú)更改的函數(shù)調(diào)用,驅(qū)動(dòng)程序AB只將該類調(diào)用轉(zhuǎn)發(fā)給數(shù)據(jù) 庫(kù)A,當(dāng)取得元數(shù)據(jù)時(shí),取得元數(shù)據(jù)信息的操作不影響同步目的數(shù)據(jù)庫(kù)B的數(shù)據(jù),驅(qū)動(dòng)AB只 是將該操作轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)A的驅(qū)動(dòng)程序,取得數(shù)據(jù)庫(kù)A的返回結(jié)果;對(duì)數(shù)據(jù)庫(kù)的內(nèi)容有更改的函數(shù)調(diào)用,驅(qū)動(dòng)程序AB把該類調(diào)用同時(shí)轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)A 和數(shù)據(jù)庫(kù)B,當(dāng)執(zhí)行更新操作時(shí),其中更新數(shù)據(jù)的操作對(duì)同步目的數(shù)據(jù)庫(kù)B的數(shù)據(jù)有影響, 驅(qū)動(dòng)程序AB會(huì)同時(shí)調(diào)用數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B的驅(qū)動(dòng)程序,同步兩個(gè)數(shù)據(jù)庫(kù)之間的數(shù)據(jù);步驟4、關(guān)閉語(yǔ)句,驅(qū)動(dòng)程序AB同時(shí)關(guān)閉語(yǔ)句MatementA和MatementB ;步驟5、關(guān)閉連接,驅(qū)動(dòng)程序AB同時(shí)關(guān)閉連接ConnectionA和ConnectionB。本技術(shù)利用數(shù)據(jù)庫(kù)訪問(wèn)的標(biāo)準(zhǔn)接口,比如ODBC,JDBC, 0LEDB,或者其他數(shù)據(jù)庫(kù)訪問(wèn) 標(biāo)準(zhǔn)接口(只要數(shù)據(jù)庫(kù)同步雙方都支持即可),對(duì)它們進(jìn)行封裝,所有通過(guò)標(biāo)準(zhǔn)接口進(jìn)行數(shù) 據(jù)庫(kù)訪問(wèn)的應(yīng)用發(fā)給數(shù)據(jù)庫(kù)的更新語(yǔ)句(insert,update,delete)都可以被轉(zhuǎn)發(fā)給另外的 數(shù)據(jù)庫(kù)。使用該方法,通過(guò)數(shù)據(jù)庫(kù)訪問(wèn)標(biāo)準(zhǔn)接口,數(shù)據(jù)庫(kù)產(chǎn)品間的差異被屏蔽了 ;而且,在應(yīng) 用發(fā)送語(yǔ)句給目標(biāo)數(shù)據(jù)庫(kù)的時(shí)候,該語(yǔ)句也同時(shí)發(fā)送給同步數(shù)據(jù)庫(kù),實(shí)時(shí)性非常好。


下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。圖1是現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)體系結(jié)構(gòu)圖;圖2是本發(fā)明實(shí)施例的異構(gòu)數(shù)據(jù)庫(kù)的實(shí)時(shí)同步的原理圖;圖3是本發(fā)明實(shí)施例的異構(gòu)數(shù)據(jù)庫(kù)的同步操作的異步執(zhí)行的原理圖;圖4是本發(fā)明的實(shí)施例的系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施例方式下面,本發(fā)明通過(guò)具體實(shí)施例來(lái)進(jìn)一步說(shuō)明如何來(lái)實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。首先,描述下本發(fā)明實(shí)施例的具體原理。數(shù)據(jù)庫(kù)系統(tǒng)都支持一些標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)訪問(wèn)接口(ODBC,JDBC,OLEDB等),基于異構(gòu) 數(shù)據(jù)庫(kù)的實(shí)時(shí)同步技術(shù)正是利用了這些標(biāo)準(zhǔn)接口,以JDBC接口為例,其基本原理是假設(shè) 有異種數(shù)據(jù)庫(kù)A和B,A為用戶應(yīng)用所使用的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)訪問(wèn)接口使用JDBC,B是進(jìn)行 數(shù)據(jù)同步的目的數(shù)據(jù)庫(kù),則需要開發(fā)符合SUN規(guī)范的JDBC驅(qū)動(dòng)AB,其中包含A的JDBC驅(qū) 動(dòng)包和B的JDBC驅(qū)動(dòng)包;在實(shí)現(xiàn)上,用戶對(duì)AB驅(qū)動(dòng)上的函數(shù)調(diào)用都被原樣傳遞給數(shù)據(jù)庫(kù)A 的JDBC驅(qū)動(dòng),而對(duì)數(shù)據(jù)庫(kù)有更改的函數(shù)調(diào)用,則經(jīng)過(guò)sql語(yǔ)法映射轉(zhuǎn)換后,再傳遞給數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng)?;驹韴D如附圖2所示。如附圖2所示,我們把用戶的JDBC接口調(diào)用按功能劃分為以下兩個(gè)部分,并分別 采取不同的處理策略。1、基本功能調(diào)用和對(duì)數(shù)據(jù)庫(kù)可能有更改的函數(shù)調(diào)用基本功能調(diào)用包括與后臺(tái)數(shù)據(jù)庫(kù)建立連接,創(chuàng)建語(yǔ)句等操作。對(duì)數(shù)據(jù)庫(kù)可能有更 改的函數(shù)調(diào)用包括執(zhí)行查詢,語(yǔ)句上的屬性設(shè)置,結(jié)果集上的更新操作等。由于這些操作對(duì) 數(shù)據(jù)庫(kù)的內(nèi)容可能產(chǎn)生更改,所以為了保證數(shù)據(jù)庫(kù)A和B之間的同步,AB驅(qū)動(dòng)程序必須同 時(shí)調(diào)用數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng)程序,把調(diào)用傳遞給數(shù)據(jù)庫(kù)A和B,完成它們之間的 同步。需要注意的是,因?yàn)閼?yīng)用程序的函數(shù)調(diào)用涉及的相關(guān)SQL語(yǔ)句是針對(duì)數(shù)據(jù)庫(kù)A的, 而數(shù)據(jù)庫(kù)B可能不支持這些SQL語(yǔ)句,因此必須根據(jù)數(shù)據(jù)庫(kù)A和B的SQL特性來(lái)完成必要 的轉(zhuǎn)化工作,比如SQL類型的轉(zhuǎn)化和SQL函數(shù)的映射。2、對(duì)數(shù)據(jù)庫(kù)的內(nèi)容無(wú)更改的函數(shù)調(diào)用主要是一些獲取操作,包括獲取數(shù)據(jù)庫(kù)元數(shù)據(jù),查詢提交方式和獲取類型映射信 息等。由于這些操作不會(huì)對(duì)數(shù)據(jù)庫(kù)的內(nèi)容產(chǎn)生影響,出于性能考慮,AB驅(qū)動(dòng)程序只會(huì)調(diào)用 數(shù)據(jù)庫(kù)A的驅(qū)動(dòng)程序,返回對(duì)數(shù)據(jù)庫(kù)A的調(diào)用結(jié)果。下面我們以一個(gè)常見的JDBC調(diào)用例子來(lái)闡述本發(fā)明實(shí)施例的同步方法的具體流 程。主要功能是用戶通過(guò)JDBC來(lái)更改數(shù)據(jù)庫(kù)中的部分?jǐn)?shù)據(jù)。原來(lái)調(diào)用步驟如下,用戶程序通過(guò)JDBC驅(qū)動(dòng)直接調(diào)用數(shù)據(jù)庫(kù)A :1)建立連接;2)創(chuàng)建語(yǔ)句;3)取得元數(shù)據(jù);4)執(zhí)行更新操作;5)關(guān)閉語(yǔ)句;6)關(guān)閉連接;實(shí)現(xiàn)符合JDBC標(biāo)準(zhǔn)的AB驅(qū)動(dòng)后,用戶程序調(diào)用AB驅(qū)動(dòng)程序,在每個(gè)步驟AB驅(qū)動(dòng) 程序同步工作如下1)建立連接分別調(diào)用數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng),建立和數(shù)據(jù)庫(kù)A的連接CormectionA 以及和數(shù)據(jù)庫(kù)B的連接CormectionB ;2)創(chuàng)建語(yǔ)句同時(shí)在 ConnectionA 上建立 StatementA 禾口在 ConnectionB 上建立 StatementB ;3)取得元數(shù)據(jù)由于取得元數(shù)據(jù)信息的操作不影響同步目的數(shù)據(jù)庫(kù)B的數(shù)據(jù),因此驅(qū)動(dòng)AB只是將 該操作轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)A的驅(qū)動(dòng)程序,取得數(shù)據(jù)庫(kù)A的返回結(jié)果;4)執(zhí)行更新操作更新數(shù)據(jù)的操作對(duì)同步目的數(shù)據(jù)庫(kù)B的數(shù)據(jù)有影響,因此驅(qū)動(dòng)程序AB會(huì)同時(shí)將該 操作轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B,同步它們的數(shù)據(jù)。5)關(guān)閉語(yǔ)句
同時(shí)關(guān)閉語(yǔ)句 StatementA 禾口 StatementB ;6)關(guān)閉連接同時(shí)關(guān)閉連接 ConnectionA 禾口 ConnectionB。上述實(shí)現(xiàn)方法把數(shù)據(jù)庫(kù)同步的任務(wù)從服務(wù)器端轉(zhuǎn)移到了客戶端,通過(guò)在數(shù)據(jù)庫(kù)標(biāo) 準(zhǔn)訪問(wèn)接口層上進(jìn)行函數(shù)分發(fā),實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步。根據(jù)應(yīng)用實(shí)時(shí)性的要求,同步操作還可以 異步執(zhí)行,其原理如下用戶對(duì)AB驅(qū)動(dòng)上的函數(shù)調(diào)用都被原樣傳遞給數(shù)據(jù)庫(kù)A的JDBC驅(qū) 動(dòng),而對(duì)數(shù)據(jù)庫(kù)有更改的函數(shù)調(diào)用,經(jīng)過(guò)類型映射和sql語(yǔ)法映射轉(zhuǎn)換后,轉(zhuǎn)換成對(duì)數(shù)據(jù)庫(kù) B的JDBC驅(qū)動(dòng)的調(diào)用,但并不馬上執(zhí)行這些調(diào)用,而是將他們放入一個(gè)隊(duì)列,由一個(gè)工作線 程根據(jù)用戶配置和服務(wù)器運(yùn)行狀況,在合適的時(shí)候執(zhí)行這些調(diào)用,將數(shù)據(jù)同步到目標(biāo)數(shù)據(jù) 庫(kù)中。這種執(zhí)行策略的好處是用戶應(yīng)用不會(huì)明顯感到數(shù)據(jù)庫(kù)訪問(wèn)變慢,但這是犧牲了一定 的實(shí)時(shí)性來(lái)獲得的。其原理圖如附圖3所示。用同樣的方式,也可以實(shí)現(xiàn)ODBC,OLEDB等標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)訪問(wèn)接口,將用戶對(duì)這些接 口函數(shù)的調(diào)用分發(fā)給A的接口函數(shù)和B的接口函數(shù)。通過(guò)本發(fā)明,可以實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)間的實(shí)時(shí)同步。例如,某單位基于Wfeb的OA (Office Automation,辦公自動(dòng)化)系統(tǒng)現(xiàn)采用國(guó)產(chǎn) 的神通OSCAR數(shù)據(jù)庫(kù)。該單位出于匯總數(shù)據(jù)的需要,每天都要從神通數(shù)據(jù)庫(kù)中采集數(shù)據(jù), 匯成報(bào)表如員工出勤表和員工報(bào)銷表等。而直接從原神通數(shù)據(jù)庫(kù)中采集數(shù)據(jù),會(huì)給現(xiàn)有的 應(yīng)用系統(tǒng)造成一定的壓力,影響系統(tǒng)的性能。同時(shí)由于SQLServer數(shù)據(jù)庫(kù)對(duì)報(bào)表服務(wù)提供 了大量支持,如報(bào)表分析服務(wù)SSAS,在其上開發(fā)報(bào)表會(huì)更加簡(jiǎn)便易行。因此,方案決定定 期的將神通OSCAR數(shù)據(jù)庫(kù)和SQLServer數(shù)據(jù)庫(kù)同步,把新產(chǎn)生的和變更的數(shù)據(jù)實(shí)時(shí)復(fù)制到 SQLServer 數(shù)據(jù)庫(kù)。如附圖4所示,該OA系統(tǒng)使用IIS作為應(yīng)用服務(wù)器,開發(fā)了一系列的asp頁(yè)面和 COM組件部署在IIS服務(wù)器上,使用ADO和ODBC來(lái)訪問(wèn)神通數(shù)據(jù)庫(kù)。在基于驅(qū)動(dòng)程序的異構(gòu)數(shù)據(jù)庫(kù)同步的思路基礎(chǔ)上,開發(fā)了 Oscar-SQI^erver ODBC 驅(qū)動(dòng),實(shí)現(xiàn)了神通數(shù)據(jù)庫(kù)向SQLServer的數(shù)據(jù)實(shí)時(shí)同步。整個(gè)系統(tǒng)結(jié)構(gòu)圖如附圖4所示。通過(guò)本技術(shù)的應(yīng)用,一方面該OA系統(tǒng)成功實(shí)現(xiàn)了異種數(shù)據(jù)庫(kù)間的實(shí)時(shí)同步,另一 方面可以使用同步的目的數(shù)據(jù)庫(kù)運(yùn)行報(bào)表,進(jìn)行測(cè)試、一致性檢查、軟件開發(fā)等,而不會(huì)影 響現(xiàn)有OA系統(tǒng)的使用,從而減少資源沖突,增強(qiáng)了 OA系統(tǒng)的穩(wěn)定性和可擴(kuò)展性。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟 悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但是這些相信的改變和 變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,其中異種數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B,數(shù) 據(jù)庫(kù)A是用戶應(yīng)用所使用的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)訪問(wèn)接口使用JDBC接口,數(shù)據(jù)庫(kù)B是進(jìn)行數(shù)據(jù) 同步的目的數(shù)據(jù)庫(kù);還包括符合SUN規(guī)范的JDBC驅(qū)動(dòng)AB,所述驅(qū)動(dòng)AB包含A的JDBC驅(qū)動(dòng) 包和B的JDBC驅(qū)動(dòng)包;對(duì)驅(qū)動(dòng)AB上的函數(shù)調(diào)用都被原樣傳遞給數(shù)據(jù)庫(kù)A的JDBC驅(qū)動(dòng),而 對(duì)數(shù)據(jù)庫(kù)有更改的函數(shù)調(diào)用,則經(jīng)過(guò)sql語(yǔ)法映射轉(zhuǎn)換后,再傳遞給數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng), 其中數(shù)據(jù)同步的步驟如下步驟1、建立連接,驅(qū)動(dòng)程序AB分別調(diào)用數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng),建立和數(shù)據(jù) 庫(kù)A的連接ConnectionA以及和數(shù)據(jù)庫(kù)B的連接ConnectionB ;步驟2、創(chuàng)建語(yǔ)句,驅(qū)動(dòng)程序AB分別在ConnectionA上建立MatementA和在 ConnectionB 上建立 StatementB ;步驟3、轉(zhuǎn)發(fā)應(yīng)用程序?qū)DBC接口的函數(shù)調(diào)用,而根據(jù)該調(diào)用是否對(duì)數(shù)據(jù)庫(kù)的內(nèi)容有 更改,又分為兩種處理方式,其中對(duì)于對(duì)數(shù)據(jù)庫(kù)的內(nèi)容無(wú)更改的函數(shù)調(diào)用,驅(qū)動(dòng)程序AB只將該類調(diào)用轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)A, 當(dāng)取得元數(shù)據(jù)時(shí),取得元數(shù)據(jù)信息的操作不影響同步目的數(shù)據(jù)庫(kù)B的數(shù)據(jù),驅(qū)動(dòng)AB只是將 該操作轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)A的驅(qū)動(dòng)程序,取得數(shù)據(jù)庫(kù)A的返回結(jié)果;對(duì)數(shù)據(jù)庫(kù)的內(nèi)容有更改的函數(shù)調(diào)用,驅(qū)動(dòng)程序AB把該類調(diào)用同時(shí)轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù)A和數(shù) 據(jù)庫(kù)B,當(dāng)執(zhí)行更新操作時(shí),其中更新數(shù)據(jù)的操作對(duì)同步目的數(shù)據(jù)庫(kù)B的數(shù)據(jù)有影響,驅(qū)動(dòng) 程序AB會(huì)同時(shí)調(diào)用數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B的驅(qū)動(dòng)程序,同步兩個(gè)數(shù)據(jù)庫(kù)之間的數(shù)據(jù); 步驟4、關(guān)閉語(yǔ)句,驅(qū)動(dòng)程序AB同時(shí)關(guān)閉語(yǔ)句MatementA和MatementB ; 步驟5、關(guān)閉連接,驅(qū)動(dòng)程序AB同時(shí)關(guān)閉連接ConnectionA和ConnectionB。
2.如權(quán)利要求1所述的實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,其中所述同步方法還可以異 步操作,其步驟如下步驟A、對(duì)驅(qū)動(dòng)AB上的函數(shù)調(diào)用都被原樣傳遞給數(shù)據(jù)庫(kù)A的JDBC驅(qū)動(dòng); 步驟B、對(duì)數(shù)據(jù)庫(kù)有更改的函數(shù)調(diào)用,經(jīng)過(guò)類型映射和sql語(yǔ)法映射轉(zhuǎn)換后,轉(zhuǎn)換成對(duì) 數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng)的調(diào)用,但并不馬上執(zhí)行這些調(diào)用,而是將他們放入一個(gè)隊(duì)列;步驟C、由一個(gè)工作線程根據(jù)用戶配置和服務(wù)器運(yùn)行狀況,在合適的時(shí)候執(zhí)行上述調(diào) 用,將數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(kù)中。
全文摘要
一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,其中異種數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B,數(shù)據(jù)庫(kù)A是用戶應(yīng)用所使用的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)訪問(wèn)接口使用JDBC接口,數(shù)據(jù)庫(kù)B是進(jìn)行數(shù)據(jù)同步的目的數(shù)據(jù)庫(kù);還包括符合SUN規(guī)范的JDBC驅(qū)動(dòng)AB,所述驅(qū)動(dòng)AB包含A的JDBC驅(qū)動(dòng)包和B的JDBC驅(qū)動(dòng)包;對(duì)驅(qū)動(dòng)AB上的函數(shù)調(diào)用都被原樣傳遞給數(shù)據(jù)庫(kù)A的JDBC驅(qū)動(dòng),而對(duì)數(shù)據(jù)庫(kù)有更改的函數(shù)調(diào)用,則經(jīng)過(guò)sql語(yǔ)法映射轉(zhuǎn)換后,再傳遞給數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng)。
文檔編號(hào)G06F17/30GK102063502SQ20111000138
公開日2011年5月18日 申請(qǐng)日期2011年1月6日 優(yōu)先權(quán)日2011年1月6日
發(fā)明者何清法, 關(guān)剛, 馮柯, 周宇, 孟勃榮, 徐巖, 李陽(yáng), 蔣志勇, 謝衛(wèi)平, 顧云蘇 申請(qǐng)人:天津神舟通用數(shù)據(jù)技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
泸水县| 华坪县| 彰化县| 福泉市| 华阴市| 北海市| 盐亭县| 临朐县| 从江县| 浮山县| 土默特右旗| 渝中区| 尼玛县| 怀集县| 文登市| 安国市| 天等县| 三都| 淳安县| 阿图什市| 淮滨县| 梨树县| 洪湖市| 鄂尔多斯市| 武安市| 北京市| 鹤庆县| 铅山县| 镇赉县| 岐山县| 兴山县| 安宁市| 泰顺县| 子长县| 曲周县| 阿拉善左旗| 白银市| 陇南市| 淮阳县| 永寿县| 阳泉市|