專利名稱:數(shù)據(jù)處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于數(shù)據(jù)處理的方法和裝置。本發(fā)明尤其涉及,但不僅僅涉及,用于數(shù)據(jù)庫復(fù)制的方法和裝置。
背景技術(shù):
在許多數(shù)據(jù)處理應(yīng)用中,從源系統(tǒng)發(fā)送的數(shù)據(jù)碎片必須處理成在目標(biāo)系統(tǒng)上所需要的數(shù)據(jù)格式。
在許多情況下,需要從源系統(tǒng)上的數(shù)據(jù)庫復(fù)制數(shù)據(jù)庫到目標(biāo)計(jì)算機(jī)系統(tǒng)上。該過程可以包括從源數(shù)據(jù)庫發(fā)送日志項(xiàng),以允許目標(biāo)數(shù)據(jù)庫的更新。數(shù)據(jù)庫可以包括一個(gè)或多個(gè)庫,每個(gè)庫包含一個(gè)或多個(gè)文件,每個(gè)文件具有一個(gè)或多個(gè)項(xiàng)。每個(gè)項(xiàng)有一個(gè)表,該表有一行或多行。一個(gè)日志項(xiàng)可以包括庫的標(biāo)識(shí)符;文件;文件項(xiàng)和文件項(xiàng)的已改變的數(shù)據(jù)行。該日志項(xiàng)可以由目標(biāo)計(jì)算機(jī)系統(tǒng)用來更新它的數(shù)據(jù)庫。
以正確順序更新來自于給定表的數(shù)據(jù)庫輸入項(xiàng),以及以正確順序更新互相關(guān)聯(lián)的項(xiàng)是很重要的。為了保證日志項(xiàng)被正確處理,目標(biāo)計(jì)算機(jī)系統(tǒng)的接收處理過程可以將對(duì)象名稱(庫/文件/項(xiàng))與存儲(chǔ)在目標(biāo)計(jì)算機(jī)系統(tǒng)上的對(duì)象數(shù)據(jù)庫相比較。當(dāng)找到匹配的對(duì)象時(shí),與該對(duì)象相關(guān)聯(lián)的處理信息就可以用來處理該日志項(xiàng)。
傳統(tǒng)的方法是傳遞日志項(xiàng),存儲(chǔ)它們,并使用單個(gè)引擎來復(fù)制數(shù)據(jù)庫。這種方法慢且復(fù)雜。
希望數(shù)據(jù)庫復(fù)制系統(tǒng)滿足以下要求1.保證日志項(xiàng)由數(shù)據(jù)庫項(xiàng)(以最低限度)以及由任意用戶規(guī)定的分組串行化。
2.支持一特別大數(shù)量的數(shù)據(jù)庫應(yīng)用程序,使得可以很容易地管理數(shù)據(jù)庫I/O(輸入/輸出)。
3.處理日志項(xiàng)是以這樣的方式在從日志中獲得的輸入項(xiàng)時(shí)與將輸入項(xiàng)應(yīng)用于復(fù)制數(shù)據(jù)庫時(shí)之間的這段時(shí)間里,最小化系統(tǒng)I/O(例如分頁)的量。
4.功能支持任何一種類型的數(shù)據(jù)包,不僅僅是日志項(xiàng),以允許未來能擴(kuò)展到其它類型的復(fù)制(例如,對(duì)象、流文件等)。
5.系統(tǒng)對(duì)其它組成隱藏了存儲(chǔ)器管理功能的復(fù)雜性。
本發(fā)明的目的是提供信息復(fù)制的方法和裝置,它滿足了這些要求或至少向公眾提供有用的選擇。
發(fā)明揭示按照本發(fā)明的第一個(gè)方面,提供了一種從源系統(tǒng)復(fù)制信息到目標(biāo)系統(tǒng)的方法,它包括以下步驟1)、接收來自于源系統(tǒng)的信息串;以及2)、將信息串分配到串行組進(jìn)行處理,使得在同一串行組中處理相互關(guān)聯(lián)的信息串。
信息串可以是來自源數(shù)據(jù)庫的日志項(xiàng),可以分配到串行組,使得相同類型的日志項(xiàng),或者與其它日志項(xiàng)有關(guān)的日志項(xiàng),在同一串行組中得到處理。
按照本發(fā)明的進(jìn)一步的方面,提供了一種在數(shù)據(jù)傳遞操作中管理存儲(chǔ)器空間的方法,它包括以下步驟1)、定義多個(gè)存儲(chǔ)器空間區(qū)域;2)、將數(shù)據(jù)寫入第一個(gè)存儲(chǔ)器空間區(qū)域;以及3)、當(dāng)沒有數(shù)據(jù)寫入第一個(gè)存儲(chǔ)器空間區(qū)域時(shí),從第一個(gè)存儲(chǔ)器空間區(qū)域讀取數(shù)據(jù)。
該方法使得當(dāng)信息僅僅寫入第一個(gè)存儲(chǔ)空間區(qū)域時(shí),能多次同時(shí)讀取其它數(shù)據(jù)存儲(chǔ)空間區(qū)域中的數(shù)據(jù)。
按照本發(fā)明的進(jìn)一步的方面,提供了一種將數(shù)據(jù)庫從源計(jì)算機(jī)系統(tǒng)復(fù)制到目標(biāo)計(jì)算機(jī)系統(tǒng)的方法,它包括以下步驟1)、接收來自于源計(jì)算機(jī)系統(tǒng)的日志項(xiàng);2)、檢查日志項(xiàng),查看是否在動(dòng)態(tài)索引中有一個(gè)輸入項(xiàng),它給出與一數(shù)據(jù)庫項(xiàng)有關(guān)的處理信息,所述日志項(xiàng)與該數(shù)據(jù)庫有關(guān);以及3)、如果在動(dòng)態(tài)表中存在輸入項(xiàng),則按照相關(guān)的處理信息處理日志項(xiàng);或者
4)、如果在動(dòng)態(tài)索引中沒有輸入項(xiàng),則在分配數(shù)據(jù)庫中尋找數(shù)據(jù)庫項(xiàng)的相關(guān)處理信息,建立輸入項(xiàng)并在動(dòng)態(tài)索引中存儲(chǔ),并且按照處理信息處理日志項(xiàng)。
在動(dòng)態(tài)索引中的輸入項(xiàng)可以提供關(guān)于是否該項(xiàng)需要與其它項(xiàng)一起被處理的信息。一個(gè)日志項(xiàng)可在按照處理信息被處理之前被臨時(shí)存儲(chǔ)起來。
按照本發(fā)明的進(jìn)一步的方面,提供了一種將數(shù)據(jù)庫從源計(jì)算機(jī)系統(tǒng)復(fù)制到目標(biāo)計(jì)算機(jī)系統(tǒng)的方法,它包括以下步驟1)、接收來自于源計(jì)算機(jī)系統(tǒng)的日志項(xiàng);以及2)、分配程序組成來處理日志項(xiàng)和更新目標(biāo)數(shù)據(jù)庫,其中一控制程序?qū)⑷蝿?wù)分配給程序組成,并充分地控制程序組成,使得程序組成不互相干擾。
目標(biāo)計(jì)算機(jī)系統(tǒng)最好是多處理器計(jì)算機(jī)系統(tǒng)。
附圖簡述現(xiàn)在本發(fā)明將用舉例的方式加以描述,參考附圖,其中
圖1示出了源計(jì)算機(jī)系統(tǒng)的示意圖,它將日志項(xiàng)提供給目標(biāo)計(jì)算機(jī)系統(tǒng)。
圖2是功能圖,說明在目標(biāo)計(jì)算機(jī)系統(tǒng)數(shù)據(jù)庫復(fù)制過程中所涉及的幾個(gè)過程。
圖3示出了在目標(biāo)計(jì)算機(jī)系統(tǒng)內(nèi)存儲(chǔ)空間的映像。
圖4示出了將日志項(xiàng)分配給串行組的過程的流程圖。
較佳實(shí)施例的詳細(xì)描述以下描述了數(shù)據(jù)庫復(fù)制的方法,其中,源和目標(biāo)計(jì)算機(jī)系統(tǒng)是在OS/400操作系統(tǒng)下操作的IBM AS/400計(jì)算機(jī)。應(yīng)理解該方法作適當(dāng)?shù)男薷目蛇m用于其它系統(tǒng)。
請(qǐng)看圖1,源系統(tǒng)A包含一個(gè)主數(shù)據(jù)庫1。主數(shù)據(jù)庫1可以包含一個(gè)或多個(gè)的庫。每個(gè)庫可以包括一個(gè)或多個(gè)文件。每個(gè)文件可包含一個(gè)或多個(gè)項(xiàng)。每個(gè)項(xiàng)包含一個(gè)表,該表有一行或多行。一個(gè)唯一的庫/文件/項(xiàng)組合稱為一個(gè)對(duì)象。
當(dāng)主數(shù)據(jù)庫1的任何項(xiàng)的一行被修改時(shí),包含對(duì)象名稱和修改過的行的日志項(xiàng)被發(fā)送到本地日志接收器2。本地日志接收器2經(jīng)過通信鏈路3發(fā)送日志項(xiàng)到目標(biāo)計(jì)算機(jī)系統(tǒng)B的遠(yuǎn)程日志接收器4。數(shù)據(jù)庫復(fù)制過程5接收日志項(xiàng),并修改復(fù)制數(shù)據(jù)庫6的內(nèi)容,以使它與主數(shù)據(jù)庫1保持一致。
現(xiàn)在參考圖2,將描述復(fù)制目標(biāo)計(jì)算機(jī)系統(tǒng)的目標(biāo)數(shù)據(jù)庫6的過程和裝置。為了保證復(fù)制數(shù)據(jù)庫6的正確復(fù)制,數(shù)據(jù)庫項(xiàng)在數(shù)據(jù)庫6復(fù)制庫中更新的順序與它們?cè)谥鲾?shù)據(jù)庫1中修改的順序相同。為此,定義若干串行組8。有相同對(duì)象名稱的日志項(xiàng)被分組到公共串行組,使得它們以正確的順序得到更新。某些數(shù)據(jù)庫項(xiàng)可能與其它數(shù)據(jù)庫項(xiàng)有關(guān)系(聯(lián)合等),所以可被分配到公共串行組,以保證所有的相互關(guān)聯(lián)的項(xiàng)以正確的順序被更新。一個(gè)串行組因此包含若干對(duì)象的日志項(xiàng)。對(duì)這種串行組的使用使得數(shù)據(jù)庫復(fù)制能夠以合適的序列進(jìn)行,并且使有效的并行處理更容易。
接收處理過程7可以將接收到的日志項(xiàng)分配到串行組,將日志項(xiàng)分配到缺省串行組或丟棄該日志項(xiàng)。串行組分配是根據(jù)分配數(shù)據(jù)庫(MXSGMBAS)和臨時(shí)OS/400用戶索引對(duì)象而進(jìn)行的。日志項(xiàng)分配功能是經(jīng)一個(gè)ILE服務(wù)程序來提供的,該程序允許底層實(shí)現(xiàn)得到修改,而不用將重新編譯/連接調(diào)用功能。
分配數(shù)據(jù)庫MXSGMBAS包含所有對(duì)象、它們與其它對(duì)象的關(guān)系(也就是在處理過程中它們需要與其它對(duì)象一起分組)以及它們所需要的處理方式。將日志項(xiàng)分配到串行組8只要將每個(gè)所接收到的日志項(xiàng)的對(duì)象名稱與分配數(shù)據(jù)庫MXSGMBAS相比較,并且根據(jù)相關(guān)的信息將日志項(xiàng)分配到串行組就可以實(shí)現(xiàn)。不過,分配數(shù)據(jù)庫MXSGMBAS包含許多對(duì)象,并且需要相當(dāng)多的處理時(shí)間進(jìn)行數(shù)據(jù)庫定位操作和提取相關(guān)的處理信息。按照本發(fā)明,使用一個(gè)項(xiàng)分配(MBIX)索引臨時(shí)對(duì)象來存儲(chǔ)對(duì)象的處理信息。這是對(duì)象的索引,這些對(duì)象給出了它們相關(guān)的串行組和相關(guān)的處理信息(包括到與它們相關(guān)的控制結(jié)構(gòu)的鏈路)。
現(xiàn)在請(qǐng)看圖2和圖4,將描述串行組分配。當(dāng)在步驟11接收到日志項(xiàng)時(shí),接收處理過程7在步驟12進(jìn)行比較,看該對(duì)象是否存在于MBIX索引中。如果是的話,則操作進(jìn)行到步驟13,返回串行組號(hào)和數(shù)據(jù)庫文件索引(DBFIDX),并且在所分配的串行組內(nèi)繼續(xù)進(jìn)行處理。
如果該對(duì)象名沒有存儲(chǔ)在MBIX索引中,則在步驟14中在MXSGMBAS數(shù)據(jù)庫9中進(jìn)行對(duì)象全稱查找。如果查找成功,則返回串行組,分配數(shù)據(jù)庫文件索引(DBFIDX),它將指向由相關(guān)的串行組保持的動(dòng)態(tài)陣列中所存儲(chǔ)的處理信息,并在步驟15中把一輸入項(xiàng)加到MBIX索引中。每個(gè)數(shù)據(jù)庫文件索引(DBFIDX)僅僅是通過增加一索引來產(chǎn)生的,該索引對(duì)于各串行組來說是唯一的。
如果在步驟14沒有得到匹配,則在步驟16中進(jìn)行類屬名查找。這包括通過“庫/文件/*所有”然后通過“庫/*所有/*所有”來搜索。如果實(shí)現(xiàn)了類屬匹配,則在步驟17中將全稱加到MBIX表中,處理在步驟15和13像前面一樣繼續(xù)進(jìn)行。如果不能得到匹配,則在步驟18中刪除該日志項(xiàng)。
因此,開始時(shí),在MBIX索引10中將不存在輸入項(xiàng)。當(dāng)處理日志項(xiàng)時(shí),串行組和對(duì)象的處理信息將被添加到MBIX索引10中。從MBIX表10比從MXSGMBAS數(shù)據(jù)庫9可快得多地獲得串行組和處理信息。
該方法有以下顯著的性能好處1.串行組不需要搜索項(xiàng)的相關(guān)處理信息。它們僅僅在動(dòng)態(tài)陣列中保持處理信息,并保持?jǐn)?shù)據(jù)庫文件索引作為存取訪問的手段。
2.所有關(guān)于某一特定名稱的操作可涉及串行組和數(shù)據(jù)庫文件索引值,來唯一識(shí)別項(xiàng)(一個(gè)“句柄”)。
現(xiàn)在請(qǐng)看圖3,將描述在目標(biāo)計(jì)算機(jī)系統(tǒng)內(nèi)存儲(chǔ)器管理的方法。存儲(chǔ)對(duì)象空間分成若干存儲(chǔ)單元SU1-SUN。每個(gè)存儲(chǔ)單元有存儲(chǔ)單元字頭20。存儲(chǔ)單元字頭20給出在該存儲(chǔ)單元中有日志項(xiàng)的串行組的數(shù)量。每個(gè)數(shù)據(jù)碎片由存儲(chǔ)輸入項(xiàng)字頭21和存儲(chǔ)輸入項(xiàng)22組成。存儲(chǔ)輸入項(xiàng)在16字節(jié)邊界處與填充塊23對(duì)齊,填充塊23填充了輸入項(xiàng)和16字節(jié)邊界之間的空白。
日志項(xiàng)從接收處理過程7傳送出去,以存儲(chǔ)在存儲(chǔ)對(duì)象空間24中。來自接收處理過程7的日志項(xiàng)存儲(chǔ)在塊22的存儲(chǔ)空間對(duì)象24中。每個(gè)日志項(xiàng)22有相關(guān)的存儲(chǔ)輸入項(xiàng)字頭21(或句柄),它包含關(guān)于在該串行組的存儲(chǔ)單元中下一個(gè)日志項(xiàng)的偏移信息,以及包含與日志項(xiàng)相關(guān)聯(lián)的項(xiàng)的處理信息的有關(guān)數(shù)據(jù)庫文件索引(DBFIDX)。處理信息在動(dòng)態(tài)存儲(chǔ)器中與數(shù)據(jù)庫文件索引一起保存,后者作為存取訪問手段。
在正常操作中,日志項(xiàng)是連續(xù)寫到一個(gè)存儲(chǔ)單元的,直到存儲(chǔ)單元滿了為止,然后日志項(xiàng)寫到下一個(gè)可用的存儲(chǔ)單元。一旦完成寫入存儲(chǔ)單元,日志項(xiàng)可以從已輸入數(shù)據(jù)的存儲(chǔ)單元中讀出。當(dāng)系統(tǒng)資源沒有派其它用場(即無輸入的日志項(xiàng)需要存儲(chǔ))時(shí),就可以從部分存滿的存儲(chǔ)單元讀取。
這種方法意味著在讀和寫期間不需要將存儲(chǔ)器加鎖。在寫處理過程期間,接收處理過程7有專門的通路來寫到存儲(chǔ)單元。在讀操作期間不需要加鎖,因此日志項(xiàng)可以同時(shí)讀到它們相關(guān)的串行組。唯一需要加鎖的是當(dāng)一個(gè)串行組的最后一個(gè)日志項(xiàng)被讀出時(shí)要減少存儲(chǔ)單元字頭20的值。
可用存儲(chǔ)單元隊(duì)列(ASUQ)25控制使用空閑存儲(chǔ)單元的順序。ASUQ 25包括后進(jìn)先出(LIFO)緩存器,它存儲(chǔ)空閑存儲(chǔ)單元的地址。串行組的日志項(xiàng)從一個(gè)存儲(chǔ)單元讀出,直到在存儲(chǔ)單元字頭中出現(xiàn)空值為止。隨著每個(gè)存儲(chǔ)輸入項(xiàng)22被讀出,存儲(chǔ)單元字頭20就遞減。當(dāng)從一個(gè)存儲(chǔ)單元完全讀出所有日志項(xiàng)時(shí),存儲(chǔ)單元字頭20減少到零并且存儲(chǔ)單元號(hào)返回給ASUQ,且當(dāng)新的日志項(xiàng)必須寫到存儲(chǔ)空間時(shí),該號(hào)是重新分配的第一個(gè)存儲(chǔ)單元。這樣,最近使用的存儲(chǔ)單元保持著有效,以將存儲(chǔ)單元的工作組減少到最少數(shù)量。
當(dāng)存儲(chǔ)單元中的所有的日志項(xiàng)已被讀出并且存儲(chǔ)單元被釋放時(shí),可以清除存儲(chǔ)單元的整個(gè)地址范圍,而不需要將數(shù)據(jù)寫入輔助存儲(chǔ)器。
再回到圖2,進(jìn)一步描述處理的方式。控制處理過程19監(jiān)視復(fù)制過程并控制接收處理過程7中和串行組8內(nèi)的處理。這樣一來,可在每個(gè)串行組內(nèi)進(jìn)行處理,不用考慮在其它串行組內(nèi)處理。通過將整個(gè)處理過程由拱形的控制過程19控制,每個(gè)串行組就可獨(dú)立地進(jìn)行它的處理,而不用考慮整個(gè)操作的復(fù)雜性。
當(dāng)每個(gè)串行組按順序接收一個(gè)項(xiàng)的日志項(xiàng)時(shí),該項(xiàng)在復(fù)制數(shù)據(jù)庫6中的更新也是按順序進(jìn)行的。通過在某一特定的串行組中處理相鏈接的項(xiàng),串行組處理是流水線型的。
當(dāng)準(zhǔn)備制作復(fù)制數(shù)據(jù)庫6時(shí),必須去除主數(shù)據(jù)庫部分施加的任務(wù)。首先,控制處理過程19暫停接收處理過程7以及通過串行組8進(jìn)行的處理。然后控制處理過程19識(shí)別所有“開放”的任務(wù)組(如,未收到任務(wù)或重新運(yùn)行日志項(xiàng)的任務(wù)標(biāo)識(shí)符)。這些是以從最近的(即有最近日志項(xiàng)的任務(wù)組)到最早的順序連續(xù)地處理的,如下所述1)接收處理過程7的接收處理過程接收來自于日志接收器26的任務(wù)組的日志項(xiàng);2)把所有的輸入項(xiàng)分配到“缺省”串行組;3)輸入項(xiàng)以通常的方式存儲(chǔ)在存儲(chǔ)單元24中,但以相反順序鏈接(即列表的開頭是存儲(chǔ)單元的最近輸入項(xiàng),然后鏈接往后移直到存儲(chǔ)單元的第一個(gè)輸入項(xiàng));4)如果在任務(wù)組的輸入項(xiàng)完成之前存儲(chǔ)單元就滿了,則該存儲(chǔ)單元被壓入LIFO隊(duì)列TLQ 27(而不是將它釋放到缺省串行組)。然后,分配新的存儲(chǔ)單元(像往常一樣),繼續(xù)存儲(chǔ)輸入項(xiàng);5)當(dāng)任務(wù)組的有效日志項(xiàng)被完全接收并存儲(chǔ)在存儲(chǔ)單元中時(shí),存儲(chǔ)單元以LIFO的順序被分配到缺省串行組。結(jié)果是串行組以相反次序接收日志項(xiàng)(從最近的到最早的);6)缺省串行組以“相反的”輸入項(xiàng)(這些輸入項(xiàng)包括一個(gè)表明它們是相反的輸入項(xiàng)的標(biāo)志符)來處理這些輸入項(xiàng)。結(jié)果是所有的插入被處理成刪除、更新被移動(dòng)到它們前一幅鏡像,刪除被插入等等。只有已經(jīng)被應(yīng)用到數(shù)據(jù)庫(例如在正常處理期間)的日志項(xiàng)才被處理。
7)缺省串行組直到接收到“數(shù)據(jù)任務(wù)組”日志項(xiàng)時(shí)才執(zhí)行關(guān)于“相反”輸入項(xiàng)的任務(wù)。這保證了如果在“清理”時(shí)遇到故障,則數(shù)據(jù)庫處于一已知的狀態(tài)中。這就能夠使“清理”能重新開始。
一旦所有“開放”的任務(wù)組已經(jīng)“去除”,則控制處理過程19暫停其它處理過程,復(fù)制數(shù)據(jù)庫就可作為主數(shù)據(jù)庫來使用。
除非次級(jí)數(shù)據(jù)庫實(shí)際上必須作為主數(shù)據(jù)庫這種情況以外,這種方法可以將部分施加的并不需要系統(tǒng)處理能力的任務(wù)快速地予以“清理”。
本發(fā)明的方法和裝置提供以下優(yōu)點(diǎn)1.存儲(chǔ)單元塊在存儲(chǔ)空間對(duì)象內(nèi)的分配和讀/寫控制避免了加鎖的需要以及讀/寫同時(shí)性的問題;2.串行組的使用使得項(xiàng)可以連續(xù)的方式被更新,并且相互間有關(guān)系的項(xiàng)以正確的時(shí)序被更新。串行組使得一起處理相互間有關(guān)系的項(xiàng)時(shí),日志項(xiàng)的多個(gè)流可以同時(shí)被處理。
3.MBIX索引的使用極大地減少了對(duì)每個(gè)日志項(xiàng)的查找時(shí)間。對(duì)存儲(chǔ)輸入項(xiàng)字頭21(句柄)的使用使得串行組的下一個(gè)日志項(xiàng)可以很快地被定位。
4.使用一個(gè)控制處理過程來監(jiān)視接收處理過程的工作和串行組內(nèi)的處理,使得使得不需要與其它過程交互作用就能啟動(dòng)子過程有效地處理信息。
5.次級(jí)數(shù)據(jù)庫將被作為主數(shù)據(jù)庫的地方,簡單地處理任務(wù)。
在以上的描述中,已引用了具有已知等同物的整數(shù)或組成,則在此包括的此類等同物如個(gè)別提出的一樣。
盡管本發(fā)明是通過舉例的形式,應(yīng)理解只要不偏離本發(fā)明的范圍或精神,可以做改進(jìn)和/或修改。
權(quán)利要求
1.一種從源系統(tǒng)復(fù)制信息到目標(biāo)系統(tǒng)的方法,其特征在于,它包括下列步驟1)接收來自于源系統(tǒng)的信息串;以及2)將信息串分配到串行組進(jìn)行處理,使得在同一串行組中處理相互關(guān)聯(lián)的信息串。
2.如權(quán)利要求1所述的方法,其特征在于,信息串是來自源數(shù)據(jù)庫的日志項(xiàng)。
3.如權(quán)利要求2所述的方法,其特征在于,把信息串分配到串行組,使得相同類型的日志項(xiàng)或者與其它日志項(xiàng)有關(guān)的日志項(xiàng),在同一串行組中得到處理。
4.如權(quán)利要求2或3任一項(xiàng)所述的方法,其特征在于,當(dāng)在處理操作中第一次遇到每個(gè)數(shù)據(jù)庫對(duì)象時(shí),產(chǎn)生一個(gè)臨時(shí)索引對(duì)象,它包含該數(shù)據(jù)庫對(duì)象的串行組和相關(guān)處理信息。
5.如權(quán)利要求4所述的方法,其特征在于,如果一個(gè)臨時(shí)索引對(duì)象已經(jīng)存在,則根據(jù)該臨時(shí)索引對(duì)象數(shù)據(jù)分配數(shù)據(jù)庫對(duì)象的串行組。
6.如權(quán)利要求4所述的方法,其特征在于,如果一個(gè)臨時(shí)索引對(duì)象不存在,則進(jìn)行分配數(shù)據(jù)庫的對(duì)象全稱查詢,從分配數(shù)據(jù)庫中獲得串行組并產(chǎn)生一個(gè)臨時(shí)索引對(duì)象。
7.如上述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,數(shù)據(jù)庫對(duì)象的處理信息是保持在動(dòng)態(tài)存儲(chǔ)器中。
8.一種在數(shù)據(jù)傳遞操作中管理存儲(chǔ)器空間的方法,其特征在于,它包括以下步驟1)定義多個(gè)存儲(chǔ)器空間區(qū)域;2)將數(shù)據(jù)寫入第一個(gè)存儲(chǔ)器空間區(qū)域;以及3)當(dāng)沒有數(shù)據(jù)寫入第一個(gè)存儲(chǔ)器空間區(qū)域時(shí),從第一個(gè)存儲(chǔ)器空間區(qū)域讀取數(shù)據(jù)。
9.如權(quán)利要求8所述的方法,其特征在于,數(shù)據(jù)是數(shù)據(jù)庫日志項(xiàng)。
10.如權(quán)利要求9所述的方法,其特征在于,把日志項(xiàng)連續(xù)地寫到第一個(gè)存儲(chǔ)空間區(qū)域,直到該第一個(gè)存儲(chǔ)空間區(qū)域填充滿為止,然后把數(shù)據(jù)寫到下一個(gè)存儲(chǔ)數(shù)據(jù)空間。
11.如權(quán)利要求9或10任一項(xiàng)所述的方法,其特征在于,每個(gè)日志項(xiàng)有相關(guān)的字頭,該字頭記錄到有相同串行組的下一個(gè)日志項(xiàng)的偏移量。
12.如權(quán)利要求8至11任一項(xiàng)所述的方法,其特征在于,當(dāng)數(shù)據(jù)從第一個(gè)存儲(chǔ)空間讀出時(shí),把數(shù)據(jù)寫到第二個(gè)存儲(chǔ)空間。
13.如權(quán)利要求8至12任一項(xiàng)所述的方法,其特征在于,每個(gè)存儲(chǔ)空間有存儲(chǔ)空間字頭,該字頭記錄在該存儲(chǔ)空間內(nèi)有日志項(xiàng)的串行組的數(shù)量。
14.如權(quán)利要求13所述的方法,其特征在于,從一存儲(chǔ)空間讀出所述數(shù)據(jù)時(shí),存儲(chǔ)空間字頭遞減,且存儲(chǔ)空間可供數(shù)據(jù)寫入。
15.一種將數(shù)據(jù)庫從源計(jì)算機(jī)系統(tǒng)復(fù)制到目標(biāo)計(jì)算機(jī)系統(tǒng)的方法,其特征在于,它包括以下步驟1)接收來自于源計(jì)算機(jī)系統(tǒng)的日志項(xiàng);2)檢查日志項(xiàng),查看是否在動(dòng)態(tài)索引中有一個(gè)輸入項(xiàng),它給出與一數(shù)據(jù)庫項(xiàng)有關(guān)的處理信息,所述日志項(xiàng)與該數(shù)據(jù)庫有關(guān);以及3)如果在動(dòng)態(tài)表中存在輸入項(xiàng),則按照相關(guān)的處理信息處理日志項(xiàng);或者4)如果在動(dòng)態(tài)索引中沒有輸入項(xiàng),則在分配數(shù)據(jù)庫中尋找數(shù)據(jù)庫項(xiàng)的相關(guān)處理信息,建立輸入項(xiàng)并在動(dòng)態(tài)索引中存儲(chǔ),并且按照處理信息處理日志項(xiàng)。
16.如權(quán)利要求15所述的方法,其特征在于動(dòng)態(tài)索引包括關(guān)于一個(gè)數(shù)據(jù)庫項(xiàng)是否需要與一個(gè)或多個(gè)其它數(shù)據(jù)庫項(xiàng)一起處理的信息。
17.如權(quán)利要求15或16任一項(xiàng)所述的方法,其特征在于,日志項(xiàng)在復(fù)制過程進(jìn)行之前被臨時(shí)存儲(chǔ)。
18.如權(quán)利要求15至17任一項(xiàng)所述的方法,其特征在于,使用如權(quán)利要求8至14中任一項(xiàng)的存儲(chǔ)器管理方法。
19.如權(quán)利要求15至18中任一項(xiàng)所述的方法,其特征在于,使用如權(quán)利要求1至7中任一項(xiàng)的復(fù)制方法。
20.一種將數(shù)據(jù)庫從源計(jì)算機(jī)系統(tǒng)復(fù)制到目標(biāo)計(jì)算機(jī)系統(tǒng)的方法,其特征在于,它包括以下步驟1)接收來自于源計(jì)算機(jī)系統(tǒng)的日志項(xiàng);以及2)分配程序組成來處理日志項(xiàng)和更新目標(biāo)數(shù)據(jù)庫,其中一控制程序?qū)⑷蝿?wù)分配給程序組成,并充分地控制程序組成,使得程序組成不互相干擾。
21.如權(quán)利要求20所述的方法,其特征在于,目標(biāo)計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)并行處理。
22.如權(quán)利要求20或21任一項(xiàng)所述的方法,其特征在于,目標(biāo)計(jì)算機(jī)系統(tǒng)是多處理器計(jì)算機(jī)。
23.一種計(jì)算機(jī)系統(tǒng),其特征在于,按照上述權(quán)利要求中的任一項(xiàng)的方法來編制程序來工作。
24.一個(gè)計(jì)算機(jī)程序,其特征在于,適合執(zhí)行如權(quán)利要求1至22中任一項(xiàng)所述的方法。
25.一種計(jì)算機(jī)可讀媒體,其特征在于,包含如權(quán)利要求24所述的計(jì)算機(jī)程序。
26.一個(gè)數(shù)據(jù)庫,其特征在于,它是用如權(quán)利要求1至22中任一項(xiàng)所述的方法復(fù)制的。
全文摘要
本發(fā)明涉及數(shù)據(jù)處理的方法和系統(tǒng),包括把信息串分配到串行組來處理的數(shù)據(jù)復(fù)制的方法。當(dāng)沒有數(shù)據(jù)被寫入時(shí),從存儲(chǔ)空間區(qū)域讀出數(shù)據(jù)的存儲(chǔ)器管理方法。建立動(dòng)態(tài)表,以向數(shù)據(jù)庫項(xiàng)提供處理信息的復(fù)制數(shù)據(jù)庫的方法。程序組成之間不交互作用而把任務(wù)分配到程序組成的復(fù)制數(shù)據(jù)庫的方法。
文檔編號(hào)G06F11/20GK1468404SQ01817070
公開日2004年1月14日 申請(qǐng)日期2001年10月1日 優(yōu)先權(quán)日2000年10月9日
發(fā)明者J·S·塔倍, J S 塔倍 申請(qǐng)人:最佳收益有限公司