專利名稱:在故障恢復期間增加數據庫的可用性的制作方法
在故障恢復期間增加數據庫的可用性技術領域
本申請涉及在故障恢復期間增加數據庫的可用性。特別是,在數據分區(qū)的重新配置期間提供對數據分區(qū)的數據的訪問。
背景技術:
計算機已變得高度集成于工作、家庭、移動設備以及許多其他地方中。計算機可快速且有效地處理大量信息。被設計成在計算機系統(tǒng)上運行的軟件應用允許用戶執(zhí)行包括商業(yè)應用、學校作業(yè)、娛樂等等在內的各種各樣的功能。軟件應用通常被設計成執(zhí)行特定任務,諸如用于草擬文檔的文字處理器應用或者用于發(fā)送、接收和組織電子郵件的電子郵件程序。
在許多情況下,軟件應用程序被設計為與其他軟件應用程序或其他計算機系統(tǒng)交互。例如,因特網瀏覽器將用戶請求發(fā)送給web服務器,并且,這些web服務器通過對用戶的請求進行響應來應答。web服務器和其它計算機系統(tǒng)可以被配置為訪問數據存儲以作為對用戶請求的響應的一部分。這些數據存儲可以存儲有大量的信息,并且可包括復制數據以用于附加的冗余性的拷貝。在一些情況下,這些拷貝被分組在一起作為拷貝集或群集。當拷貝集中的一個拷貝變得不可用且隨后恢復在線時,拷貝集必須被更新并重新配置。在這種重新配置期間,拷貝集不可用于對數據讀或寫請求進行響應。發(fā)明內容
在此描述的實施例旨在在數據庫重新配置期間提供數據庫訪問并在數據庫重新配置期間維護復制連接。在一個實施例中,計算機系統(tǒng)建立多個法定數量拷貝集以復制數據分區(qū)的數據。法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務。計算機系統(tǒng)確定數據分區(qū)重新配置已經啟動,并且使用在法定數量拷貝集中的每一個中的至少法定數量個拷貝來在數據分區(qū)的重新配置期間提供對數據分區(qū)的數據的訪問。
在另一個實施例中,計算機系統(tǒng)建立多個法定數量拷貝集以復制數據分區(qū)的數據。法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務。計算機系統(tǒng)確定拷貝的離開已經啟動數據分區(qū)的重新配置。計算機系統(tǒng)防止現(xiàn)有的數據庫復制連接在拷貝離開時就斷開,并且使用數據分區(qū)重新配置期間所維護的法定數量拷貝集中的每一個中的至少法定數量個拷貝來在重新配置期間提供對數據分區(qū)的數據的訪問。
提供本概述以便以簡化形式介紹在以下詳細描述中進一步描述的一些概念。本發(fā)明內容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
另外的特征和優(yōu)點將在以下的描述中闡述,并且部分可從該描述中顯而易見,或者可以從此處的教示實踐中習得。本發(fā)明的各特征和優(yōu)點可以通過在所附的權利要求書中特別指出的手段和組合來實現(xiàn)和獲得。本發(fā)明的特征將從以下描述和所附權利要求書中變得完全顯而易見,或者可通過如下所述對本發(fā)明的實踐而獲知。
為了進一步闡明本發(fā)明的各實施例的以上和其他優(yōu)點和特征,將參考附圖來呈現(xiàn)本發(fā)明的各實施例的更具體的描述??梢岳斫?,這些附圖只描繪本發(fā)明的典型實施例,因此將不被認為是對其范圍的限制。本發(fā)明將通過使用附圖用附加特征和細節(jié)來描述和解釋, 附圖中
圖1示出本發(fā)明的實施例可以在其中操作的計算機體系結構,所述操作包括在數據庫重新配置期間提供數據庫訪問以及在數據庫重新配置期間維護復制連接。
圖2示出用于在數據庫重新配置期間提供數據庫訪問的示例方法的流程圖。
圖3示出用于在數據庫重新配置期間維護復制連接的示例方法的流程圖。
圖4示出重新配置過程的流程圖。
具體實施方式
在此描述的實施例旨在在數據庫重新配置期間提供數據庫訪問并在數據庫重新配置期間維護復制連接。在一個實施例中,計算機系統(tǒng)建立多個法定數量(quorum)拷貝集以復制數據分區(qū)的數據。法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務。計算機系統(tǒng)確定數據分區(qū)重新配置已經開始,并且使用在法定數量拷貝集中的每一個中的至少法定數量個拷貝來在數據分區(qū)的重新配置期間提供對數據分區(qū)的數據的訪問。
在另一個實施例中,計算機系統(tǒng)建立多個法定數量拷貝集以復制數據分區(qū)的數據。法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務。計算機系統(tǒng)確定拷貝的離開已經啟動數據分區(qū)的重新配置。計算機系統(tǒng)防止現(xiàn)有的數據庫復制連接在拷貝離開時就斷開,并且使用法定數量拷貝集中的每一個中的至少法定數量個拷貝來在數據分區(qū)的重新配置期間提供對數據分區(qū)的數據的訪問。
以下討論現(xiàn)涉及可以執(zhí)行的多種方法以及方法動作。應當注意,雖然這些方法動作可能是按一定次序討論的,或者是在流程圖中被描繪為是按照特定順序進行的,然而并非必然需要特定的次序,除非特別聲明,或者是因為一個動作依賴于另一動作在該動作被執(zhí)行之前完成而需要的。
本發(fā)明的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計算機硬件,如以下更詳細討論的。本發(fā)明范圍內的各實施例還包括用于攜帶或存儲計算機可執(zhí)行指令和/或數據結構的物理介質和其他計算機可讀介質。這些計算機可讀介質可以是通用或專用計算機系統(tǒng)能夠訪問的任何可用介質。存儲計算機可執(zhí)行指令的計算機可讀介質是計算機存儲介質。攜帶計算機可執(zhí)行指令的計算機可讀介質是傳輸介質。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種完全不同類型的計算機可讀介質計算機存儲介質和傳輸介質。
計算機存儲介質包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執(zhí)行指令或數據結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的任何其他介質。
“網絡”被定義為允許在計算機系統(tǒng)和/或模塊和/或其他電子設備之間傳輸電子數據的一個或多個數據鏈路。當信息通過網絡或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當地視為傳輸介質。傳輸介質可包括可用于攜帶計算機可執(zhí)行指令或數據結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的網絡和/或數據鏈路。上述的組合也應被包括在計算機可讀介質的范圍內。
此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數據結構形式的程序代碼裝置可從傳輸介質自動傳輸到計算機存儲介質(或反之亦然)。例如,通過網絡或數據鏈路接收到的計算機可執(zhí)行指令或數據結構可被緩存在網絡接口模塊(例如,“mc”) 內的RAM中,然后最終被傳輸到計算機系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機存儲介質。因而,應當理解,計算機存儲介質可被包括在還利用(或甚至主要利用)傳輸介質的計算機系統(tǒng)組件中。
計算機可執(zhí)行指令包括,例如使通用計算機、專用計算機、或專用處理設備執(zhí)行某一功能或某組功能的指令和數據。計算機可執(zhí)行指令可以是例如二進制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現(xiàn)權利要求的示例形式而公開的。
本領域的技術人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網絡計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設備、網絡PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明也可在其中通過網絡鏈接(或者通過硬連線數據鏈路、無線數據鏈路,或者通過硬連線和無線數據鏈路的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務的分布式系統(tǒng)環(huán)境中實施。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設備中。
圖1示出了可在其中采用本發(fā)明的原理的計算機體系結構100。計算機體系結構 100包括數據庫110。數據庫可以是任意類型的數據庫或數據存儲系統(tǒng),并且可以包括在一個或多個計算系統(tǒng)上的存儲設備。例如,數據庫可以位于一個組織或機構本地內,或者可以分布在跨寬廣地理區(qū)域的許多不同的計算機系統(tǒng)上。數據庫110可以包括存儲區(qū)域網絡 (SAN)或其它存儲方案。數據庫是通過因特網可訪問的,并且可被配置為從用戶接收請求。 例如,用戶105可以發(fā)送請求數據庫所提供的數據和/或服務的數據請求。這些請求可以由數據庫作為待決事務115來存儲。
數據庫事務確保了當執(zhí)行用戶請求時沒有數據被丟失。例如,如果用戶正在請求更新他們的銀行數據,則數據庫事務將保證該數據如用戶所請求那樣被更新??梢砸钥截惖男问絹韨浞輸祿斓臄祿?。例如,每個數據存儲分區(qū)可以具有一個或多個數據拷貝。如在圖1中所示,這些拷貝可以是法定數量拷貝(例如126A/U6B)集的一部分。每個法定數量集可以包括多個不同的拷貝。雖然示出法定數量集A和B具有一個主要拷貝集(127A/127B) 和兩個次要拷貝集(U8A1/U8A2/U8B1/U8B2),應該可以理解可以使用不同數目的拷貝。 法定數量集建立模塊125可以基于各種準則建立各種不同數目的法定數量集。在一些情況中,每個數據分區(qū)具有一個法定數量集,并且隨后被分配第二、臨時的法定數量以在重新配置期間使用。
數據庫重新配置可以在當拷貝停工(即由于計算機故障、網絡故障或某個其它問題而停止工作)或恢復(即再次開始工作)時發(fā)生。這樣,例如,如果次要拷貝U8A1將要停工,就將需要重新配置法定數量集126A。類似地,如果次要拷貝U8A1將要在稍后某個時間點上再次恢復,則將需要再次重新配置法定數量集126A??梢允褂弥匦屡渲媚K120 來以這樣的方式來重新配置法定數量拷貝集在進行重新配置的同時向用戶提供數據庫服務。這些和其他概念將在下面參考圖2和3更詳細地解釋。
如上所示,即使在數據庫分區(qū)正在經歷重新配置過程期間,也可以在數據庫分區(qū)上執(zhí)行讀和/或寫操作。在一些實施例中,這可以通過維護多個動態(tài)法定數量集以便允許對分區(qū)的讀/寫訪問同時保持其在重新配置處理期間在事務上一致來實現(xiàn)。在重新配置過程期間可以防止在現(xiàn)有拷貝之問的復制連接的斷開。這可以允許用戶(例如105)在重新配置過程期間執(zhí)行讀/寫操作。可以以如下方式將拷貝加入到各法定數量集中或從法定數量集中移除分區(qū)在重新配置期間并且在存在用戶事務的情況下保持在事務上一致。而且, 可以防止依賴于從數據庫的主要拷貝中進行讀取的操作在數據庫經歷重新配置時被重置。 這樣的操作可以包括為分區(qū)創(chuàng)建新的拷貝,或創(chuàng)建分區(qū)的副本。
在分布式數據存儲系統(tǒng)(例如數據庫110)中,當要改變分區(qū)的配置時,執(zhí)行重新配置過程。重新配置過程涉及改變分區(qū)的活動配置。作為該過程的一部分,維護在該分區(qū)的拷貝之間的通常要被斷開的現(xiàn)有復制連接。因此,用戶能夠在該過程期間在該分區(qū)上執(zhí)行讀/寫操作。
在一些實施例中,可以實現(xiàn)重新配置或最小重新配置的專門情況。最小重新配置可確保用戶可以在重新配置過程的持續(xù)時間期間在分區(qū)上執(zhí)行讀/寫操作。在一些情況中,為了執(zhí)行最小重新配置,要建立寫法定數量拷貝。該寫法定數量可以被定義為(n+l)/2 的上限,其中η是在配置中的拷貝總數。當前的主要拷貝將啟動并運行,并且在最小重新配置之后將還是作為主要拷貝。在建立這些項之后,啟動最小重新配置。
在一些實施例中,最小重新配置在下述方面不同于常規(guī)的重新配置1)維護多個法定數量集,這些法定數量集在重新配置過程期間被動態(tài)更新,幻主要拷貝是多個法定數量集的一部分,3)最初,所有的次要拷貝要么在第一法定數量集中,要么在法定數量之外, 4)在重新配置結束時,所有的次要拷貝要么在第一法定數量集中,要么在法定數量之外,5) 在重新配置過程持續(xù)時間中維護至多兩個法定數量拷貝集,6)在重新配置持續(xù)時間期間, 根據配置成員來修改法定數量集,以及7)要在每個法定數量集上提交用戶事務才能將其認為是已提交的。
由于上述第7條,在重新配置期間的任意點處,在每個法定數量集中要存在可用的寫法定數量拷貝。因此,用戶可以成功地完成在分區(qū)上的寫事務。因為至少寫法定數量個拷貝是可用的,所以讀事務也是可能的(其中,讀法定數量是(η+1)/2的下限,并且寫法定數量是(η+1)/2的上限)。在這個操作期間,如果在前一配置中的可用拷貝的數目下降到其寫法定數量之下,則重新配置代理將檢測到該情況,終止當前的最小重新配置,并將所述重新配置作為常規(guī)的重新配置來重啟。
考慮到以上描述的系統(tǒng)和體系結構,參考圖2和圖3的流程圖將更好地理解根據所公開的主題實現(xiàn)的方法。為了解釋簡明起見,這些方法被示出和描述為一系列框。然而, 應該理解和了解,所要求保護的主題不受框的次序的限制,因為一些框可按不同的次序進行和/或與此處所描繪和描述的其他框同時進行。此外,并非全部所示的框都是實現(xiàn)下面所述的方法所必需的。
圖2示出用于在數據庫重新配置期間提供數據庫訪問的方法200的流程圖。現(xiàn)在將頻繁參照環(huán)境100的組件和數據來描述方法200。
方法200包括建立多個法定數量拷貝集來復制給定數據分區(qū)的數據的動作,其中所述法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務(動作210)。例如,法定數量集建立模塊125將建立法定數量集A和B(126A/U6B)來復制給定數據分區(qū)的數據。法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務115。
在一些情況下,跨最小拷貝集來復制事務(或來自事務的數據)。例如,最小的拷貝集可以包括主要拷貝(例如127A)和至少一個(或至少兩個,等等)次要拷貝(例如 U8A1和128A2)。每個法定數量拷貝集包括至少一個主要拷貝,并且包括任意數目的次要拷貝。在一些情況下,單個主要拷貝可以是多個法定數量拷貝集的成員。這樣,在圖1中, 法定數量集A中的主要拷貝127A可以是法定數量集B中相同的主要拷貝。
在一些實施例中,法定數量拷貝集可以是實例化以應答重新配置期間的請求的臨時法定數量拷貝集。這樣,例如,法定數量集B(1 )可以是臨時法定數量集,該臨時法定數量集被建立以在數據庫正被重新配置時對數據請求(例如106)或其它待決事務進行應答。在一些情況下,在結束重新配置之后移除這樣的臨時法定數量拷貝集。
在重新配置的多個不同的階段,可以提供對給定數據分區(qū)的訪問,如圖4中所示。 在圖4示出的示例中,當次要拷貝C加入現(xiàn)有的法定數量集時啟動最小重新配置。如在410 中所示,次要拷貝C將加入到包括主要拷貝A和次要拷貝B的現(xiàn)有法定數量集AB。如在415 中所示,法定數量集1包括A和B,而法定數量集2包括主要拷貝A。
在階段1 (420),當重新配置開始時,屬于前一配置并且屬于新配置的所有拷貝的法定數量集成員關系,它們的成員關系被改變以便它們既成為法定數量集1又成為法定數量集2的一部分,并且僅屬于新配置的所有的拷貝被加入成為法定數量集2的一部分。這樣,在425,法定數量集1具有拷貝A和B,而法定數量集2具有拷貝A、B和C??梢詥与A段1增額(CatCh-up)430,其中將加入節(jié)點C更新為與次要拷貝B相同。在435中更新法定數量集2,并且如440所示,法定數量集2具有主要拷貝A和次要拷貝B和C,并且具有足夠數目的拷貝和拷貝分布來提交事務。
在階段2(44 期間,不改變法定數量集,如在450中所示。在階段3(45 期間,改變屬于新配置的所有拷貝的法定數量成員關系,以便它們現(xiàn)在是法定數量集1的一部分。 而且,改變不屬于新配置的所有拷貝的法定數量成員關系,以便它們不再是任意法定數量集的一部分(在法定數量之外)。這樣,法定數量集1的新配置具有拷貝A、B和C,而法定數量集2僅具有主要拷貝A,如在460中所示。在階段4(465)期間,發(fā)送提交消息,并且,法定數量集1是在帶有經更新的次要拷貝C的情況下完全可操作的。
返回圖2,方法200包括確定數據分區(qū)重新配置已經啟動的動作(動作220)。例如,重新配置模塊120可以確定已經為法定數量集A(U6A)啟動數據分區(qū)重新配置。可以由法定數量拷貝集的拷貝(例如128A》離開或加入拷貝集來啟動重新配置。在重新配置期間,加入拷貝所加入的法定數量拷貝集被修改為包括該加入的拷貝。類似地,當拷貝離開法定數量集時,重新配置該法定數量集。當拷貝離開法定數量集時,重新配置模塊120可以防止現(xiàn)有的數據庫復制連接由于拷貝的離開而被斷開。這樣,如果次要拷貝U8A2將要離開法定數量集A (126A),則在數據庫和主要拷貝127A和次要拷貝U8A1之間的現(xiàn)有數據庫復制連接將不被斷開。
方法200包括在數據分區(qū)的重新配置期間使用法定數量拷貝集中的每一個中的至少法定數量個拷貝來提供對數據分區(qū)的數據的訪問。例如,數據庫110可以在數據分區(qū)的重新配置期間使用法定數量集A的主要拷貝127A和次要拷貝U8A1提供對給定分區(qū)的數據的訪問。在一些情況中,可由法定數量拷貝集中的大多數拷貝(圖1的法定數量集的三個拷貝中的兩個拷貝)來對數據庫事務進行確認。當法定數量成員在重新配置的不同階段期間被移動到不同的法定數量集時,可以以在事務上一致的方式來維護分區(qū)上的數據。這樣,無論有多少拷貝被改變或如何改變拷貝,都將以在事務上一致的方式來提供對底層數據的訪問。這就確保了在任意事務中沒有數據丟失。而且,可以防止依賴于從數據庫的主要拷貝中進行讀取的操作在重新配置過程期間被重置。
現(xiàn)在轉向圖3,圖3示出用于在數據庫重新配置期間維護復制連接的方法300的流程圖?,F(xiàn)在將頻繁參照環(huán)境100的組件和數據來描述方法300。
方法300包括建立多個法定數量拷貝集來復制給定數據分區(qū)的數據的動作,其中所述法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務(動作310)。例如,法定數量集建立模塊125可建立法定數量集A和B(126A/U6B)來復制給定數據分區(qū)的數據。法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務115。
方法300包括確定拷貝的離開啟動了數據分區(qū)重新配置的動作(動作320)。例如,重新配置模塊120可以確定已經為法定數量集A(U6A)啟動了數據分區(qū)重新配置??梢杂衫绱我截惣尤牖螂x開法定數量集A來啟動重新配置。方法300還包括防止現(xiàn)有的數據庫復制連接在拷貝離開時被斷開的動作(動作330)。
例如,重新配置模塊120可以防止任意現(xiàn)有的到法定數量集A的其它拷貝的數據庫復制連接(例如到主要拷貝127A或次要拷貝U8A1的連接)被斷開或移除。這樣,使得到沒有改變的拷貝的數據庫復制連接保持完好。隨后,保持完好的拷貝在重新配置期間能夠繼續(xù)處理事務。對于移除(即離開法定數量集)的拷貝來說,可以以拷貝的分區(qū)在重新配置期間保持在事務上一致的方式來移除正離開的拷貝。這樣,被處理的任意事務將是一致的,并將提供數據庫用戶所期望的事務性保證。
方法300還包括在數據分區(qū)的重新配置期間使用法定數量拷貝集中的每一個中的至少法定數量個拷貝來提供對數據分區(qū)的數據的訪問(動作340)。例如,法定數量集 A(126A)可以在數據庫的數據分區(qū)重新配置期間提供對該分區(qū)的訪問。法定數量集可以使用主要拷貝127A和次要拷貝(128A1/128A2)中的至少一個來提供這樣的訪問。在一些實施例中,在重新配置期間可以防止各種應用程序被重置。特別地,可以防止依賴于從數據庫的主要拷貝中讀取的應用程序被重置。這樣,至少在一些情況中,在重新配置期間可以防止分區(qū)復制操作被重置。另外地,或替換地,在重新配置期間可以防止新的拷貝創(chuàng)建操作被重置。
這樣,提供了在數據庫重新配置期間提供數據庫訪問的系統(tǒng)、方法和計算機程序產品。在重新配置期間可以以在事務上一致的方式來繼續(xù)處理事務。這樣,提供了在數據庫重新配置期間維護復制連接的系統(tǒng)、方法和計算機程序產品。這樣,沒有作為重新配置一部分來改變的拷貝可以維護它們的復制連接,并且能在重新配置期間繼續(xù)提供數據庫訪問。
本發(fā)明可具體化為其它具體形式而不背離其精神或本質特征。所描述的實施例在所有方面都應被認為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權利要求書而非前述描述指示。落入權利要求書的等效方案的含義和范圍內的所有改變被權利要求書的范圍所涵蓋。
權利要求
1.一種在包括多個計算系統(tǒng)的計算機聯(lián)網環(huán)境中,在包括處理器和存儲器的計算機系統(tǒng)中的用于在數據庫重新配置期間提供數據庫訪問的計算機實現(xiàn)的方法,所述方法包括建立多個法定數量拷貝集(126A/U6B)來復制給定數據分區(qū)的數據的動作,其中所述法定數量拷貝集確保了至少最小數目的拷貝用于在分區(qū)重新配置(120)期間提交待決事務的動作;確定數據分區(qū)的重新配置已經啟動的動作;以及在所述數據分區(qū)的重新配置(120)期間使用所述法定數量拷貝集(U6A)中的每一個中的至少法定數量個拷貝(127A-128A2)來提供對所述數據分區(qū)的數據的訪問的動作。
2.如權利要求1所述的方法,其特征在于,每個拷貝集包括多個次要拷貝。
3.如權利要求2所述的方法,其特征在于,所述多個法定數量拷貝集中的至少一個是被實例化為在重新配置期間對請求進行應答的臨時法定數量拷貝集。
4.如權利要求3所述的方法,其特征在于,在重新配置已經結束之后,移除所述臨時法定數量拷貝集。
5.如權利要求1所述的方法,其特征在于,在重新配置的多個階段期間提供對所述數據庫分區(qū)的訪問。
6.如權利要求1所述的方法,其特征在于,由所述多個法定數量拷貝集中的拷貝離開或加入拷貝集來啟動重新配置。
7.如權利要求6所述的方法,其特征在于,進一步包括防止現(xiàn)有的數據庫復制連接由于拷貝的離開而被斷開。
8.一種用于實現(xiàn)一種方法的計算機程序產品,所述方法用于在數據庫重新配置期間維護復制連接,所述計算機程序產品包括其上存儲有計算機可執(zhí)行指令的一個或多個計算機可讀存儲介質,所述指令在被計算系統(tǒng)的一個或多個處理器執(zhí)行時使得所述計算系統(tǒng)執(zhí)行所述方法,所述方法包括建立多個法定數量拷貝集(126A/U6B)來復制給定數據分區(qū)的數據的動作,其中所述法定數量拷貝集確保了至少最小數目的拷貝(127A-128A2)用于在分區(qū)重新配置(120)期間提交待決事務的動作;確定拷貝(U8A1)的離開已經啟動數據分區(qū)的重新配置的動作;防止現(xiàn)有的數據庫復制連接由于所述拷貝的離開而被斷開的動作;以及在所述數據分區(qū)的重新配置(120)期間使用所述法定數量拷貝集(126A/126B)中的每一個中的至少法定數量個拷貝(127A-128A2)來提供對所述數據分區(qū)的數據的訪問的動作。
9.如權利要求8所述的計算機程序產品,其特征在于,以所述離開的拷貝的分區(qū)在重新配置期間保持在事務上一致的方式來移除所述拷貝。
10.一種計算機系統(tǒng),包括一個或多個處理器;系統(tǒng)存儲器;其上存儲有計算機可執(zhí)行指令的一個或多個計算機可讀存儲介質,所述計算機可執(zhí)行指令在由所述一個或多個處理器執(zhí)行時使得所述計算系統(tǒng)執(zhí)行一種用于在數據庫重新配置期間提供數據庫訪問的方法,所述方法包括建立多個法定數量拷貝集(126A/U6B)來復制給定數據分區(qū)的數據的動作,其中所述法定數量拷貝集確保了至少最小數目的拷貝(127A-128A2)用于在分區(qū)重新配置期間提交待決事務的動作,每個拷貝集包括一個主要拷貝(127A)和至少一個次要拷貝(U8A1); 確定數據分區(qū)的重新配置(120)已經啟動的動作;防止現(xiàn)有的數據庫復制連接由于次要拷貝(U8A1)的離開而被斷開的動作; 防止依賴于從數據庫(110)的所述主要拷貝(127A)中讀取的一個或多個操作在重新配置期間被重置的動作;以及在所述數據分區(qū)的重新配置(120)期間使用所述多個法定數量拷貝集(126A/U6B)中的至少兩個拷貝(127A/128A1)來提供對所述數據分區(qū)的數據的訪問的動作。
全文摘要
本申請涉及在故障恢復期間增加數據庫的可用性。在此描述的實施例旨在在數據庫重新配置期間提供數據庫訪問并在數據庫重新配置期間維護復制連接。在一個實施例中,計算機系統(tǒng)建立多個法定數量拷貝集以復制數據分區(qū)的數據。法定數量拷貝集確保了至少最小數目的拷貝可用于在分區(qū)重新配置期間提交待決事務。計算機系統(tǒng)確定數據分區(qū)重新配置已經開始,并且使用法定數量拷貝集中的每一個中的至少法定數量個拷貝來在數據分區(qū)的重新配置期間提供對數據分區(qū)的數據的訪問。
文檔編號G06F11/14GK102521073SQ20111038300
公開日2012年6月27日 申請日期2011年11月16日 優(yōu)先權日2010年11月17日
發(fā)明者S·O·沃蒂萊寧, T·塔留斯, V·沙阿 申請人:微軟公司