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

一種基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法和系統(tǒng)的制作方法

文檔序號(hào):9750917閱讀:929來源:國(guó)知局
一種基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用領(lǐng)域,尤其涉及一種基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法和系統(tǒng)。
【背景技術(shù)】
[0002]在當(dāng)前的數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用環(huán)境中,多個(gè)數(shù)據(jù)庫(kù)并存使用的現(xiàn)象越來越普遍。比如,某企業(yè)的不同部門分別使用異構(gòu)或非異構(gòu)的多個(gè)不同數(shù)據(jù)庫(kù)進(jìn)行信息應(yīng)用等,具體地比如,該企業(yè)的部門A使用EMC公司的GreenPlum數(shù)據(jù)庫(kù),部門B使用甲骨文公司的ORACLE數(shù)據(jù)庫(kù),部門C則使用Teradata數(shù)據(jù)庫(kù)等?;诖?,出于數(shù)據(jù)備份、數(shù)據(jù)同步等方面的考慮,不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)復(fù)制日漸成為人們較為關(guān)心的問題。
[0003]目前,學(xué)術(shù)界和業(yè)界解決不同數(shù)據(jù)庫(kù)間的數(shù)據(jù)復(fù)制問題,采用的較為典型的方法為拷貝法,拷貝法具體是指首先從源數(shù)據(jù)庫(kù)中導(dǎo)出特定格式的目標(biāo)數(shù)據(jù)至本地應(yīng)用服務(wù)器,再將目標(biāo)數(shù)據(jù)從應(yīng)用服務(wù)器導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)中(如果源數(shù)據(jù)庫(kù)、目標(biāo)數(shù)據(jù)庫(kù)異構(gòu),則其間某一環(huán)節(jié)需根據(jù)目標(biāo)數(shù)據(jù)庫(kù)的存儲(chǔ)要求進(jìn)行必要的數(shù)據(jù)轉(zhuǎn)換)。在企業(yè)信息應(yīng)用領(lǐng)域中,不同數(shù)據(jù)庫(kù)之間數(shù)據(jù)復(fù)制的數(shù)據(jù)量往往較大,一次數(shù)據(jù)復(fù)制的數(shù)據(jù)量時(shí)常達(dá)到幾十GB、幾百GB,甚至?xí)_(dá)到TB級(jí)別?;诖耍鲜隹截惙ㄓ捎谛鑼⒋龔?fù)制數(shù)據(jù)在應(yīng)用服務(wù)器上落成本地文件,而極易造成對(duì)應(yīng)用服務(wù)器本地磁盤的巨大占用,因此,當(dāng)大量的復(fù)制任務(wù)需同時(shí)進(jìn)行時(shí),本地磁盤的負(fù)載將是個(gè)瓶頸問題,無法實(shí)現(xiàn)多個(gè)復(fù)制任務(wù)的并發(fā)運(yùn)行。

【發(fā)明內(nèi)容】

