專利名稱:利用虛擬分區的數據庫重新分布方法和系統的制作方法
技術領域:
本發明總地涉及數據處理,更具體地涉及分區數據庫(partitioned database)的重新分布(redistribution)。
背景技術:
在存儲大量數據的計算環境中,通常通過關系數據庫管理系統(RDBMQ管理數據,RDBMS可以用于對一個或多個數據庫進行實例化以便存儲、訪問和操縱數據。每個數據庫包括一個或多個表格空間,表格空間進而根據關系數據模型存儲表格數據。如表格組織所暗示的,邏輯上按行和列排列表格數據,每個表格行具有相關聯的行密鑰(row key)。為了提供改進的可管理性、性能和/或可用性,通常將關系數據庫劃分成多個邏輯或物理分區(下文簡稱為“分區(partition)”,除非需要更確切含義),每個分區具有它自己的數據、索引、配置文件、和事務處理日志。可以將任何給定表格的表格數據定位在一個或多個分區中,表格數據駐留在其上的分區通常由散列函數確定。因為數據被跨數據庫分區分布,所以可以級聯地利用可能位于多個計算機上的多個處理器的能力來存儲、檢索、 處理和管理數據庫中的數據。隨著所存儲數據的量不斷增加,諸如在線事務處理(OLTP)系統、數據倉儲(data warehousing)企業、金融和保險公司等的管理大數據量的企業經常需要擴大它們的數據存儲和處理容量。例如,企業可以將一個或多個附加服務器以及它們的相關聯的存儲節點添加到企業的現有信息技術(IT)基礎設施中,以便在避免查詢響應時間惡化的同時管理增加的數據量。為了利用附加服務器,RDBMS必須重新分布和重新組織一個或多個數據庫實例,使得數據庫實例不僅駐留在現有服務器的存儲節點上,而且駐留在新安裝服務器的存儲節點上。RDBMS根據現有技術重新分布和重新組織數據庫的傳統過程描繪在圖1中。重新分布和重新組織數據庫的傳統過程從框100開始,此后轉到框102,框102描繪了 RDBMS做出要重新分布的整個數據庫的備份。取決于數據庫的大小,做出數據庫的備份可能消耗相當長的處理時間(例如,數天或數星期)。然后該過程進入包括框104-118的迭代循環,其中跨現有和新存儲節點逐行重新分布數據庫。重新分布從框104開始,框104 描繪了 RDBMS讀取要處理的下一個數據庫行的密鑰值。然后,RDBMS重新散列數據庫行的密鑰值,以確定重新分布之后數據庫行將駐留在其上的目標分區號(框106)。在框110中, RDBMS確定目標分區號是否與現有分區號相同,即意味著數據庫行將不被移動。如果目標分區號與現有分區號匹配,則該過程轉到如下所述的框118。但是,如果目標分區號與現有分區號不匹配,則該過程轉到框112-116。在框112-116中,RDBMS從先有(preexisting)存儲節點讀取整個數據庫行,將該數據庫行插入新添加的存儲節點上的新分區中,然后從先有存儲節點中刪除該數據庫行。 此后,在框118中,RDBMS確定數據庫的所有行是否都已被處理。如果不是,則該過程返回到已經描述過的框104。但是,如果RDBMS在框118中確定數據庫的所有行都被處理,則該過程轉到框120。應該理解,經由框104-118中所描繪的重新分布將所選數據庫行從先有存儲節點移動到新安裝存儲節點使先有存儲節點被稀疏地填充(sparsely populated),因此未得到有效利用。因此,在框120中,RDBMS重新組織先有存儲節點中的數據庫行,使數據庫返回到緊湊存儲組織。如果成功地完成重新組織,那么RDBMS在框122中做出整個數據庫的第二個備份。另外,如框1 所描繪,RDBMS執行實用程序來收集有關數據庫的統計,以便重新表征表格空間、索引和分區,并將這些統計記錄在目錄中。最后,在框126中,RDBMS將跨新添加的存儲節點的數據庫重新組織通知給任何分區知曉(partition-aware)應用程序(例如,Microsoft Internet InformationServices (IIS)) 此后,在框 130 中結束重新分布和重新組織數據庫的傳統過程。圖2A-2C描繪了根據現有技術的在新添加的數據存儲節點上數據庫的重新分布和重新組織。具體地說,圖2A描繪了包括填充著數據庫的四個數據庫分區20h-202d的數據存儲系統200。因為數據庫的大小接近當前安裝的數據存儲節點的容量,所以數據倉儲企業可以將一個或多個附加存儲節點添加到數據存儲系統200中,以便支持附加數據庫分區。在圖2B中所描繪的例子中,數據倉儲企業將一個或多個附加存儲節點添加到數據存儲系統200中,以便支持四個附加數據庫分區2(^e-202h。圖2B進一步例示了在圖1的框104-118中所描繪的數據庫的傳統逐行重新分布之后,移動到新數據庫分區20&-202h 的數據庫部分變得高度緊湊,但是留在原數據庫分區20加-202(1中的數據庫部分被稀疏地填充,因此數據存儲系統200的存儲容量的利用率很差。于是,如上面參考圖1的框120所討論,RDBMS也必須重新組織駐留在數據庫分區20加-202(1上的部分,以獲得圖2C中所示的緊湊、分布良好的數據庫。
發明內容
在一些實施例中,將分區數據庫存儲在至少邏輯或物理第一數據存儲節點上的多個邏輯或物理分區中,并且將多個邏輯分區當中的第一分區的子集配置成虛擬分區。接收指示分配第二物理數據存儲節點來存儲分區數據庫的輸入。在第二數據存儲節點上配置第二分區。響應于該輸入,通過將第一分區上的虛擬分區內的數據移動到第二分區,在第一和第二數據存儲節點上重新分布分區數據庫。
圖1是根據現有技術重新分布和重新組織數據庫的傳統過程的高級流程圖;圖2A-2C描繪了根據現有技術的在新數據存儲節點上的數據庫的傳統重新分布和重新組織;圖3例示了根據一個實施例的示范性數據處理環境;圖4示出了圖3的數據處理企業的示范性數據存儲節點;圖5例示了根據一個實施例的分區配置數據結構的示范性實施例;圖6描繪了根據一個實施例的分區映射的示范性實施例;圖7是重新分布數據庫的方法的第一示范性實施例的高級邏輯流程圖8例示了根據圖7中描繪的第一示范性方法的數據庫的示范性重新分布;圖9是重新分布數據庫的方法的第二示范性實施例的高級邏輯流程圖;以及圖10描繪了根據圖9中所示的第二示范性方法的數據庫的示范性重新分布。
具體實施例方式現在參考附圖,尤其參考圖3,圖3例示了根據一個實施例的示范性數據處理環境 300的高級框圖。如圖所示,示范性數據處理環境300包括可以被操作或代表諸如企業、政府機構、非營利協會、教育機構等管理大量數據的機構的數據處理企業310。為了進行通信, 數據處理企業310與諸如有線或無線局域網或廣域網、蜂窩式電話網絡和/或公共交換電話網絡(PSTN)的一個或多個電路交換或分組交換通信網絡304耦合。因此,數據處理企業 310可以經由通信網絡304與設備30加-302(1(例如,服務器計算機系統、個人計算機系統、 便攜式計算機系統、移動電話、智能電話、陸線電話)通信。設備302a-302d與數據處理系統110之間的通信可以包括經由例如PSTN或互連網協議語音(VoIP)連接的語音通信、和/或經由例如即時消息發送、簡單郵件傳輸協議 (SMTP)或超文本傳輸協議(HTTP)的數據通信。例如,數據處理企業310與設備30加-302(1 之間的通信可以包括將數據請求從設備302a-302d發送到數據處理企業310和將響應數據 (例如,格式化成包括這種數據的程序代碼、圖像、圖形、文本、音頻、視頻、和/或文件)從數據處理企業310發送到設備30加-302(1。仍然參照圖3,數據處理企業310可以包括諸如服務器31h-312n的耦合成通過通信架構314通信的一個或多個物理計算機系統,通信架構314例如可以包括像內聯網、虛擬專用網(VPN)或套接字連接那樣的電纜和/或網絡連接。在例示的示范性實施例中,服務器31 包括允許服務器31 經由通信網絡304和通信架構314通信的一個或多個網絡接口 316。服務器31 另外還包括處理數據和程序代碼,以便例如管理、訪問和操縱組織在一個或多個數據庫中的數據的一個或多個處理器320。服務器31 還包括諸如端口、顯示器、和附連設備等的接收輸入和提供服務器31 執行的處理的輸出的輸入/輸出(I/O)設備322。最后,服務器31 還包括數據存儲體330,數據存儲體330可以包括一個或多個易失性或非易失性存儲設備,包括存儲器、固態驅動器、光盤或磁盤驅動器、磁帶驅動器等。在描繪的實施例中,數據存儲體330存儲管理服務器31 的硬件資源以及向在服務器31 上執行的其它軟件提供常見服務的操作系統(OS) 332。例如,OS 332可以利用 AIX 、Linux 、Android 或Windows 操作系統之一來實現。數據存儲體 330還包括例如可從紐約阿蒙克市IBM公司購買到的DB2 關系數據庫管理系統(RDBMS) 的管理、訪問和操縱例如示范性數據庫350的一個或多個數據庫內的數據的數據庫管理器 340。在一些實施例中,可以將數據庫管理器340與OS 332或另一個軟件程序整合在一起。 除了數據庫350之外,數據庫管理器340還維護定義數據庫350的各種邏輯分區以及將分區映射到數據處理企業310的物理存儲資源的一個或多個分區配置數據結構352。如下面所進一步討論,數據庫管理器340可選地還可以維護將數據庫350的虛擬分區映射到數據庫350的邏輯分區的分區映射(partition map)3M。在各種實施例中,數據庫管理器340和/或OS 332可以包括支持服務器31 經由通信架構314和通信網絡304與其它服務器312和設備302a-302d的通信的代碼。如果在一些實施例中未將適當的通信能力整合在OS 332和/或數據庫管理器340內,數據存儲體330可以另外包括諸如web服務器(例如,ApacheUIS等)、交互式語音應答(IVR)和/ 或其它程序代碼的使服務器31 能夠經由通信架構314和通信網絡304與其它服務器312 和設備302a-302d通信的通信代碼342。尤其,如果得到實現,則通信代碼342支持將數據庫查詢傳送給數據庫管理器340以及將響應數據從數據庫管理器340傳送給請求者。應該理解,數據存儲體330的內容在一些實施例中可以定域(localize)在服務器 312a上,而在其它實施例中將跨多個服務器31h-312n的數據存儲體330分布。另外,描繪在服務器31 的數據存儲體330中的內容可選地可以部分或全部駐留在數據處理企業 310的存儲區域網絡(SAN) 360上。如圖所示,SAN 360包括接收存儲請求和為存儲請求服務的交換機/控制器(SW/C)362和多個數據存儲節點370a-370k,每個數據存儲節點可以包括一個或多個物理非易失性存儲器驅動器、硬盤驅動器、光存儲驅動器、磁帶驅動器等。在一些實施例中,數據存儲節點370a-370k可以是呈現這種物理存儲資源的虛擬化抽象的邏輯實體。回顧前面的描述可以理解,實現數據處理企業310的形式可以根據一種或多種因素,例如,組織的類型、數據庫350的大小、可以查詢數據庫350的設備30加-302(1的數目等隨實施例而變。可以包括例如一個或多個手持機、筆記本、臺式機或服務器計算機系統的所有這些實現方式被構想為如所附權利要求書所述的本發明的實施例。圖4描繪了圖3的數據處理企業310內的數據存儲節點400 (例如,SAN 360的數據存儲節點370或服務器312的數據存儲體330內的數據存儲節點)的更詳細視圖。在所描繪的例子中,數據存儲節點400寄宿著八個邏輯或物理分區,下文假設它們是分別編號為LP0-LP7的邏輯分區。邏輯分區LP0-LP7存儲包括分別編號為B0-B15的十六個數據塊的數據庫350。在RDBMS中,每個數據塊B0-B15可以對應于具有共同行密鑰散列的一個或多個數據庫行。根據本公開,數據庫管理器340將數據塊B0-B15的一個子集指定給虛擬分區。例如,數據庫管理器340可以將數據塊B8-B15中的每一個指定給編號為VP8-VP15的八個虛擬分區中的相應一個虛擬分區。在各種情形下,每個虛擬分區可以包括優選地都駐留在公共邏輯分區上的一個或多個數據塊。如下面參考圖7-10所進一步討論,數據庫管理器340 可以通過參考虛擬分區有效地重新分布數據庫350。現在參考圖5,圖5例示了根據一個實施例的分區配置數據結構352的示范性實施例。在所描繪的實施例中,例如可以在一個或多個數據庫配置文件中實現的分區配置數據結構352包括定義數據庫350的多個邏輯分區以及將邏輯分區映射到數據處理企業310的物理存儲資源的多個配置條目500。在一個示范性實施例中,分區配置數據結構352的每個配置條目500包括若干字段,包括節點號字段502、主機名字段504、邏輯分區號字段506、和虛擬分區標志508。節點號字段502規定唯一標識數據庫350的分區的整數。與將節點號限于邏輯分區的傳統分區數據庫相反,節點號字段502優選地包括數據庫;350的每個邏輯和虛擬分區的唯一節點號。主機名字段504標識在節點號字段502中標識的數據庫分區的TCP/IP主機名(例如, “ServerA(服務器A) ”)。另外,邏輯端口字段506規定指定給在節點號字段502中標識的數據庫分區的邏輯端口(例如,邏輯分區),以及虛擬分區標志508標識在節點號字段502中規定的分區是否是虛擬分區。應該理解,配置條目500可以包括提供諸如對邏輯分區的通信路徑的附加配置信息和/或操作系統特有信息的一個或多個附加字段。給定圖5中所描繪的分區配置數據結構352的示范性實施例,如下面的表I所示, 可以給出分區配置數據結構352的描述圖4的數據存儲節點400的部分。表 I
權利要求
1.一種數據處理方法,包括將分區數據庫存儲在數據處理系統的至少第一數據存儲節點上的多個分區中; 將所述多個分區當中的第一分區的子集配置成虛擬分區; 接收指示分配第二數據存儲節點來存儲分區數據庫的輸入; 在所述第二數據存儲節點上配置分區數據庫的第二分區;以及響應于所述輸入,通過將所述第一分區上的所述虛擬分區內的數據移動到所述第二分區,在所述第一和第二數據存儲節點上重新分布分區數據庫。
2.如權利要求1所述的方法,其中,所述虛擬分區包括所述第一分區的一個或多個數據塊。
3.如權利要求2所述的方法,其中,所述虛擬分區只包括所述第一分區內的數據。
4.如權利要求1所述的方法,其中所述方法包括建立將所述虛擬分區與所述第一分區相關聯的分區配置數據結構;以及所述重新分布包括更新所述分區配置數據結構以指示移動到所述第二分區的數據不駐留在虛擬分區中。
5.如權利要求1所述的方法,其中所述方法包括建立將所述分區數據庫內的數據映射到所述虛擬分區和所述多個分區中的特定分區的分區映射;以及所述重新分布包括更新所述分區映射以指示移動到所述第二分區的數據未被映射到虛擬分區。
6.如權利要求1所述的方法,其中,所述重新分布包括 創建所述虛擬分區內的數據的備份;以及將數據從所述備份恢復到所述第二分區。
7.如權利要求1所述的方法,其中 所述虛擬分區內的數據是第一數據;在所述重新分布之前,所述第一分區存儲所述第一數據和不在所述虛擬分區內的第二數據;以及創建備份包括創建包括所述第一數據但不包括所述第二數據的備份。
8.一種數據處理系統,包括 處理器;與所述處理器耦合的數據存儲體;以及存儲在所述數據存儲體內的程序代碼,當被所述處理器執行時,所述程序代碼使所述數據處理系統執行如下操作將分區數據庫存儲在所述數據存儲體的至少第一數據存儲節點上的多個分區中; 將所述多個分區當中的第一分區的子集配置成虛擬分區; 接收指示分配所述數據存儲體的第二數據存儲節點來存儲分區數據庫的輸入; 在所述第二數據存儲節點上配置分區數據庫的第二分區;以及響應于所述輸入,通過將所述第一分區上的所述虛擬分區內的數據移動到所述第二分區,在所述第一和第二數據存儲節點上重新分布分區數據庫。
9.如權利要求8所述的數據處理系統,其中,所述虛擬分區包括所述第一分區的一個或多個數據塊。
10.如權利要求9所述的數據處理系統,其中,所述虛擬分區只包括所述第一分區內的數據。
11.如權利要求8所述的數據處理系統,其中所述程序進一步使計算機執行建立將所述虛擬分區與所述第一分區相關聯的分區配置數據結構;以及所述重新分布包括更新所述分區配置數據結構以指示移動到所述第二分區的數據不駐留在虛擬分區中。
12.如權利要求8所述的數據處理系統,其中所述程序進一步使計算機執行建立將所述分區數據庫內的數據映射到所述虛擬分區和所述多個分區中的特定分區的分區映射;以及所述重新分布包括更新所述分區映射以指示移動到所述第二分區的數據未被映射到所述虛擬分區。
13.如權利要求8所述的數據處理系統,其中,所述重新分布包括 創建所述虛擬分區內的數據的備份;以及將數據從所述備份恢復到所述第二分區。
14.如權利要求8所述的數據處理系統,其中 所述虛擬分區內的數據是第一數據;在所述重新分布之前,所述第一分區存儲所述第一數據和不在所述虛擬分區內的第二數據;以及所述創建備份包括創建包括所述第一數據但不包括所述第二數據的備份。
全文摘要
本發明涉及利用虛擬分區的數據庫重新分布方法和系統。在一些實施例中,將分區數據庫存儲在至少邏輯或物理第一數據存儲節點上的多個邏輯或物理分區中,并且將多個邏輯分區當中的第一分區的子集配置成虛擬分區。接收指示分配第二物理數據存儲節點來存儲分區數據庫的輸入。在第二數據存儲節點上配置第二分區。響應于該輸入,通過將第一分區上的虛擬分區內的數據移動到第二分區,在第一和第二數據存儲節點上重新分布分區數據庫。
文檔編號G06F17/30GK102541990SQ20111036002
公開日2012年7月4日 申請日期2011年11月15日 優先權日2010年12月7日
發明者N·沙馬, S·佳因 申請人:國際商業機器公司