專利名稱::帶有自適應(yīng)克隆的經(jīng)聚類的數(shù)據(jù)庫系統(tǒng)中的邏輯復(fù)制的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)庫系統(tǒng)中的邏輯復(fù)制,尤其涉及帶有自適應(yīng)克隆的經(jīng)聚類的數(shù)據(jù)庫系統(tǒng)中的邏輯復(fù)制。
背景技術(shù):
:為了使得數(shù)據(jù)庫管理系統(tǒng)更具縮放性,可以按照將多個服務(wù)器進程一起用作單個邏輯系統(tǒng)的方式來將多個服務(wù)器進程聚類。數(shù)據(jù)庫可被主存在多個節(jié)點(服務(wù)器)上,其中的每一個主存數(shù)據(jù)庫的零個或多個段。為了分發(fā)數(shù)據(jù),可以將對象(例如,表或表上的索引)在邏輯上細分成數(shù)據(jù)段。數(shù)據(jù)段的物理表現(xiàn)被稱為克隆。因此,通過將實體(例如,表、索引)分成一個或多個邏輯數(shù)據(jù)段并跨各個節(jié)點分發(fā)與各邏輯段(克隆)相對應(yīng)的數(shù)據(jù)可以實現(xiàn)系統(tǒng)的可縮放性。在這么做的時候,為了使數(shù)據(jù)高度可用且系統(tǒng)作為一個整體更加容錯,可以維護數(shù)據(jù)的多個冗余副本(每一數(shù)據(jù)段的多個克隆)。當節(jié)點出于故障或有意的管理目的而在在線和離線狀態(tài)之間移動時,在克隆離線(不可用)的同時發(fā)生的更新導(dǎo)致這些克隆可能變得陳舊。災(zāi)難恢復(fù)(DR)是企業(yè)級數(shù)據(jù)庫系統(tǒng)的關(guān)鍵要求。促進災(zāi)難恢復(fù)通常涉及在地理上分開的多個位置處維護最新的數(shù)據(jù)庫副本。將分布在多個節(jié)點上的數(shù)據(jù)庫復(fù)制到遠程站點的一種初級方法是關(guān)閉數(shù)據(jù)庫并將與該數(shù)據(jù)庫相關(guān)聯(lián)的數(shù)據(jù)復(fù)制到遠程站點上,從而獲得災(zāi)難恢復(fù)所需的更高效和更有效的技術(shù)。雖然該技術(shù)能夠向遠程站點提供與數(shù)據(jù)庫一致的映像,但它涉及數(shù)據(jù)庫停機時間。取決于數(shù)據(jù)庫的大小,該過程是耗時的、低效的、資源密集的且多數(shù)時候招致數(shù)據(jù)損失。此外,使數(shù)據(jù)庫離線,即使很短的時間段也可能是代價極高的且是有問題的。因此,災(zāi)難恢復(fù)需要更有效和高效的復(fù)制策略。
發(fā)明內(nèi)容下面呈現(xiàn)了簡化的
發(fā)明內(nèi)容,以便提供對此處所描述的一些新穎實施例的基本理解。本
發(fā)明內(nèi)容不是詳盡的概述,并且它不旨在標識關(guān)鍵/重要元素或描繪本發(fā)明的范圍。其唯一的目的是以簡化形式呈現(xiàn)一些概念,作為稍后呈現(xiàn)的更詳細描述的序言。所公開的體系結(jié)構(gòu)提出了用于無共享(SN)的經(jīng)聚類的數(shù)據(jù)庫管理系統(tǒng)中的邏輯事務(wù)性復(fù)制的端到端解決方案,該數(shù)據(jù)庫管理系統(tǒng)使用自適應(yīng)克隆以獲得高可用性。邏輯復(fù)制可以在與兩個不同的數(shù)據(jù)庫管理系統(tǒng)相關(guān)聯(lián)的兩個數(shù)據(jù)庫之間建立。因為在邏輯層,所以復(fù)制是不知道如何將數(shù)據(jù)存儲到源和目標上的。因此,源可以是無共享聚類而目標可以是獨立的(未經(jīng)聚類的)實例。使用全局邏輯時間戳的邏輯復(fù)制可以是基于時間的??寺∈窃诰垲愔芯S護數(shù)據(jù)的冗余副本的過程??寺】梢圆捎弥饕寺∫约耙粋€或多個次要克隆。自適應(yīng)克隆意味著當主要克隆變?yōu)椴豢捎?例如,由于服務(wù)器故障/關(guān)閉)時,將最新的次要克隆切換成在線來變?yōu)橹饕寺 R驗樵撉袚Q通常是非??焖俚牟僮?,所以不會損害數(shù)據(jù)的可用性。另外,可以拆分和/或合并克隆來動態(tài)地對系統(tǒng)進行負載平衡。用于刷新陳舊克隆的所公開的體系結(jié)構(gòu)不保留用戶事務(wù)邊界,這是一種比保留邊界的情況更復(fù)雜的情況。在該場景中,對于給定的數(shù)據(jù)段,可能沒有一個數(shù)據(jù)段的克隆包含完整的用戶事務(wù)歷史,并因此需要從多個不同的克隆日志中將歷史接合在一起。實現(xiàn)以上動作從而將日志獲取與克隆狀態(tài)轉(zhuǎn)變進行協(xié)調(diào)來確保邏輯復(fù)制的正確性。為了實現(xiàn)上述及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面。這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護的主題的范圍內(nèi)。結(jié)合附圖閱讀下面的詳細描述,其它優(yōu)點和新穎特征將變得顯而易見。圖1示出根據(jù)所公開的體系結(jié)構(gòu)的計算機實現(xiàn)的數(shù)據(jù)庫管理系統(tǒng)。圖2示出數(shù)據(jù)庫管理系統(tǒng)的其他細節(jié)。圖3示出關(guān)于獲取自適應(yīng)克隆中出現(xiàn)的多個日志流的時間和活動表。圖4示出根據(jù)所公開的體系結(jié)構(gòu)的計算機實現(xiàn)的數(shù)據(jù)庫管理方法。圖5示出了圖4的方法的其它方面。圖6示出了圖4的方法的其它方面。圖7示出根據(jù)所公開的體系結(jié)構(gòu)的在帶有自適應(yīng)克隆的無共享聚類中執(zhí)行日志復(fù)制的計算系統(tǒng)的框圖。具體實施例方式所公開的體系結(jié)構(gòu)解決了來自無共享(SN)的經(jīng)聚類的數(shù)據(jù)庫管理系統(tǒng)的邏輯事務(wù)性復(fù)制問題,該數(shù)據(jù)庫管理系統(tǒng)采用自適應(yīng)克隆以獲得高數(shù)據(jù)庫可用性。體系結(jié)構(gòu)目標是提供單個系統(tǒng)映像。SN聚類中的每一節(jié)點(服務(wù)器或磚)自主地操作。即,每一節(jié)點對該節(jié)點上的數(shù)據(jù)具有唯一所有權(quán)。聚類中沒有節(jié)點與另一節(jié)點共享數(shù)據(jù)。在利用聚類中的多個服務(wù)器時,跨多個服務(wù)器拆分數(shù)據(jù)。例如,如果單個服務(wù)器上的數(shù)據(jù)包括用戶、訂單和產(chǎn)品,則SN聚類方法采用三個分開的機器來劃分數(shù)據(jù)——第一節(jié)點主存用戶數(shù)據(jù),第二節(jié)點主存訂單數(shù)據(jù),而第三節(jié)點主存產(chǎn)品數(shù)據(jù)。此外,可以跨聚類節(jié)點水平地劃分數(shù)據(jù)。數(shù)據(jù)庫管理系統(tǒng)可以是包括服務(wù)器或?qū)嵗系木垲愊到y(tǒng)。與必要的聚類基礎(chǔ)結(jié)構(gòu)鏈接在一起的服務(wù)器實例被稱為磚(也是節(jié)點)。因此,聚類是一個或多個磚(也被稱為節(jié)點)的集合。在系統(tǒng)中跨多個磚來分發(fā)數(shù)據(jù)以獲得橫向擴展和性能。將諸如表或索引等的數(shù)據(jù)庫對象分成段。段是邏輯實體。數(shù)據(jù)段的物理表現(xiàn)被稱為克隆。每一數(shù)據(jù)段具有與其相關(guān)聯(lián)的一個或多個克隆——通常一個以上,來提供數(shù)據(jù)的高可用性??寺∈怯米钚聽顟B(tài)維護并由數(shù)據(jù)庫管理系統(tǒng)管理的數(shù)據(jù)的事務(wù)性一致的冗余副本,該數(shù)據(jù)庫管理系統(tǒng)允許更高的可用性級別、動態(tài)負載平衡、容錯以及其他所指定的目的??寺【哂薪巧饕痛我C恳粩?shù)據(jù)段中的一個且僅有一個克隆被指派為主要角色。給定數(shù)據(jù)段的其他冗余克隆被指派為次要角色。當磚變?yōu)殡x線時(例如,由于故障或用戶/管理觸發(fā)的有意關(guān)閉),則物理上主存在該磚上的所有克隆都進入離線狀態(tài)。離線克隆是不可訪問的,并因此,在克隆保持不可訪問的情況下無法傳播更新。遺漏一個或多個更新的克隆變?yōu)殛惻f的。當陳舊克隆物理地位于其上的磚回到在線(重新加入)時,需要將陳舊克隆刷新到最新狀態(tài)。注意,陳舊克隆離線的同時磚可以是在線的從而使得當主存陳舊克隆的磚回到在線時(陳舊克隆再次變?yōu)榭稍L問的)需要將陳舊克隆刷新到最新狀態(tài)。只要至少數(shù)據(jù)段的主要克隆可用,更新便能夠成功地完成。(某些分布式系統(tǒng)要求克隆的選出成員。)將每一段的更新應(yīng)用于主要克隆,然后將其從主要克隆傳播到同一事務(wù)中的相對應(yīng)的次要克隆。主要克隆可以從不處于陳舊狀態(tài)。當磚重新加入時,該磚上的克隆再次變?yōu)榭稍L問的。將陳舊克隆帶回來與主要克隆事務(wù)性一致的過程被稱為克隆刷新??寺∷⑿虏皇峭ㄟ^重放相關(guān)聯(lián)的事務(wù)日志(遺漏的更新)來完成的。相反,系統(tǒng)采用標識陳舊克隆中的不匹配并不按特定次序更新那些記錄且無需保留用戶事務(wù)邊界的技術(shù)。這種算法通常不會遭受具有較長的追趕階段的問題。然而,使用這種克隆刷新方案的系統(tǒng)可能進入這樣一種狀態(tài)對于給定的數(shù)據(jù)段,沒有一個段克隆在相關(guān)聯(lián)的日志中包含完整的用戶事務(wù)歷史。這使得邏輯復(fù)制變?yōu)楦鼜?fù)雜的任務(wù),尤其在不保留事務(wù)邊界的情況下。如此處更詳細地描述的,解決方法是將克隆狀態(tài)轉(zhuǎn)變與日志獲取進行協(xié)調(diào)來確保邏輯復(fù)制的正確性?,F(xiàn)在參考附圖,附圖中通篇使用相似的附圖標記表示相似的元件。在下面的描述中,為了進行說明,闡述了很多具體細節(jié)以便提供對本發(fā)明的全面理解。然而,顯而易見,可以在沒有這些具體細節(jié)的情況下實施各新穎實施例。在其它情況下,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備以便于描述它們。意圖為涵蓋落入所要求保護的主題的精神和范圍內(nèi)的所有修改、等效方案和替換方案。圖1示出根據(jù)所公開的體系結(jié)構(gòu)的計算機實現(xiàn)的數(shù)據(jù)庫管理系統(tǒng)100。系統(tǒng)100包括采用自適應(yīng)克隆來跨聚類節(jié)點存儲數(shù)據(jù)庫的數(shù)據(jù)庫段的無共享聚類102。每一數(shù)據(jù)庫段與跟蹤事務(wù)變更的事務(wù)日志記錄相關(guān)聯(lián)??蓪⑹聞?wù)日志記錄形成事務(wù)日志流。因此,聚類102可以包括出現(xiàn)在聚類節(jié)點上的克隆中的變更的多個日志流104。復(fù)制組件106接收數(shù)據(jù)庫的一組多個事務(wù)日志流108來創(chuàng)建變更的變更歷史。復(fù)制組件106將一組多個日志流合并成單個變更流110,然后在邏輯上將變更作為單個變更流復(fù)制到一個或多個目的地數(shù)據(jù)系統(tǒng)112。復(fù)制組件106在接收不同事務(wù)的多個事務(wù)日志記錄時維護變更的原始數(shù)據(jù)操作次序。復(fù)制組件106遵守多個事務(wù)日志流中所生成的事務(wù)中的事務(wù)日志記錄的原始數(shù)據(jù)變更次序。復(fù)制組件106接收基于聚類中所采用的提交過程的全局邏輯時間戳的多個事務(wù)日志記錄。復(fù)制組件106將變更歷史創(chuàng)建為單個有序變更流,并且該單個有序流是從多個事務(wù)日志流中創(chuàng)建的,其中每一事務(wù)日志流可能是不完整的(缺少所有變更的完整記錄)。圖2示出數(shù)據(jù)庫管理系統(tǒng)的其他細節(jié)。系統(tǒng)200包括節(jié)點202的無共享聚類102,其采用自適應(yīng)克隆來將數(shù)據(jù)段204存儲為節(jié)點202上的克隆O06、208和210)。事務(wù)協(xié)調(diào)組件212協(xié)調(diào)與克隆O06、208和210)的變更相關(guān)聯(lián)的多個事務(wù)日志記錄的分布式事務(wù)處理。跨節(jié)點202中的某些來克隆數(shù)據(jù)段204中的每一個。例如,第一段214與分布在聚類102中的節(jié)點的克隆1相關(guān)聯(lián)。類似地,第二段216與分布在聚類102中的節(jié)點的克隆2相關(guān)聯(lián),并且對于其他段和克隆如圖所示地以此類推。當節(jié)點變?yōu)殡x線時,它可能影響或可能不影響數(shù)據(jù)段的所有克隆或其他數(shù)據(jù)段。復(fù)制組件106從聚類節(jié)點202中將事務(wù)日志記錄獲取為日志流。數(shù)據(jù)虛擬化管理組件218負責克隆狀態(tài)轉(zhuǎn)變、克隆布置、動態(tài)負載平衡等等。事務(wù)協(xié)調(diào)組件212可用作分布式事務(wù)協(xié)調(diào)管理器,該分布式事務(wù)協(xié)調(diào)管理器接收提交請求、從節(jié)點接收事務(wù)次序、并將全局邏輯時間戳廣播給各節(jié)點來提交事務(wù),以及其他功能和操作。全局邏輯時間戳值是單調(diào)遞增的值。來自事務(wù)協(xié)調(diào)管理器的每一提交/退出廣播都會導(dǎo)致全局邏輯時間戳值的增加。各個事務(wù)與提交-全局邏輯時間戳值相關(guān)聯(lián),該提交-全局邏輯時間戳值與其中強化和廣播提交決定的全局邏輯時間戳消息相對應(yīng)。提交-全局邏輯時間戳值表示與事務(wù)提交相關(guān)聯(lián)的邏輯時間。給定用不同的全局邏輯時間戳值來提交的兩個事務(wù),與較低的提交-全局邏輯時間戳值相關(guān)聯(lián)的事務(wù)被認為是較早提交的。全局邏輯時間戳機制因此提供全局時鐘來對聚類中的數(shù)據(jù)修改進行部分地排序。陳舊克隆的刷新(以及克隆狀態(tài)轉(zhuǎn)變)由數(shù)據(jù)虛擬化組件218執(zhí)行,并以到在刷新中的狀態(tài)的轉(zhuǎn)變來開始。將更新傳播到在刷新中的克隆并取決于刷新操作所處的階段來選擇性地應(yīng)用(如果正在進行的刷新活動無論如何都會趕上,則可以跳過/丟棄在刷新中的克隆上的某些更新)。在完成刷新過程時克隆適用于被指定為主要角色。如前所述,主要克隆可以從不處于陳舊狀態(tài)。然而,可以改變主要和次要角色指派。從數(shù)據(jù)段的主要克隆刷新陳舊克隆。如果陳舊程度高于預(yù)定閾值,則可以作出從另一源整體地重構(gòu)克隆而非刷新克隆的決定。具體地,每一記錄具有鍵以及在主要和次要克隆中都出現(xiàn)的系統(tǒng)定義的克隆更新標識符(CUID)列。使用CUID來檢測該記錄是否是最新的。每一個表具有存儲在元數(shù)據(jù)中的CUID“高水印”值。適當?shù)臄?shù)據(jù)操縱語言操作檢測該CUID值,將該值作為運行時常量來對待,并更新具有相關(guān)聯(lián)的值的每一行。更具體地,當克隆變?yōu)殡x線時,將退出訪問該克隆的語言操作。并發(fā)地更新元數(shù)據(jù)中的表的CUID高水印值并在元數(shù)據(jù)中標記不應(yīng)再對該克隆進行更新(處于離線狀態(tài))。開始的任何新的操作將不會更新離線的次要克隆,并將新的CUID值放在操作對主要克隆進行插入或更新的行中。當次要克隆回到在線時,更新元數(shù)據(jù)來指示該克隆現(xiàn)在要由語言來維護。這通過將陳舊克隆的轉(zhuǎn)變過程的開頭標記為在刷新中的狀態(tài)來發(fā)生。已經(jīng)在運行的操作繼續(xù)運行而沒有任何改變,并且不會意識到新的克隆。在獲得表上的模式鎖并保持次要克隆最新(將更新傳播到在刷新中或在線狀態(tài)的次要克隆)的時間點之后開始的所有新的操作拾取新的元數(shù)據(jù)(在查詢啟動時刻而非編譯時刻)。只要沒有重復(fù)的記錄就傳播插入。如果更新/刪除之前的⑶ID列在主要和次要克隆之間成功地進行比較,則只傳播更新和刪除。S卩,如果克隆是最新的,則僅對次要克隆中的行執(zhí)行更新或刪除操作;否則,忽略,并從主要克隆更新/刪除。當所有舊的操作完成之后,元數(shù)據(jù)檢測到不再使用舊的元數(shù)據(jù)版本,刪除元數(shù)據(jù),并發(fā)送該克隆現(xiàn)在正式處于在刷新中的狀態(tài)的通知。此時,刷新算法用讀提交模式在主要克隆和次要克隆之間運行和執(zhí)行外聯(lián)結(jié),尋找可能過時的行的鍵(換言之,鍵不存在于主要和次要克隆中,或者如果鍵存在于兩個克隆中但CUID值不匹配)。將該組鍵插入到臨時表中。因為所有新的操作傳播到了次要,保證外聯(lián)結(jié)找到所有過時的行;然而,操作還可以找到實際上一致的某些行。6接著,用重復(fù)讀取模式運行一系列批處理事務(wù)。操作鎖定主要克隆上的一組鍵,刪除來自次要克隆的所有這些鍵,將來自主要克隆的數(shù)據(jù)行插入到次要克隆中,并提交事務(wù)。當批處理完成時,該組記錄是一致的,并且將因為語言操作不斷地更新記錄而永遠保持一致。該過程繼續(xù),并造成通過表的單個傳遞。在表傳遞完成時,次要克隆是最新的。諸如此處描述的算法試圖避免通常與和回放事務(wù)日志的算法相似的方案相關(guān)聯(lián)的較長的追趕(克隆的刷新)。然而,刷新克隆所涉及的更新不保留原始的用戶事務(wù)邊界。因此,經(jīng)過時間的推移,可能存在其中沒有一個克隆在相關(guān)聯(lián)的日志中完全具有完整的用戶事務(wù)歷史的數(shù)據(jù)段。一種解決方法是將日志獲取與克隆狀態(tài)轉(zhuǎn)變進行協(xié)調(diào)。以下描述是SN聚類數(shù)據(jù)庫中的分布式事務(wù)的生存周期的一般概述。用戶啟動分布式事務(wù)。其上啟動事務(wù)的磚被指定為事務(wù)的根磚。用戶隨后在該事務(wù)之下發(fā)出查詢。查詢的一部分需要在其他磚上運行。當查詢將部分發(fā)送給其他磚時,還發(fā)送事務(wù)信息。在涉及該事務(wù)的新的磚中建立獨立的事務(wù)分支。在完成查詢之后,事務(wù)分支停留該在磚中直到事務(wù)被提交或回退。在使用當前請求的事務(wù)的遠程磚完成之后,將事務(wù)的活動的概述發(fā)送回根事務(wù)分支。根分支跟蹤參與該事務(wù)的所有磚以及在每一磚中寫入最后一個事務(wù)日志記錄的時間。用戶通過根分支請求提交事務(wù)。因為根分支跟蹤所有參與的磚以及參與的磚中的每一個中的事務(wù)所執(zhí)行的工作,所以一旦查明日志的相關(guān)部分已經(jīng)被保存在每一參與的磚上,它便可以確定事務(wù)何時準備好了。當事務(wù)準備好了,根分支將提交請求發(fā)送給分布式事務(wù)管理器(協(xié)調(diào)組件212)。每一磚本地地批處理各個事務(wù)提交請求,然后將完整的批處理作為事務(wù)次序發(fā)送給事務(wù)管理器。分布式事務(wù)管理器從所有磚中收集事務(wù)次序并聚集次序。按某一預(yù)定時間間隔,事務(wù)管理器發(fā)出包括在該間隔期間收集到的所有事務(wù)次序的全局邏輯時間戳廣播。每一廣播與單調(diào)遞增的全局邏輯時間戳相關(guān)聯(lián)。只有在根磚接收到這一廣播之后才本地地提交根事務(wù)分支。類似地,當廣播到達事務(wù)的遠程的參與磚時,清除遠程痕跡。直到處理提交之后才釋放事務(wù)分支所持有的鎖,這只在事務(wù)提交被包括在廣播中之后發(fā)生。這確保了(對相同的數(shù)據(jù)片段操作)具有數(shù)據(jù)沖突的兩個事務(wù)被串聯(lián)并且無法用同一全局時間戳來提交。可以將基于時間的方案用于分布式事務(wù)的協(xié)調(diào)和提交。每一磚本地地批處理各個事務(wù)提交請求,并將完整的批處理作為事務(wù)次序發(fā)送給事務(wù)管理器。分布式事務(wù)協(xié)調(diào)組件212從所有的磚收集一段時間內(nèi)的事務(wù)次序,然后聚集次序。在該時間段的末尾,(在持久保留了決定之后)協(xié)調(diào)組件212將該組事務(wù)的這些提交/退出決定廣播到聚類中的所有磚。為了向該組指派唯一的時間戳,全局邏輯時間戳與該組事務(wù)相關(guān)聯(lián)。全局邏輯時間戳可以是單調(diào)遞增的數(shù)。每一提交/退出廣播都會導(dǎo)致全局邏輯時間戳的增加。各個事務(wù)與提交全局邏輯時間戳相關(guān)聯(lián),該全局邏輯時間戳與其中強化并廣播提交決定的組消息相對應(yīng)。提交全局邏輯時間戳表示與事務(wù)提交相關(guān)聯(lián)的邏輯時間。給定用不同的提交全局邏輯時間戳來提交的兩個事務(wù),與較低的提交全局邏輯時間戳相關(guān)聯(lián)的全局邏輯時間戳被認為是較早提交的。全局邏輯時間戳機制因此提供了全局邏輯時間戳來部分地對聚類中的數(shù)據(jù)修改進行排序??缍鄠€日志流維護從屬事務(wù)的日志記錄的復(fù)制次序。維護從多個日志流中對不同事務(wù)的日志記錄的獲取來保持原始的操作次序。利用這一次序來維護數(shù)據(jù)的邏輯一致性(例如,外鍵關(guān)系)??紤]作為運行示例的以下模式CREATETABLEpk_tab(pKeylINTPRIMARYKEY,sKeylINT,--sKey上未經(jīng)聚類的索引valueINT)CREATETABLEfk_tab(pKey2INTPRIMARYKEY,sKey2INTREFERENCESpk_tab1(pKey1))--外鍵其中事務(wù)Tl將行(pl,sl,vl)插入到表pk_tab中,而事務(wù)T2將行(fp2,pi)插入到表fk_tab中,其中pl引用pk_tabl內(nèi)的行。為了使復(fù)制一致,必須將事務(wù)Tl在事務(wù)T2之前應(yīng)用到訂閱者。如果未維護次序,則在將變更應(yīng)用于訂閱者時可能出現(xiàn)外鍵違反。歸因于經(jīng)批處理的提交處理,具有數(shù)據(jù)沖突的事務(wù)用不同的提交廣播來提交。用相關(guān)聯(lián)的提交廣播的次序來復(fù)制事務(wù)確保復(fù)制保留了次序,并因此保留了約束。接著是多個日志流中生成的事務(wù)中的日志記錄的復(fù)制次序。事務(wù)中的日志記錄可以分布在多個日志中。基于日志的復(fù)制從多個日志中提取數(shù)據(jù)變更,并將數(shù)據(jù)變更合并成單個數(shù)據(jù)變更流。在將數(shù)據(jù)變更應(yīng)用于遠程數(shù)據(jù)庫服務(wù)器之后接著是事務(wù)中的原始數(shù)據(jù)變更次序;否則,可能違反數(shù)據(jù)一致性。繼續(xù)以上示例,考慮數(shù)據(jù)庫包括兩個數(shù)據(jù)庫段的情況,其中數(shù)據(jù)庫是一個或多個數(shù)據(jù)庫段的集合。此外,考慮pk_tab位于dbsegmentl中而fk_tab位于dbsegment2中的情況??紤]以下事務(wù)begintranTinsertarow(pi,si,vl)intotablepktabinsertarow(fp2,pi)intotablefktabcommittranTIndbsegmentltransactionlog:begin-tran-Txinsert-row-(pl,si,vl)commit-tran-TxIndbsegment2transactionlog:begin-tran-Txinsert-row-(fp2,pi)commit-tran-Tx雖然可以獨立地獲取這些日志,但按次序應(yīng)用所提取的變更“insertrow(pl,sl,vl)intotablepk_tab”禾口“insertarow(fp2,pl)intotablefk_tab”;否貝lj,將違反fk_tab中的外鍵約束。每一事務(wù)分支具有命令序列標識符的種子。當事務(wù)的根分支開始時,根分支將種子初始化為1。在事務(wù)分支處,在使用種子生成了新的命令序列標識符值之后,遞增種子。當事務(wù)分支將數(shù)據(jù)變更請求發(fā)送給同一事務(wù)的另一分支時,將源事務(wù)分支的當前種子與請求一起發(fā)送。在事務(wù)分支接收到帶有種子x2的請求之后,其新的種子變?yōu)閙ax(xl,x2),其中xl是其當前的種子。當事務(wù)分支發(fā)送響應(yīng)時,也發(fā)送當前的種子。在事務(wù)分支接收到響應(yīng)之后,用與以上相同的方式來改變接收者的種子,即,在事務(wù)分支接收到帶有種子x2的請求之后,其新的種子將變?yōu)閙ax(xl,x2),其中xl是其當前的種子。原理是如果事務(wù)中的兩個變更的相對次序與邏輯一致性有關(guān),則變更命令序列標識符必須是正確的次序;否則,事務(wù)中的兩個數(shù)據(jù)變更可以在不同的數(shù)據(jù)庫段中并行地發(fā)生且命令序列標識符的值是無關(guān)的。命令序列標識符生成不保證對事務(wù)中的所有數(shù)據(jù)變更進行排序;它只保證對應(yīng)于邏輯一致性的部分排序。圖2示出關(guān)于獲取自適應(yīng)克隆中出現(xiàn)的多個日志流的時間和活動表200。如上所述,克隆刷新在使陳舊克隆變?yōu)樽钚聲r不保留更新的完整事務(wù)性歷史。使用與以上相同的模式,考慮與三個獨立故障單元相關(guān)聯(lián)的三個日志流之間的以下場景數(shù)據(jù)段pk_tab具有分別在磚Bl和B2上的克隆pk_tab_cl和pk_tab_c2;磚Bl上的克隆是主要克隆而磚B2上的克隆是次要克隆。Fk_tab是主要克隆,fk_tab_cl在磚B3上。按照相關(guān)聯(lián)的事務(wù)的提交全局邏輯時間戳的次序來執(zhí)行日志獲取和對訂閱者的變更應(yīng)用(復(fù)制)??紤]以下對pk_tab的日志的獲取從磚Bl中獲取從對數(shù)據(jù)段pk_tab的所有變更一直到全局邏輯時間戳N-I的日志,并且在克隆Pk_tab_c2變?yōu)樵诰€之后從磚B2中獲取剩余的變更集。該次序違反了一致性。在(1)磚Bl和全局邏輯時間戳N+1處以及在⑵磚B3和全局邏輯時間戳N+2處的兩個更新是依賴于次序的。雖然,在克隆pk_tab_c2變?yōu)樵诰€之前,克隆刷新過程已經(jīng)應(yīng)用了(1)中的更新;該更新在插入外鍵引用的從屬事務(wù)之后提交的事務(wù)中被標記。如果磚B2的日志在全局邏輯時間戳N和N+6之間獲取,則在將變更應(yīng)用于訂閱者期間,將違反外鍵約束。一般而言,在克隆刷新期間所生成的日志記錄對于獲取是不安全的。相反,只可以獲取生成到在線克隆的日志記錄。為了在日志獲取和應(yīng)用于訂閱者期間考慮確保所有用戶事務(wù)的一致性歷史,克隆刷新和將克隆切換到在線狀態(tài)遵守以下約束如果克隆在全局邏輯時間戳N處變?yōu)樵谒⑿轮械臓顟B(tài)而刷新在全局邏輯時間戳N+x處完成,則只有在日志讀取器已經(jīng)獲取直到并包括全局邏輯時間戳N+x的所有全局邏輯時間戳的日志記錄之后才能使克隆變回在線狀態(tài)??紤]表段具有兩個克隆——一個主要(在線)和其他次要在刷新中的狀態(tài),在克隆在全局邏輯時間戳N+x處完成刷新之后,主存主要克隆的磚變?yōu)殡x線。此時,雖然包含剛完成刷新的克隆的磚準備好將該表段提供給用戶,但是其日志記錄對獲取是不安全的。相反,需要首先恢復(fù)并使離線的磚變?yōu)樵诰€從而使得可以獲取直到全局邏輯時間戳N+x的日志。有了以上約束,保證了只要表段在線,其歷史數(shù)據(jù)變更便可從包含其在線克隆的磚的日志中獲得。換言之,提供了執(zhí)行來自采用自適應(yīng)克隆的無共享聚類的數(shù)據(jù)的復(fù)制的數(shù)據(jù)庫管理系統(tǒng)。聚類跨聚類節(jié)點存儲數(shù)據(jù)庫的數(shù)據(jù)庫段,每一數(shù)據(jù)段具有跟蹤事務(wù)變更的事務(wù)日志記錄,將該事務(wù)日志記錄形成事務(wù)日志流。復(fù)制組件基于全局邏輯時間戳和命令序列標識符從在線克隆接收多個事務(wù)日志流來創(chuàng)建變更的有序變更歷史,將多個日志流合并成單個變更流,并根據(jù)變更歷史將單個變更流中的變更復(fù)制到目的地。復(fù)制組件在獲取多個日志流時維護變更的原始數(shù)據(jù)操作次序,其中的每一個日志流缺少所有變更的完整記錄。復(fù)制組件將日志獲取與無共享聚類的數(shù)據(jù)虛擬化管理組件進行協(xié)調(diào),從而使得直到日志獲取已經(jīng)進展到完成在線刷新時才將離線克隆切換為在線。此處所包括的是一組代表用于執(zhí)行所公開的體系結(jié)構(gòu)的新穎方面的示例性方法的流程圖。盡管出于解釋簡明的目的,此處例如以流圖或流程圖形式示出的一個或多個方法被示出并描述為一系列動作,但是可以理解和明白,各方法不受動作的次序的限制,因為根據(jù)本發(fā)明,某些動作可以按與此處所示并描述的不同的次序和/或與其他動作同時發(fā)生。例如,本領(lǐng)域技術(shù)人員將會明白并理解,方法可被替換地表示為一系列相互關(guān)聯(lián)的狀態(tài)或事件,諸如以狀態(tài)圖的形式。此外,并非在一方法中示出的所有動作都是新穎實現(xiàn)所必需的。圖4示出了根據(jù)所公開的體系結(jié)構(gòu)的計算機實現(xiàn)的數(shù)據(jù)庫管理方法。在400,接收采用自適應(yīng)克隆的無共享聚類中的數(shù)據(jù)克隆的變更日志流。在402,將日志流合并成單個有序變更流。在404,將有序變更復(fù)制到目的地數(shù)據(jù)系統(tǒng)。圖5示出了圖4的方法的其他方面。在500,在合并日志流時維護變更的原始數(shù)據(jù)操作次序。在502,在日志流中維護所生成的事務(wù)中的日志流的原始數(shù)據(jù)變更次序。在10504,將事務(wù)日志記錄的復(fù)制限于在線克隆。在506,根據(jù)全局邏輯時間戳來復(fù)制變更。圖6示出了圖4的方法的其他方面。在600,根據(jù)經(jīng)合并的變更日志歷史來創(chuàng)建有序變更的單個日志流以供復(fù)制。在602,從克隆事務(wù)日志中創(chuàng)建單個日志流,其中的每一克隆事務(wù)日志缺少完整的變更歷史。在604,基于提交全局邏輯時間戳來復(fù)制變更。如在本申請中所使用的,術(shù)語“組件”和“系統(tǒng)”旨在表示計算機相關(guān)的實體,其可以是硬件、硬件和軟件的組合、軟件、或者執(zhí)行中的軟件。例如,組件可以是,但不限于,諸如處理器、芯片存儲器、大容量存儲設(shè)備(例如,光驅(qū)、固態(tài)驅(qū)動器、和/或磁存儲介質(zhì)驅(qū)動器)、以及計算機等有形組件,以及諸如運行在處理器上的進程、對象、可執(zhí)行碼、模塊、執(zhí)行的線程和/或程序等軟件組件。作為說明,運行在服務(wù)器上的應(yīng)用程序和服務(wù)器都可以是組件。一個或多個組件可以駐留在進程和/或執(zhí)行的線程內(nèi),且組件可以位于一臺計算機上和/或分布在兩臺或更多的計算機之間。詞語“示例性”此處可用于表示用作示例、實例或說明。在此被描述為“示例性”的任何方面或設(shè)計并不一定要被解釋為相比其他方面或設(shè)計更優(yōu)選或有利?,F(xiàn)在參考圖7,示出了執(zhí)行根據(jù)所公開的體系結(jié)構(gòu)的在帶有自適應(yīng)克隆的無共享聚類中執(zhí)行日志復(fù)制的計算系統(tǒng)700的框圖。為了提供用于其各方面的附加上下文,圖7及以下討論旨在提供對其中可實現(xiàn)各方面的合適的計算系統(tǒng)700的簡要概括描述。盡管以上描述是在可在一個或多個計算機上運行的計算機可執(zhí)行指令的一般上下文中進行的,但是本領(lǐng)域的技術(shù)人員將認識到,新穎實施例也可結(jié)合其它程序模塊和/或作為硬件和軟件的組合來實現(xiàn)。用于實現(xiàn)各方面的計算系統(tǒng)700包括計算機702,其具有處理單元704、諸如系統(tǒng)存儲器706等的計算機可讀存儲、以及系統(tǒng)總線708。處理單元704可以是各種市場上可買到的處理器中的任一種,包括單處理器、多處理器、單核單元以及多核單元。此外,本領(lǐng)域的技術(shù)人員可以理解,各新穎方法可用其它計算機系統(tǒng)配置來實施,包括小型機、大型計算機、以及個人計算機(例如、臺式、膝上型等)、手持式計算設(shè)備、基于微處理器的或可編程消費電子產(chǎn)品等,其每一個都可在操作上耦合到一個或多個相關(guān)聯(lián)的設(shè)備。系統(tǒng)存儲器706可包括計算機可讀存儲(物理存儲介質(zhì)),如易失性(VOL)存儲器710(例如,隨機存取存儲器(RAM))和非易失性存儲器(NON-VOL)712(如ROM、EPR0M、EEPROM等)。基本輸入/輸出系統(tǒng)¢10可被存儲在非易失性存儲器712中,并且包括諸如在啟動期間便于在計算機702內(nèi)的組件之間傳遞數(shù)據(jù)和信號的基本例程。易失性存儲器710還可包括諸如靜態(tài)RAM等高速RAM來用于高速緩存數(shù)據(jù)。系統(tǒng)總線708提供了用于包括,但不限于系統(tǒng)存儲器706的系統(tǒng)組件對處理單元704的接口。系統(tǒng)總線708可以是若干種總線結(jié)構(gòu)中的任一種,這些總線結(jié)構(gòu)還可使用各類可購買到的總線體系結(jié)構(gòu)中的任一種互連到存儲器總線(帶有或沒有存儲器控制器)以及外圍總線。計算機702還包括用于機器可讀存儲子系統(tǒng)714以及將存儲子系統(tǒng)714接口到系統(tǒng)總線708和其他所需計算機組件的存儲接口716。存儲子系統(tǒng)714(物理存儲介質(zhì))可包括例如硬盤驅(qū)動器(HDD)、磁軟盤驅(qū)動器(FDD)和/或光盤存儲驅(qū)動器(例如,⑶-ROM驅(qū)動器、DVD驅(qū)動器)中的一種或多種。存儲接口716可包括諸如,例如EIDE、ATA、SATA和IEEE1394等接口技術(shù)。一個或多個程序和數(shù)據(jù)可被存儲在存儲器子系統(tǒng)706、機器可讀和可移動存儲器子系統(tǒng)718(例如,閃存驅(qū)動器形狀因子技術(shù))和/或存儲子系統(tǒng)714(例如,光、磁、固態(tài))中,包括操作系統(tǒng)720、一個或多個應(yīng)用程序722、其他程序模塊724以及程序數(shù)據(jù)726?!獋€或多個應(yīng)用程序722、其他程序模塊724以及程序數(shù)據(jù)7可包括例如圖1的系統(tǒng)100的實體和組件、圖2的系統(tǒng)200的實體和組件、圖3的表300中的狀態(tài)和活動、以及圖4-6的流程圖所表示的方法?!愣裕绦蚰K包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、方法、數(shù)據(jù)結(jié)構(gòu)、其他軟件組件等等。操作系統(tǒng)720、應(yīng)用程序722、模塊7M和/或數(shù)據(jù)726的全部或部分也可被高速緩存在諸如易失性存儲器710等存儲器中。應(yīng)該明白,所公開的體系結(jié)構(gòu)可以用各種市場上可購得的操作系統(tǒng)或操作系統(tǒng)的組合(例如,作為虛擬機)來實施。存儲子系統(tǒng)714和存儲器子系統(tǒng)(706和718)用作用于數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機可執(zhí)行指令等的易失性和非易失性存儲的計算機可讀介質(zhì)。這些指令當由計算機或其他機器執(zhí)行時,可使得計算機或其他機器執(zhí)行方法的一個或多個動作。執(zhí)行動作的指令可被存儲在一個介質(zhì)上,或者可跨多個介質(zhì)存儲,使得指令共同出現(xiàn)在一個或多個計算機可讀存儲介質(zhì)上,而不管所有指令是否都在同一介質(zhì)上。計算機可讀介質(zhì)可以是可由計算機702訪問的任何可用介質(zhì),且包括易失性和非易失性、可移動和不可移動的內(nèi)部和/或外部介質(zhì)。對于計算機702,介質(zhì)容納適當?shù)臄?shù)字格式的數(shù)據(jù)的存儲。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可使用其他類型的計算機可讀介質(zhì),如zip驅(qū)動器、磁帶、閃存卡、閃存驅(qū)動器、磁帶盒等來存儲用于執(zhí)行所公開的體系結(jié)構(gòu)的新穎方法的計算機可執(zhí)行指令。用戶可以使用諸如鍵盤和鼠標等外部用戶輸入設(shè)備7來與計算機702、程序和數(shù)據(jù)交互。其他外部用戶輸入設(shè)備7可包括話筒、IR(紅外)遙控器、操縱桿、游戲手柄、照相機識別系統(tǒng)、指示筆、觸摸屏、姿勢系統(tǒng)(例如,眼移動、頭移動等)和/或類似物。在計算機702是例如便攜式計算機的情況下,用戶可以使用諸如觸摸墊、話筒、鍵盤等板載用戶輸入設(shè)備730來與計算機702、程序和數(shù)據(jù)交互。這些和其它輸入設(shè)備通過輸入/輸出(I/O)設(shè)備接口732經(jīng)由系統(tǒng)總線708連接到處理單元704,但也可通過其它接口連接,如并行端口、IEEE1394串行端口、游戲端口、USB端口JR接口等等。I/O設(shè)備接口732還便于使用輸出外圍設(shè)備734,如打印機、音頻設(shè)備、照相機設(shè)備等,如聲卡和/或板載音頻處理能力。一個或多個圖形接口736(通常也稱為圖形處理單元(GPU))提供計算機702和外部顯示器738(例如,LCD、等離子)和/或板載顯示器740(例如,對于便攜式計算機)之間的圖形和視頻信號。圖形接口736也可作為計算機系統(tǒng)板的一部分來制造。計算機702可以使用經(jīng)由有線/無線通信子系統(tǒng)742到一個或多個網(wǎng)絡(luò)和/或其他計算機的邏輯連接在聯(lián)網(wǎng)環(huán)境(例如,基于IP的)中操作。其他計算機可包括工作站、服務(wù)器、路由器、個人計算機、基于微處理器的娛樂設(shè)備、對等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點,并且通常包括以上相對于計算機702描述的許多或所有元件。邏輯連接可包括到局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)熱點等的有線/無線連接。LAN和WAN聯(lián)網(wǎng)環(huán)境常見于辦公室和公司,并且方便了諸如內(nèi)聯(lián)網(wǎng)等企業(yè)范圍計算機網(wǎng)絡(luò),所有這些都可連接到例如因特網(wǎng)等全球通信網(wǎng)絡(luò)。當在聯(lián)網(wǎng)環(huán)境中使用時,計算機702經(jīng)由有線/無線通信子系統(tǒng)742(例如,網(wǎng)絡(luò)接口適配器、板載收發(fā)機子系統(tǒng)等)連接到網(wǎng)絡(luò)來與有線/無線網(wǎng)絡(luò)、有線/無線打印機、有線/無線輸入設(shè)備744等通信。計算機702可包括用于通過網(wǎng)絡(luò)建立通信的調(diào)制解調(diào)器或其他裝置。在聯(lián)網(wǎng)環(huán)境中,相對于計算機702的程序和數(shù)據(jù)可被存儲在遠程存儲器/存儲設(shè)備中,如與分布式系統(tǒng)相關(guān)聯(lián)。應(yīng)該理解,所示網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機之間建立通信鏈路的其他手段。計算機702可用于使用諸如IEEE802.xx標準家族等無線電技術(shù)來與有線/無線設(shè)備或?qū)嶓w通信,例如在操作上安置在與例如打印機、掃描儀、臺式和/或便攜式計算機、個人數(shù)字助理(PDA)、通信衛(wèi)星、任何一件與無線可檢測標簽相關(guān)聯(lián)的設(shè)備或位置(例如,電話亭、報亭、休息室)以及電話的無線通信(例如,IEEE802.11空中調(diào)制技術(shù))中的無線設(shè)備。這至少包括用于熱點的Wi-Fi(即無線保真)、WiMax和藍牙"^無線技術(shù)。由此,通信可以是如對于常規(guī)網(wǎng)絡(luò)那樣的預(yù)定義結(jié)構(gòu),或者僅僅是至少兩個設(shè)備之間的自組織(adhoc)通信。Wi-Fi網(wǎng)絡(luò)使用稱為IEEE802.llx(a、b、g等等)的無線電技術(shù)來提供安全、可靠、快速的無線連接。Wi-Fi網(wǎng)絡(luò)可用于將計算機彼此連接、連接到因特網(wǎng)以及連接到有線網(wǎng)絡(luò)(使用IEEE802.3相關(guān)介質(zhì)和功能)。上面描述的包括所公開的體系結(jié)構(gòu)的各示例。當然,描述每一個可以想到的組件和/或方法的組合是不可能的,但本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該認識到,許多其他組合和排列都是可能的。因此,該新穎體系結(jié)構(gòu)旨在涵蓋所有這些落入所附權(quán)利要求書的精神和范圍內(nèi)的更改、修改和變化。此外,就在說明書或權(quán)利要求書中使用術(shù)語“包括”而言,這一術(shù)語旨在以與術(shù)語“包含”在被用作權(quán)利要求書中的過渡詞時所解釋的相似的方式為包含性的。權(quán)利要求1.一種計算機實現(xiàn)的數(shù)據(jù)庫管理系統(tǒng)(100),具有存儲由處理器執(zhí)行的可執(zhí)行指令的計算機可讀介質(zhì)的,包括無共享聚類(102),所述無共享聚類(10采用自適應(yīng)克隆來跨聚類節(jié)點存儲數(shù)據(jù)庫的數(shù)據(jù)庫段,每一數(shù)據(jù)庫段具有跟蹤事務(wù)變更的事務(wù)日志記錄,將所述事務(wù)日志記錄形成事務(wù)日志流;以及復(fù)制組件(106),所述復(fù)制組件(106)接收數(shù)據(jù)庫的多個事務(wù)日志流來創(chuàng)建變更的變更歷史,所述復(fù)制組件將所述變更作為單個變更流復(fù)制到目的地數(shù)據(jù)系統(tǒng)。2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述復(fù)制組件在接收不同事務(wù)的多個事務(wù)日志記錄時維護所述變更的原始數(shù)據(jù)操作次序。3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述復(fù)制組件遵守所述多個事務(wù)日志流中所生成的事務(wù)中的事務(wù)日志記錄的原始數(shù)據(jù)變更次序。4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述復(fù)制組件基于所述聚類中所采用的提交過程的全局邏輯時間戳接收多個事務(wù)日志記錄。5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述復(fù)制組件將所述變更歷史創(chuàng)建為單個有序變更流,所述單個有序流是從所述多個事務(wù)日志流中創(chuàng)建的,所述多個事務(wù)日志流中的每一個缺少所有變更的完整記錄。6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述復(fù)制組件接收僅從在線克隆中生成的事務(wù)日志記錄。7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述復(fù)制組件將日志流處理與所述無共享聚類的數(shù)據(jù)虛擬化管理組件進行協(xié)調(diào),所述復(fù)制組件從聚類節(jié)點中將所述事務(wù)日志記錄獲取為日志流。8.—種經(jīng)由處理器和存儲器執(zhí)行的計算機實現(xiàn)的數(shù)據(jù)庫管理方法,包括接收在采用自適應(yīng)克隆的無共享聚類中的數(shù)據(jù)克隆的變更日志流G00);將所述日志流合并成有序變更的單個日志流G02);以及將所述有序變更復(fù)制到目的地數(shù)據(jù)系統(tǒng)004)。9.如權(quán)利要求8所述的方法,其特征在于,還包括在合并所述日志流時維護所述變更的原始數(shù)據(jù)操作次序。10.如權(quán)利要求8所述的方法,其特征在于,還包括在所述日志流中維護所生成的事務(wù)中的所述日志流的原始數(shù)據(jù)變更次序。11.如權(quán)利要求8所述的方法,其特征在于,還包括,將事務(wù)日志記錄的復(fù)制限于在線克隆。12.如權(quán)利要求8所述的方法,其特征在于,還包括根據(jù)全局邏輯時間戳來復(fù)制所述變更。13.如權(quán)利要求8所述的方法,其特征在于,還包括根據(jù)經(jīng)合并的變更日志歷史來創(chuàng)建有序變更的單個日志流以供復(fù)制。14.如權(quán)利要求8所述的方法,其特征在于,還包括從克隆事務(wù)日志中創(chuàng)建所述單個日志流,所述克隆事務(wù)日志中的每一個缺少完整的變更歷史。15.如權(quán)利要求8所述的方法,其特征在于,還包括基于提交全局邏輯時間戳來復(fù)制所述變更。全文摘要本發(fā)明描述了帶有自適應(yīng)克隆的經(jīng)聚類的數(shù)據(jù)庫系統(tǒng)中的邏輯復(fù)制,提出了端到端解決方法的體系結(jié)構(gòu),用于來自無共享的經(jīng)聚類的數(shù)據(jù)庫管理系統(tǒng)的邏輯事務(wù)復(fù)制,該數(shù)據(jù)庫管理系統(tǒng)使用自適應(yīng)克隆以獲得高可用性。使用全局邏輯時間戳,這可以是基于時間的。用于刷新陳舊克隆的所公開的體系結(jié)構(gòu)不保留用戶事務(wù)邊界,這是一種比保留邊界的情況更復(fù)雜的情況。在該場景中,對于給定的數(shù)據(jù)段,可能沒有一個數(shù)據(jù)段的克隆包含完整的用戶事務(wù)歷史,并因此需要從多個不同的克隆日志中將歷史接合在一起。實現(xiàn)以上動作使得日志獲取與克隆狀態(tài)轉(zhuǎn)變相協(xié)調(diào)來確保邏輯復(fù)制的正確性。文檔編號G06F17/30GK102214205SQ20111010611公開日2011年10月12日申請日期2011年4月11日優(yōu)先權(quán)日2010年4月12日發(fā)明者M·E·漢本,M·K·斯里尼瓦斯,P·拜恩,Q·郭,R·D·達曼卡,R·王,V·卡瑟瑞,X·江,Y·朱申請人:微軟公司