[0004]有鑒于此,本發(fā)明的目的在于提供一種基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法和系統(tǒng),旨在解決現(xiàn)有技術(shù)因需將數(shù)據(jù)在應(yīng)用服務(wù)器上落成本地文件,而導(dǎo)致對(duì)應(yīng)用服務(wù)器本地磁盤的占用量較大,進(jìn)而影響應(yīng)用服務(wù)器的并發(fā)運(yùn)行量這一問題。
[0005]為此,本發(fā)明公開如下技術(shù)方案:
[0006]—種基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法,包括:
[0007]從目標(biāo)數(shù)據(jù)中獲取當(dāng)前待處理的第一預(yù)設(shè)大小的目標(biāo)子數(shù)據(jù);其中,所述目標(biāo)數(shù)據(jù)為:由源數(shù)據(jù)庫(kù)基于預(yù)設(shè)篩選條件所提供的待復(fù)制數(shù)據(jù);
[0008]將所述目標(biāo)子數(shù)據(jù)寫入管道;所述管道為預(yù)先在應(yīng)用服務(wù)器內(nèi)存中創(chuàng)建的第二預(yù)設(shè)大小的共享內(nèi)存區(qū)域,所述第二預(yù)設(shè)大小的數(shù)值不小于所述第一預(yù)設(shè)大小的數(shù)值;
[0009]從所述管道中讀取所述目標(biāo)子數(shù)據(jù),并將讀取的所述目標(biāo)子數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫(kù)中;在所述目標(biāo)數(shù)據(jù)未被全部寫入所述目標(biāo)數(shù)據(jù)庫(kù)時(shí),轉(zhuǎn)至執(zhí)行所述步驟:從目標(biāo)數(shù)據(jù)中獲取當(dāng)前待處理的第一預(yù)設(shè)大小的目標(biāo)子數(shù)據(jù)。
[0010]上述方法,優(yōu)選的,當(dāng)所述源數(shù)據(jù)庫(kù)、所述目標(biāo)數(shù)據(jù)庫(kù)非異構(gòu)時(shí),所述目標(biāo)數(shù)據(jù)為:從所述源數(shù)據(jù)庫(kù)中篩選出的符合所述篩選條件的原始數(shù)據(jù)集合;
[0011 ]當(dāng)所述源數(shù)據(jù)庫(kù)、所述目標(biāo)數(shù)據(jù)庫(kù)異構(gòu)時(shí),所述目標(biāo)數(shù)據(jù)為:依據(jù)所述目標(biāo)數(shù)據(jù)庫(kù)的存儲(chǔ)要求,對(duì)所述原始數(shù)據(jù)集合進(jìn)行數(shù)據(jù)轉(zhuǎn)換后所得的數(shù)據(jù)。
[0012]上述方法,優(yōu)選的,所述源數(shù)據(jù)庫(kù)、所述目標(biāo)數(shù)據(jù)庫(kù)為Oracle、Teradata、GreenPlum三種數(shù)據(jù)庫(kù)中的任意一種。
[0013]上述方法,優(yōu)選的,還包括:
[0014]統(tǒng)計(jì)從所述源數(shù)據(jù)庫(kù)中所獲取的數(shù)據(jù)的第一記錄條數(shù),統(tǒng)計(jì)向所述目標(biāo)數(shù)據(jù)庫(kù)所寫入的數(shù)據(jù)的第二記錄條數(shù),并在所述第二記錄條數(shù)與所述第一記錄條數(shù)不相等時(shí)報(bào)錯(cuò)。
[0015]上述方法,優(yōu)選的,通過預(yù)先編寫的數(shù)據(jù)卸載程序向所述管道寫入數(shù)據(jù),通過預(yù)先編寫的數(shù)據(jù)加載程序從所述管道中讀取數(shù)據(jù),并將讀取的數(shù)據(jù)加載至所述目標(biāo)數(shù)據(jù)庫(kù)中,則所述方法還包括:
[0016]在所述數(shù)據(jù)卸載程序或所述數(shù)據(jù)加載程序執(zhí)行失敗時(shí),采用相應(yīng)的響應(yīng)機(jī)制進(jìn)行應(yīng)對(duì)處理。
[0017]上述方法,優(yōu)選的,所述數(shù)據(jù)卸載程序執(zhí)行失敗時(shí)的響應(yīng)機(jī)制包括:
[0018]在所述管道不可寫不可讀時(shí),刪除所述管道;
[0019]在所述管道不可寫可讀時(shí),調(diào)用系統(tǒng)寫命令向所述管道寫入預(yù)設(shè)數(shù)據(jù),并在使用所述數(shù)據(jù)加載程序讀取所述預(yù)設(shè)數(shù)據(jù)后,刪除所述管道。
[0020]上述方法,優(yōu)選的,所述數(shù)據(jù)加載程序執(zhí)行失敗時(shí)的響應(yīng)機(jī)制包括:
[0021 ]在所述管道不可寫不可讀時(shí),刪除所述管道;
[0022]在所述管道可寫不可讀時(shí),調(diào)用系統(tǒng)讀命令讀取所述管道中的數(shù)據(jù),并刪除所述管道。
[0023]—種基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制系統(tǒng),包括:
[0024]獲取模塊,用于從目標(biāo)數(shù)據(jù)中獲取當(dāng)前待處理的第一預(yù)設(shè)大小的目標(biāo)子數(shù)據(jù);其中,所述目標(biāo)數(shù)據(jù)為:由源數(shù)據(jù)庫(kù)基于預(yù)設(shè)篩選條件所提供的待復(fù)制數(shù)據(jù);
[0025]寫數(shù)據(jù)模塊,用于將所述目標(biāo)子數(shù)據(jù)寫入管道;所述管道為預(yù)先在應(yīng)用服務(wù)器內(nèi)存中創(chuàng)建的第二預(yù)設(shè)大小的共享內(nèi)存區(qū)域,所述第二預(yù)設(shè)大小的數(shù)值不小于所述第一預(yù)設(shè)大小的數(shù)值;
[0026]讀數(shù)據(jù)模塊,用于從所述管道中讀取所述目標(biāo)子數(shù)據(jù),并將讀取的所述目標(biāo)子數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫(kù)中;在所述目標(biāo)數(shù)據(jù)未被全部寫入所述目標(biāo)數(shù)據(jù)庫(kù)時(shí),轉(zhuǎn)至執(zhí)行所述步驟:從目標(biāo)數(shù)據(jù)中獲取當(dāng)前待處理的第一預(yù)設(shè)大小的目標(biāo)子數(shù)據(jù)。
[0027]上述系統(tǒng),優(yōu)選的,還包括:
[0028]統(tǒng)計(jì)與報(bào)錯(cuò)模塊,用于統(tǒng)計(jì)從所述源數(shù)據(jù)庫(kù)中所獲取的數(shù)據(jù)的第一記錄條數(shù),統(tǒng)計(jì)向所述目標(biāo)數(shù)據(jù)庫(kù)所寫入的數(shù)據(jù)的第二記錄條數(shù),并在所述第二記錄條數(shù)與所述第一記錄條數(shù)不相等時(shí)報(bào)錯(cuò)。
[0029]上述系統(tǒng),優(yōu)選的,還包括:所述寫數(shù)據(jù)模塊具體通過預(yù)先編寫的數(shù)據(jù)卸載程序向所述管道寫入數(shù)據(jù),所述讀數(shù)據(jù)模塊具體通過預(yù)先編寫的數(shù)據(jù)加載程序從所述管道中讀取數(shù)據(jù),并將讀取的數(shù)據(jù)加載至所述目標(biāo)數(shù)據(jù)庫(kù)中;則所述系統(tǒng)還包括:
[0030]響應(yīng)處理模塊,用于在所述數(shù)據(jù)卸載程序或所述數(shù)據(jù)加載程序執(zhí)行失敗時(shí),采用相應(yīng)的響應(yīng)機(jī)制進(jìn)行應(yīng)對(duì)處理。
[0031]由以上方案可知,本申請(qǐng)公開的基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法和系統(tǒng),預(yù)先在應(yīng)用服務(wù)器內(nèi)存中創(chuàng)建的一預(yù)設(shè)大小的共享內(nèi)存區(qū)域,并將該內(nèi)存區(qū)域作為源數(shù)據(jù)庫(kù)、目標(biāo)數(shù)據(jù)庫(kù)之間實(shí)現(xiàn)數(shù)據(jù)復(fù)制時(shí)用于轉(zhuǎn)移數(shù)據(jù)的管道(或稱為管道文件),在此基礎(chǔ)上,利用所述管道,通過數(shù)據(jù)流動(dòng)的方式進(jìn)行源數(shù)據(jù)庫(kù)至目標(biāo)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)轉(zhuǎn)移,進(jìn)而實(shí)現(xiàn)源、目標(biāo)數(shù)據(jù)庫(kù)間的數(shù)據(jù)復(fù)制??梢姡旧暾?qǐng)無需將待復(fù)制數(shù)據(jù)在應(yīng)用服務(wù)器上落成本地文件,實(shí)現(xiàn)了中間數(shù)據(jù)不落地,解決了應(yīng)用服務(wù)器的磁盤負(fù)載過大的問題。且由于本申請(qǐng)使用幾乎不占用空間的管道文件,并通過數(shù)據(jù)流動(dòng)的方式來轉(zhuǎn)移需進(jìn)行復(fù)制的數(shù)據(jù),從而可實(shí)現(xiàn)高并發(fā)大批量的數(shù)據(jù)復(fù)制。
【附圖說明】
[0032]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0033]圖1是本發(fā)明實(shí)施例一提供的基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法流程圖;
[0034]圖2是本發(fā)明實(shí)施例二提供的基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法流程圖;
[0035]圖3是本發(fā)明實(shí)施例三提供的基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法流程圖;
[0036]圖4-圖6是本發(fā)明實(shí)施例四提供的基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0037]為了引用和清楚起見,下文中使用的技術(shù)名詞、簡(jiǎn)寫或縮寫總結(jié)解釋如下:
[0038]管道:在Linux中,管道是一種使用非常頻繁的通信機(jī)制,從本質(zhì)上說,管道也是一種文件,因此又可稱之為管道文件,但管道文件與一般的文件有所不同,其可以克服使用文件進(jìn)行通信的時(shí)存在的問題,具體表現(xiàn)為限制管道的大小,實(shí)際上管道是一個(gè)固定大小的內(nèi)存緩沖區(qū),在Linux中,該緩沖區(qū)的大小為I頁(yè),S卩4K字節(jié),使得它的大小不像文件那樣不加檢驗(yàn)地增長(zhǎng)。且管道可解決緩沖區(qū)寫滿或?yàn)榭盏膯栴},比如寫管道時(shí)如果緩沖區(qū)寫滿,隨后對(duì)管道的writeO調(diào)用將默認(rèn)地被阻塞,待管道中某些數(shù)據(jù)被讀取騰出空間時(shí),繼續(xù)執(zhí)行writeO調(diào)用寫數(shù)據(jù);另外讀取進(jìn)程也可能工作得比寫進(jìn)程快,當(dāng)所有當(dāng)前進(jìn)程數(shù)據(jù)已被讀取時(shí),管道變空,當(dāng)這種情況發(fā)生時(shí),隨后的read()調(diào)用將默認(rèn)地被阻塞,以等待某些數(shù)據(jù)被寫入,這解決了read()調(diào)用返回文件結(jié)束的問題。其中,從管道中讀數(shù)據(jù)是一次性操作,數(shù)據(jù)一旦被讀取,它就從管道中被拋棄,釋放空間以支持后續(xù)數(shù)據(jù)的寫入。
[0039]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040]實(shí)施例一
[0041]本發(fā)明實(shí)施例一公開一種基于不同數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制方法,參考圖1,所述方法可以包括以下步驟:
[0042]SlOl:從目標(biāo)數(shù)據(jù)中獲取當(dāng)前待處理的第一預(yù)設(shè)大小的目標(biāo)子數(shù)據(jù);其中,所述目標(biāo)數(shù)據(jù)為:由源數(shù)據(jù)庫(kù)基
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
蚌埠市| 彰化县| 阿拉尔市| 萨迦县| 潞城市| 房产| 聂荣县| 绍兴县| 阳朔县| 恭城| 平泉县| 乳山市| 昌邑市| 嘉定区| 江西省| 嘉鱼县| 平顶山市| 定远县| 淮北市| 遵义县| 佛山市| 本溪| 崇义县| 巫山县| 古田县| 阿巴嘎旗| 长葛市| 隆安县| 广汉市| 肥城市| 金平| 微山县| 麦盖提县| 荣成市| 黄平县| 乐清市| 连平县| 天等县| 扶沟县| 海晏县| 承德县|