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

虛擬數(shù)據庫系統(tǒng)的制作方法

文檔序號:6351538閱讀:335來源:國知局
專利名稱:虛擬數(shù)據庫系統(tǒng)的制作方法
技術領域
本發(fā)明總體涉及數(shù)據庫,并且特別地涉及用于管理數(shù)據庫和基于數(shù)據庫的生命周期工作流的存儲高效系統(tǒng)。
背景技術
數(shù)據庫存儲對于組織而言關鍵的數(shù)據,并且因此形成組織的信息技術基礎設施的重要部分。隨著組織中可用的信息增長,為了管理存儲信息的數(shù)據庫而需要的基礎設施的復雜性也增長?;A設施的増加的復雜性増加了為管理數(shù)據庫和依賴于數(shù)據庫的應用而需要的資源。這些增加的成本可以包括與用于管理數(shù)據庫的硬件相關聯(lián)的成本以及與為了維護硬件而需要的附加人員相關聯(lián)的成本。基礎設施的増加的復雜性還影響到與數(shù)據庫相關聯(lián)的維護操作,例如,使備份和恢復操作花費明顯更長時間。
在典型組織的基礎設施環(huán)境中,生產數(shù)據庫服務器運行對組織的日常事務進行管理的應用。對數(shù)據庫的拷貝測試對生產數(shù)據庫或者對依賴于生產數(shù)據庫的應用的改變,以保護生產環(huán)境。生產數(shù)據庫的拷貝可能是對于與生產數(shù)據庫和依賴于生產數(shù)據庫的應用相關聯(lián)的工作流的生命周期中的若干階段所需要的。例如,在生產數(shù)據庫中并入的改變的生命周期中的階段可以包括開發(fā)階段、調試階段、測試階段、質量保證階段、認證階段、訓練階段和分段傳輸(staging)階段。針對每個階段制作生產數(shù)據庫的拷貝需要冗余和昂貴的硬件基礎設施以及為了拷貝數(shù)據而需要的可能花費數(shù)天或者數(shù)周的時間開銷。附加的硬件還需要與物理上存儲硬件相關聯(lián)的附加成本(諸如與電カ和冷卻有關的地面空間要求和成本)。另外,冗余硬件通常引起可用資源的低效使用。生命周期工作流可能是復雜的,并且經常涉及跨多個團隊的協(xié)調。因此,使數(shù)據庫可用于具體目的(諸如用于支持生命周期中的特定階段)可能需要與數(shù)據庫相關聯(lián)的進ー步處理。例如,數(shù)據庫經常包含關鍵機密信息,從而使安全性和完整性成為環(huán)境管理數(shù)據庫中的重要考慮。因而,從事于不同階段的不同團隊所需要的訪問權限經常不同。例如,管理生產數(shù)據庫服務器的人員可以訪問的數(shù)據經常不同于在生命周期的測試階段中工作的個人可以訪問的數(shù)據。這導致與跨與數(shù)據庫有關的任何工作流的生命周期的各種階段的權限監(jiān)管有關的進一歩的復雜性。

發(fā)明內容
為了解決現(xiàn)有數(shù)據庫技術未滿足的需要,本發(fā)明的實施例實現(xiàn)了高效使用儲存器和其它計算資源的虛擬數(shù)據庫。創(chuàng)建虛擬數(shù)據庫(VDB)的方法讀取源數(shù)據庫的不同時間點拷貝。在這些實施例中,“源數(shù)據庫”包括企業(yè)中的如下數(shù)據庫的物理拷貝,該數(shù)據庫包括生產數(shù)據庫、備用數(shù)據庫和任何其它生命周期數(shù)據庫。在發(fā)明的下文具體描述中,“生產數(shù)據庫”和“源數(shù)據庫”互換地用來意指相同數(shù)據庫。從源數(shù)據庫讀取并且在存儲系統(tǒng)上存儲多個數(shù)據庫塊。數(shù)據庫塊是數(shù)據庫使用的數(shù)據單元,并且包括儲存器中存儲的特定數(shù)目的字節(jié)。數(shù)據庫塊也可以稱為頁面。數(shù)據庫塊的部分存儲與數(shù)據庫塊相關聯(lián)的元數(shù)據??梢栽跀?shù)據庫塊的元數(shù)據中存儲的信息的示例包括與數(shù)據庫塊中存儲的數(shù)據有關的信息、與數(shù)據庫對象(數(shù)據塊為該對象的部分)有關的信息、或者指示數(shù)據庫塊中的數(shù)據何時被更新的信息。指示數(shù)據塊何時被更新的信息可以用作數(shù)據庫塊的基于它們的更新時間的相對排序。從源數(shù)據庫取回并且存儲于存儲系統(tǒng)上的數(shù)據庫塊對應于源數(shù)據庫的不同時間點拷貝,并且至少ー些數(shù)據庫塊與源數(shù)據庫的多個時間點拷貝相關聯(lián)。為虛擬數(shù)據庫創(chuàng)建文件集。為VDB創(chuàng)建的文件集中的每個文件鏈接到存儲系統(tǒng)上的與源數(shù)據庫的時間點拷貝相關聯(lián)的數(shù)據庫塊。與VDB相關聯(lián)的文件集裝配于數(shù)據庫服務器上,從而允許數(shù)據庫服務器從文件集讀取和向文件集寫入。在一個實施例中,虛擬數(shù)據庫可以基于另一虛擬數(shù)據庫的時間點拷貝來創(chuàng)建。在實施例中,可以基于與源數(shù)據庫的相同時間點拷貝相關聯(lián)的數(shù)據庫塊創(chuàng)建多個VDB0備選地,所創(chuàng)建的兩個VDB可以與源數(shù)據庫的不同時間點拷貝相關聯(lián)??梢栽谂c不同VDB相關聯(lián)的文件集之間共享存儲系統(tǒng)上存儲的數(shù)據庫塊。共享存儲系統(tǒng)上存儲的數(shù)據庫塊可以出現(xiàn)干與源數(shù)據庫的相同時間點拷貝相關聯(lián)的VDB之間,或者與源數(shù)據庫的不同時間點拷貝相關聯(lián)的VDB之間。在一個實施例中,可以在鏈接、加載或者供給(provision)操作之前執(zhí)行前記(pre-script)操作。前記操作允許執(zhí)行用戶指定的操作,例如,處理 可能未存儲于源數(shù)據庫中的信息。類似地,可以在鏈接、加載或者供給操作之后執(zhí)行后記(post-script)操作。后記操作可以與前記操作相關聯(lián),并且對前記操作中處理的信息執(zhí)行進ー步處理。在實施例中,可以從數(shù)據庫服務器接收對讀取VDB中存儲的數(shù)據的請求。響應于讀取請求而訪問來自數(shù)據庫塊的請求的數(shù)據并且向數(shù)據庫服務器發(fā)送該數(shù)據。在另ー實施例中,可以從數(shù)據庫服務器接收對向VDB寫入數(shù)據的請求。標識與和VDB相關聯(lián)的文件集中的文件相關聯(lián)的數(shù)據庫塊,以用于寫入在寫入請求中發(fā)送的數(shù)據。如果所標識的數(shù)據庫塊也與第二 VDB相關聯(lián),則制作數(shù)據庫塊的拷貝??截惖臄?shù)據塊鏈接到文件,并且向拷貝的數(shù)據庫塊寫入該寫入請求中的數(shù)據??截惖脑瓟?shù)據庫塊保持與第二 VDB相關聯(lián),從而允許第二 VDB查看寫入操作未改變的數(shù)據。在本發(fā)明內容和下文具體描述中描述的特征和優(yōu)點并非囊括性的。本領域普通技術人員鑒于附圖、說明書和權利要求書將清楚許多附加持征和優(yōu)點。


圖I是圖示了根據本發(fā)明的實施例的、如何從生產數(shù)據庫向數(shù)據庫存儲系統(tǒng)拷貝信息,以及使用文件共享系統(tǒng)供給該信息作為虛擬數(shù)據庫的圖。圖2a是示出了根據本發(fā)明的實施例的、虛擬數(shù)據庫系統(tǒng)如何可以運行數(shù)據庫服務器的、與數(shù)據庫服務器在如下生產數(shù)據庫系統(tǒng)上的版本相比的不同版本的圖,該生產數(shù)據庫系統(tǒng)是被虛擬化的數(shù)據庫的源。圖2b是根據本發(fā)明的實施例的、示出了虛擬數(shù)據庫系統(tǒng)如何可以使用在與如下操作系統(tǒng)相比的不同操作系統(tǒng)上執(zhí)行的數(shù)據庫服務器來運行的圖,該操作系統(tǒng)執(zhí)行如下生產數(shù)據庫系統(tǒng)的數(shù)據庫服務器,該生產數(shù)據庫系統(tǒng)是虛擬化的數(shù)據庫的源。圖3是根據本發(fā)明的實施例的如下系統(tǒng)的架構的示意圖,該系統(tǒng)制作來自生產數(shù)據庫的信息的存儲高效拷貝并且供給虛擬數(shù)據庫。
圖4圖示了根據本發(fā)明的實施例的、在數(shù)據庫存儲系統(tǒng)的部件與生產數(shù)據庫系統(tǒng)的部件之間的如下交互,該交互用于在數(shù)據庫存儲系統(tǒng)上制作生產數(shù)據庫的存儲高效拷貝。圖5是根據本發(fā)明的實施例的如下過程的流程圖,該過程用于處理數(shù)據庫存儲系統(tǒng)從生產數(shù)據庫系統(tǒng)接收的數(shù)據流以按存儲高效方式保存數(shù)據。圖6是根據本發(fā)明的實施例的如下過程的流程圖,該過程用于從生產數(shù)據庫系統(tǒng)向數(shù)據庫存儲系統(tǒng)拷貝事務日志文件以使得能夠在給定時間點供給虛擬數(shù)據庫。圖7是根據本發(fā)明的實施例的、用于在與生產數(shù)據庫系統(tǒng)相比的數(shù)據庫存儲系統(tǒng)中存儲事務日志的文件的圖。圖8是圖示了根據本發(fā)明的實施例的、如何在數(shù)據庫存儲系 統(tǒng)中在不同時間點維護數(shù)據庫的數(shù)據的圖。圖9是根據本發(fā)明的實施例的、用于在給定時間點創(chuàng)建虛擬數(shù)據庫的過程的流程圖。圖10圖示了根據本發(fā)明的實施例的、創(chuàng)建數(shù)據庫在給定時間點的讀-寫拷貝以供給虛擬數(shù)據庫。圖11圖示了根據本發(fā)明的實施例的、創(chuàng)建數(shù)據庫在與圖10相比的不同時間點的讀-寫拷貝以供給虛擬數(shù)據庫。圖12圖示了根據本發(fā)明的實施例的、為不同VDB創(chuàng)建的文件結構可以如何共享存儲系統(tǒng)數(shù)據存儲庫上存儲的數(shù)據庫塊。圖13圖示了根據本發(fā)明的實施例的、創(chuàng)建數(shù)據庫的讀-寫拷貝以用于基于從生產數(shù)據庫系統(tǒng)拷貝的事務日志來供給虛擬數(shù)據庫。圖14圖示了數(shù)據庫在示例環(huán)境中用于對數(shù)據庫或者對依賴于數(shù)據庫的應用做出改變的工作流中的生命周期。圖15圖示了用于使用常規(guī)方法來實施如下工作流的系統(tǒng)環(huán)境,該工作流用于測試和開發(fā)與數(shù)據庫和數(shù)據庫應用有關的程序代碼。圖16圖示了根據本發(fā)明的實施例的、用于使用VDB來實施如下工作流的系統(tǒng)環(huán)境,該工作流用于測試和開發(fā)與數(shù)據庫和數(shù)據庫應用有關的程序代碼。圖17圖示了根據本發(fā)明的實施例的、用于使用VDB來實施如下工作流的系統(tǒng)環(huán)境,該工作流用于多點測試和開發(fā)與數(shù)據庫和數(shù)據庫應用有關的程序代碼。圖18a圖示了用于使用常規(guī)方法來實施用于備份和恢復數(shù)據庫的工作流的系統(tǒng)環(huán)境。圖18b圖示了根據本發(fā)明的實施例的、用于使用VDB來實施用于備份和恢復數(shù)據庫的工作流的系統(tǒng)環(huán)境。圖19圖示了用于使用常規(guī)方法來實施用于如下通用場景的工作流的系統(tǒng)環(huán)境,該通用場景需要從ー個機器向另ー機器拷貝數(shù)據庫中的信息。圖20圖示了根據本發(fā)明的實施例的、用于基于VDB實施用于如下通用場景的工作流的系統(tǒng)環(huán)境,該通用場景需要從ー個機器向另ー機器拷貝數(shù)據庫中的信息。圖21圖示了根據本發(fā)明的另ー實施例的、用于基于VDB實施用于如下場景的工作流的系統(tǒng)環(huán)境,該場景需要從ー個機器向另ー機器拷貝數(shù)據庫中的信息。
圖22圖示了根據本發(fā)明的實施例的、用于基于VDB實施用于如下通用場景的工作流的系統(tǒng)環(huán)境,該通用場景需要從與生產數(shù)據庫系統(tǒng)不同的機器向另ー機器拷貝數(shù)據庫中的信息。圖23圖示了使用常 規(guī)方法來實施用于如下場景的工作流的系統(tǒng)環(huán)境,該場景用于從數(shù)據庫創(chuàng)建數(shù)據倉庫和數(shù)據集市。圖24圖示了根據本發(fā)明的實施例的、用于實施用于如下場景的工作流的基于VDB的系統(tǒng)環(huán)境,該場景用于從數(shù)據庫創(chuàng)建數(shù)據倉庫和數(shù)據集市。圖25圖示了可以從機器可讀介質讀取指令并且在處理器或者控制器中執(zhí)行指令的計算機器的實施例。附圖僅出于示例的目的而描繪本發(fā)明的各種實施例。本領域技術人員將從下文討論中容易認識到可以運用這里舉例說明的結果和方法的備選實施例而不脫離這里描述的本發(fā)明的原理。
具體實施例方式虛擬數(shù)據庫系統(tǒng)在本發(fā)明的某些實施例中,基于生產數(shù)據庫或者虛擬數(shù)據庫在特定時間點的狀態(tài)創(chuàng)建ー個或者多個虛擬數(shù)據庫,并且繼而可以根據需要個別訪問和修改虛擬數(shù)據庫。數(shù)據庫包括存儲于計算機中以由計算機實施的應用使用的數(shù)據。數(shù)據庫服務器是可以與數(shù)據庫交互并且提供數(shù)據庫服務(例如,對數(shù)據庫中存儲的數(shù)據的訪問)的計算機程序。數(shù)據庫服務器包括可商購的程序(例如與ORACLE、SYBASE、MICROSOFT SQL SERVER、IBM的DB2、MYSQL等提供的數(shù)據庫管理系統(tǒng)一起包括的數(shù)據庫服務器)??梢允褂脭?shù)據庫模型(例如,關系模型、對象模型、分集模型或者網絡模型)來實施數(shù)據庫。術語“生產數(shù)據庫”在具體示例中用來舉例說明該技術的有用應用;然而,可以理解,公開的技術可以用于任何數(shù)據庫而無論該數(shù)據庫是否用作生產數(shù)據庫。另外,實施例可以使用生產數(shù)據庫的存儲級快照或者生產數(shù)據庫的克隆而不是在使用的生產數(shù)據庫來創(chuàng)建虛擬數(shù)據庫。虛擬數(shù)據庫在數(shù)據庫文件的物理實施從數(shù)據庫服務器對數(shù)據庫文件的邏輯使用去耦合的意義上為“虛擬”。在一個實施例中,在各種時間(諸如定期)向存儲系統(tǒng)拷貝來自生產數(shù)據庫的信息。這使得能夠為這些不同時間點重建與生產數(shù)據庫相關聯(lián)的數(shù)據庫文件??梢杂酶咝Х绞皆诖鎯ο到y(tǒng)中管理信息,從而使得僅如果必需才制作信息拷貝。例如,如果數(shù)據庫的部分相對于先前拷貝的版本不變,則無需拷貝該不變部分。為時間點創(chuàng)建的虛擬數(shù)據庫存儲為如下文件集,該文件集包含數(shù)據庫的如在該時間點可用的信息。每個文件包括數(shù)據庫塊集和用于引用數(shù)據庫塊的數(shù)據結構。在一些實施例中,可以壓縮數(shù)據庫塊以便高效存儲它們。在一些實施例中,數(shù)據庫塊可以以加密形式存儲于存儲系統(tǒng)數(shù)據存儲庫390中以增加存儲數(shù)據的安全性??梢匀鐢?shù)據庫服務器需要的那樣通過為生產數(shù)據庫創(chuàng)建對應于生產數(shù)據庫在先前時間點的狀態(tài)的數(shù)據庫文件來在數(shù)據庫服務器上創(chuàng)建虛擬數(shù)據庫。可以使用如下文件共享機制來使對應于虛擬數(shù)據庫的文件可用于數(shù)據庫服務器,該機制將虛擬數(shù)據庫鏈接到存儲系統(tǒng)上存儲的適當數(shù)據庫塊。使虛擬數(shù)據庫可用于數(shù)據庫服務器的過程稱為“供給”虛擬數(shù)據庫。在一些實施例中,供給虛擬數(shù)據庫包括基于虛擬數(shù)據庫管理對運行數(shù)據庫服務器進行創(chuàng)建的過程。可以基于生產數(shù)據庫在相同時間點的狀態(tài)供給多個VDB。另ー方面,不同VDB可以基于相同生產數(shù)據庫或者不同生產數(shù)據庫的不同時間點狀態(tài)。在一些實施例中,針對健康和用戶動作監(jiān)視供給的數(shù)據庫。向數(shù)據庫存儲系統(tǒng)100通知這些事件。數(shù)據庫存儲系統(tǒng)100基于內置或者用戶指定的規(guī)則操縱這些事件。例如,如果用戶動作影響虛擬數(shù)據庫的可用性,則可以在監(jiān)視控制臺上顯示或者經由電子郵件向用戶發(fā)送警告消息。已經在其上供給虛擬數(shù)據庫的數(shù)據庫服務器繼而可以從存儲系統(tǒng)上存儲的文件讀取和向這些文件寫入??梢栽诓煌募g共享數(shù)據庫塊,每個文件與不同VDB相關聯(lián)。具體而言,如果對應的虛擬數(shù)據庫系統(tǒng)130僅讀取數(shù)據庫塊中的信息而未向數(shù)據庫塊寫入,則共享數(shù)據庫塊。在一個實施例中,僅如果必需虛擬數(shù)據庫管理器375才制作數(shù)據庫塊的拷貝。例如,特定數(shù)據庫塊可以由從相同數(shù)據庫塊讀取的多個VDB共享。但是,如果虛擬數(shù)據庫系統(tǒng)130之一嘗試向數(shù)據庫塊寫入,則制作數(shù)據庫塊的単獨拷貝,因為寫入操作使該數(shù)據庫塊對于與該虛擬數(shù)據庫系統(tǒng)130對應的VDB而言與它對其它VDB而言有所不同。圖I圖示了可以如何從生產數(shù)據庫向數(shù)據庫存儲系統(tǒng)拷貝信息并且使用文件共 享系統(tǒng)供給該信息作為虛擬數(shù)據庫的一個實施例。生產數(shù)據庫系統(tǒng)110管理組織的數(shù)據。在一些實施例中,可以從生產數(shù)據庫的存儲級快照或者生產數(shù)據庫的克隆而不是在使用的生產數(shù)據庫拷貝信息。下文進ー步描述數(shù)據庫存儲系統(tǒng)100從ー個或者多個生產數(shù)據庫系統(tǒng)110取回與數(shù)據庫相關聯(lián)的數(shù)據并且以高效方式存儲數(shù)據。數(shù)據庫管理員用戶接ロ 140允許數(shù)據庫管理員執(zhí)行由數(shù)據庫存儲系統(tǒng)100支持的各種動作。響應于來自管理員系統(tǒng)140的請求或者基于預定義時間表,數(shù)據庫存儲系統(tǒng)100可以向生產數(shù)據庫系統(tǒng)Iio發(fā)送針對數(shù)據的請求150。生產數(shù)據庫系統(tǒng)110通過發(fā)送生產數(shù)據庫中存儲的信息作為數(shù)據流160來做出響應。定期發(fā)送請求150,并且生產數(shù)據庫系統(tǒng)110通過發(fā)送如下信息來做出響應,該信息代表生產數(shù)據庫中存儲的數(shù)據自從生產數(shù)據庫系統(tǒng)110發(fā)送的最后響應160起的改變。數(shù)據庫存儲系統(tǒng)100接收生產數(shù)據庫系統(tǒng)100發(fā)送的數(shù)據160并且存儲數(shù)據。數(shù)據庫存儲系統(tǒng)100可以分析所接收的數(shù)據160以確定是否存儲信息,或者如果信息對于重建在先前時間點的數(shù)據庫而言無用則省略信息。數(shù)據庫存儲系統(tǒng)100例如通過保持已經改變的數(shù)據庫塊的版本并且重用尚未改變的數(shù)據庫塊來高效存儲信息。在實施例中,數(shù)據庫存儲系統(tǒng)100運用分級高速緩存系統(tǒng),其中高速固態(tài)驅動器(SSD)或者等效存儲設備被配置用于高速緩存讀取操作并且用于留存用于向磁盤的寫入操作的日志。為了創(chuàng)建虛擬數(shù)據庫,數(shù)據庫存儲系統(tǒng)100創(chuàng)建如下文件,這些文件代表與在給定時間點的生產數(shù)據庫系統(tǒng)Iio對應的信息。數(shù)據庫存儲系統(tǒng)100使用文件共享系統(tǒng)120向虛擬數(shù)據庫系統(tǒng)130暴露(170)對應的文件。虛擬數(shù)據庫系統(tǒng)130運行可以用數(shù)據庫存儲系統(tǒng)100暴露(170)的文件操作的數(shù)據庫服務器。因此,以存儲高效方式針對給定時間點為虛擬數(shù)據庫系統(tǒng)130創(chuàng)建生產數(shù)據庫的虛擬拷貝。圖2示出了虛擬數(shù)據庫系統(tǒng)130可以運行與生產數(shù)據庫系統(tǒng)110相比的數(shù)據庫服務器的不同版本和/或不同操作系統(tǒng),該生產數(shù)據庫系統(tǒng)110是虛擬化的數(shù)據庫的源。適當修改數(shù)據庫存儲系統(tǒng)100中存儲的虛擬數(shù)據庫文件,從而使得即使數(shù)據庫服務器230具有與數(shù)據庫服務器205相比的不同版本和/或與操作系統(tǒng)210相比的不同操作系統(tǒng)240,虛擬數(shù)據庫130仍然可以用文件操作。如圖2(a)中所示,在虛擬數(shù)據庫系統(tǒng)130上運行的數(shù)據庫服務器230具有與在生產數(shù)據庫系統(tǒng)110上運行的數(shù)據庫服務器205的版本Vx不同的版本Vy。類似地,如圖2(b)中所示,在虛擬數(shù)據庫系統(tǒng)130上運行的操作系統(tǒng)240是與在生產數(shù)據庫系統(tǒng)110上運行的操作系統(tǒng)OSx不同的OSy。在一個實施例中,服務器230和205可以運行相異數(shù)據庫軟件程序。這提供用于嘗試用于運行數(shù)據庫的不同操作系統(tǒng)或者數(shù)據庫服務器版本的能力。在數(shù)據庫和/或應用更新、打補丁或者遷移的情況下,這一能力使得易于進行測試操作而對生產系統(tǒng)無任何影響。繼而可以在向生產系統(tǒng)中部署之前在隔離環(huán)境中認證操作。在一些實施例中,數(shù)據庫存儲系統(tǒng)100可以在由允許多個操作系統(tǒng)在主機計算機上并行運行的平臺虛擬化軟件或者服務器虛擬化軟件提供的虛擬機上執(zhí)行。系統(tǒng)架構圖3示出了圖示出如下系統(tǒng)環(huán)境的高級框圖,該系統(tǒng)環(huán)境適合制作來自生產數(shù)據、庫的信息的存儲高效拷貝并且使用該信息來供給ー個或者多個虛擬數(shù)據庫。系統(tǒng)環(huán)境包括一個或者多個生產數(shù)據庫系統(tǒng)110、數(shù)據庫存儲系統(tǒng)100、管理系統(tǒng)140和一個或者多個虛擬數(shù)據庫系統(tǒng)130。圖3中所示系統(tǒng)如果必需則可以經由網絡相互通信。組織通常使用生產數(shù)據庫系統(tǒng)110來用于維護它的日常事務。例如,在線書店可以在生產系統(tǒng)110中保存與購書、還書或者庫存控制有關的所有進行中事務。生產系統(tǒng)110包括數(shù)據庫服務器345、生產DB數(shù)據存儲庫350、供應商接ロ模塊335和生產系統(tǒng)庫385。在備選配置中,可以在生產數(shù)據庫系統(tǒng)110中包括不同和/或附加模塊。生產DB數(shù)據存儲庫350存儲與可以例如代表如下信息的數(shù)據庫相關聯(lián)的數(shù)據,該信息代表企業(yè)的日常事務。數(shù)據庫服務器345是如下計算機程序,該計算機程序提供用于管理生產DB數(shù)據存儲庫350上的數(shù)據的數(shù)據庫服務和應用編程接ロ(API)。生產系統(tǒng)庫385提供具有從生產數(shù)據庫系統(tǒng)110提取信息的用途的API。供應商接ロ模塊335代表由供應商提供的用于定制由數(shù)據庫服務器345提供的功能的API,例如,用于取回自從先前時間點起改變的數(shù)據庫塊的API。供應商接ロ模塊的示例是供應商ORACLE提供的實施RMANAPI的數(shù)據庫服務器的程序代碼。其它供應商(例如,MICROSOFT的SQL SERVER或者IBM的DB2)提供的數(shù)據庫服務器具有類似的API。在一個實施例中,供應商接ロ模塊335使用與文件共享系統(tǒng)120類似的文件共享系統(tǒng)在數(shù)據庫存儲系統(tǒng)100上裝配生產數(shù)據庫系統(tǒng)110的生產DB數(shù)據存儲庫350。在數(shù)據庫存儲系統(tǒng)100上裝配生產DB數(shù)據存儲庫350允許向數(shù)據庫存儲系統(tǒng)100傳送生產數(shù)據庫系統(tǒng)110上存儲的信息??梢愿鶕探鹰砟K335的要求以不同方式實施生產系統(tǒng)庫385。在實施例中,供應商接ロ模塊335加載生產系統(tǒng)庫385以便回調生產系統(tǒng)庫385中實施的函數(shù)。例如,生產系統(tǒng)庫385可以是具有“.so”或者“.DLL”文件擴展名的如下共享對象文件,該文件包含可以由C/C++可執(zhí)行程序或者由如下JAVA程序調用的可執(zhí)行程序代碼,該JAVA程序將JAVA NATIVE INTERFACE用于與C/C++程序生成的ニ進制代碼交互。備選地,生產系統(tǒng)庫385可以使用JAVA編程語言來實施并且安裝于生產數(shù)據庫系統(tǒng)110中作為具有“.jar”擴展名的文件。java程序需要在生產數(shù)據庫系統(tǒng)110上運行的JAVA虛擬機(VIRTUALMACHINE)以用于執(zhí)行。在另ー實施例中,生產系統(tǒng)庫385的部分可以實施為可執(zhí)行“.so”共享對象文件,并且生產系統(tǒng)庫385的另一部分可以實施為作為jar”文件安裝的JAVA程序。供應商接ロ模塊335對來自數(shù)據庫存儲系統(tǒng)100的請求做出響應,并且響應于該請求而從生產DB數(shù)據存儲庫350收集請求的信息并且向數(shù)據庫存儲系統(tǒng)100返回收集的信息。供應商接口模塊335可以向數(shù)據庫服務器345發(fā)送用于從生產DB數(shù)據存儲庫350取回信息的請求。供應商接口模塊335加載生產系統(tǒng)庫385中的程序代碼,并且調用它以向數(shù)據庫存儲系統(tǒng)100發(fā)送數(shù)據流以用于進一步處理。在一些實施例中,供應商接口模塊335可以與生產DB數(shù)據存儲庫350直接交互,而不是向數(shù)據庫服務器345發(fā)送請求以取回必需數(shù)據庫塊。在其它實施例中,供應商接口模塊335可以從生產數(shù)據庫的存儲級快照或者生產數(shù)據庫的克隆而不是使用的生產數(shù)據庫取回必需的數(shù)據庫塊。數(shù)據庫存儲 系統(tǒng)100取回生產數(shù)據庫系統(tǒng)110中可用的信息并且將其存儲。所取回的信息包括數(shù)據庫塊(這些數(shù)據庫塊包括數(shù)據庫中存儲的信息)、事務日志信息、與數(shù)據庫有關的元數(shù)據信息、與數(shù)據庫的用戶有關的信息等。所取回的信息也可以包括與數(shù)據庫相關聯(lián)的配置文件。例如,數(shù)據庫可以使用供應商特有的配置文件以指定包括與數(shù)據庫相關聯(lián)的初始化參數(shù)的各種配置參數(shù)。拷貝配置文件允許用類似于源生產數(shù)據庫的配置參數(shù)來創(chuàng)建VDB。在一些實施例中,數(shù)據庫管理員可以使用用戶接口 395來修改配置參數(shù)文件以定制具體使用場景的VDB配置。例如,數(shù)據庫服務器345可以使用特定高速緩存大小來訪問生產數(shù)據庫,而數(shù)據庫服務器360可以使用不同高速緩存大小來訪問對應的VDB。所取回的信息還可以包括與使用數(shù)據庫的應用(例如,企業(yè)資源規(guī)劃(ERP)應用可以使用數(shù)據庫并且可以具有特定于ERP應用的數(shù)據)相關聯(lián)的信息。取回ERP應用數(shù)據允許用基于生產數(shù)據庫系統(tǒng)創(chuàng)建的VDB執(zhí)行相似ERP應用。這有益于如下使用場景,其中為類似于生產環(huán)境的環(huán)境創(chuàng)建VDB,以例如用于測試和開發(fā)。數(shù)據庫管理員可以使用用戶接口 395以指定用于拷貝特定于生產環(huán)境的信息的邏輯,以及用于將信息與VDB —起適當安裝以用于由虛擬數(shù)據庫系統(tǒng)130使用的邏輯。在一些實施例中,可以通過使用具體API或者通過在生產數(shù)據庫上運行具體腳本來獲得關于生產數(shù)據庫的用戶(例如,具有管理特權的用戶)的信息。關于用戶的信息可以用來有助于系統(tǒng)中的VDB的生命周期管理。在實施例中,允許數(shù)據庫管理員使用用戶接口 395以便指定關于待創(chuàng)建的用戶賬戶及其訪問權限的信息。例如,如果針對測試目的創(chuàng)建VDB,則可以針對測試組織在VDB上創(chuàng)建測試用戶,而如果將VDB創(chuàng)建為生產數(shù)據庫的備用,則僅具有生產支持角色的用戶應當具有訪問權。在一些實施例中,訪問權限可以指定用戶是否可以供給特許VDB。特許VDB的一個示例是具有對非公共信息(非特許用戶不可以訪問的信息)(例如,社會安全號碼或者信用卡信息)的完全訪問權的VDB。對應的無特許VDB是具有被屏蔽或者加擾的非公共信息的VDB。特許VDB的另一示例是具有可透明訪問的敏感數(shù)據的VDB。對應的無特許VDB是具有經加密的敏感信息的VDB。在一些實施例中,訪問權特權被簡化成三級管理員、所有者和審計者。管理員具有對包括數(shù)據庫和主機的所有受管理對象的完全控制。對管理員可用的控制包括策略管理。所有者有權使用資源(例如,所有者可以供給VDB)。審計者可以查看日志、但是不可以具有消耗系統(tǒng)資源的權利。可以向虛擬數(shù)據庫系統(tǒng)130暴露存儲系統(tǒng)數(shù)據存儲庫390中存儲的數(shù)據,從而允許虛擬數(shù)據庫系統(tǒng)130將數(shù)據視為生產數(shù)據庫系統(tǒng)110中存儲的生產數(shù)據庫的拷貝。數(shù)據庫存儲系統(tǒng)110包括時間點拷貝管理器310、事務日志管理器320、接口管理器330、系統(tǒng)配置管理器315、存儲分配管理器365、文件共享管理器370、虛擬數(shù)據庫管理器375以及存儲系統(tǒng)數(shù)據存儲庫390。在備選配置中,可以在數(shù)據庫存儲系統(tǒng)100中包括不同和/或附加模塊。時間點拷貝管理器310通過向供應商接口模塊335發(fā)送對取回如下信息的請求來與生產數(shù)據庫系統(tǒng)Iio交互,該信息代表生產DB數(shù)據存儲庫350中存儲的數(shù)據庫的時間點拷貝(也稱為“PIT拷貝”)。時間點拷貝管理器310在存儲系統(tǒng)數(shù)據存儲庫390中存儲從生產數(shù)據庫系統(tǒng)110獲得的數(shù)據。時間點拷貝管理器310取回的數(shù)據對應于從生產DB數(shù)據存儲庫350拷貝的數(shù)據庫的數(shù)據庫塊(或者頁面)。在對從生產DB數(shù)據存儲庫350取回信息的第一個PIT拷貝請求之后,后續(xù)PIT拷貝請求可以僅需取回數(shù)據庫中的自從先前請求起改變的數(shù)據。在第一個請求中收集的數(shù)據可以與在第二個請求中收集的數(shù)據進行組合以重建數(shù)據庫的、與針對第二個請求從生產DB數(shù)據存儲庫350取回數(shù)據的時間點對應的拷貝。事務日志管理器320向生產數(shù)據庫系統(tǒng)110發(fā)送針對取回生產數(shù)據庫系統(tǒng)110中存儲的事務日志的部分的請求。在一些實施例中,向供應商接口模塊335發(fā)送來自事務日志管理器320的請求。在存儲系統(tǒng)數(shù)據存儲庫390中存儲事務日志管理器320從供應商接口模塊335獲得的數(shù)據。在一個實施例中,針對事務日志的請求僅取回生產數(shù)據庫系統(tǒng)110 中的事務日志自從處理針對事務日志的先前請求起的改變。與事務日志數(shù)據庫320取回的事務日志組合的、由時間點拷貝管理器310取回的數(shù)據庫塊可以用來重構生產系統(tǒng)110中的數(shù)據庫的、與在制作時間點拷貝的時間之間的以往時間對應的拷貝。存儲分配管理器365提供保存從生產數(shù)據庫系統(tǒng)110取回的數(shù)據的功能。例如,時間點拷貝管理器310可以調用存儲分配管理器的API以保存從生產數(shù)據庫系統(tǒng)110取回的數(shù)據塊。存儲分配管理器365追蹤可以從生產數(shù)據庫系統(tǒng)110獲得的每個數(shù)據塊的各種版本。對于給定時間點,可以請求存儲分配管理器365提供在給定時間點之前獲得的數(shù)據塊的最新版本。存儲分配管理器365還可以用于制作數(shù)據塊的拷貝。如果出于只讀的目的而拷貝數(shù)據塊,則存儲分配管理器365僅分配足以保持對退出數(shù)據塊的引用指針的儲存器。然而,如果做出對向拷貝的數(shù)據塊寫入的嘗試,則存儲分配管理器365分配足以制作數(shù)據塊的實際拷貝的儲存器以避免更新原數(shù)據塊。文件共享管理器370允許跨可以通過網絡來與數(shù)據庫存儲系統(tǒng)100連接的計算機共享存儲系統(tǒng)數(shù)據存儲庫390中存儲的文件。文件共享管理器370將文件共享系統(tǒng)120用于共享文件。用于共享文件的系統(tǒng)的示例是網絡文件系統(tǒng)(NFS)。用于共享文件的系統(tǒng)可以利用光纖信道存儲區(qū)域網絡(FC-SAN)或者網絡附接儲存器(NAS)或者其組合和變形。用于共享文件的系統(tǒng)可以基于小型計算機系統(tǒng)接口(SCSI)協(xié)議、因特網小型計算機系統(tǒng)接口(iSCSI)協(xié)議、光纖信道協(xié)議或者其它相似和有關協(xié)議。在一些實施例中,數(shù)據庫存儲系統(tǒng)100可以利用邏輯卷管理器。使用文件共享系統(tǒng)370來共享存儲系統(tǒng)數(shù)據存儲庫390中存儲的文件允許遠程計算機(例如,虛擬數(shù)據庫系統(tǒng)130)訪問共享文件中的數(shù)據。遠程系統(tǒng)可以能夠從/向存儲系統(tǒng)數(shù)據存儲庫390共享的文件讀取和寫入。在實施例中,以仿真給定文件系統(tǒng)盤布局(諸如WINDOWS操作系統(tǒng)的文件系統(tǒng)(稱為NTFS或者UNIX文件系統(tǒng)(UFS))的格式組織文件。虛擬數(shù)據庫管理器375接收針對為虛擬數(shù)據庫系統(tǒng)130創(chuàng)建虛擬數(shù)據庫的請求。針對創(chuàng)建虛擬數(shù)據庫的請求可以由使用管理系統(tǒng)140的數(shù)據庫管理員發(fā)送,并且該請求標識生產數(shù)據庫系統(tǒng)110、虛擬數(shù)據庫系統(tǒng)130并包括對應于其需要創(chuàng)建虛擬數(shù)據庫的以往時間點。虛擬數(shù)據庫管理器375創(chuàng)建對應于所創(chuàng)建的虛擬數(shù)據庫的必需文件并且與虛擬數(shù)據庫系統(tǒng)130共享文件。虛擬數(shù)據庫系統(tǒng)130的數(shù)據庫管理員可以不同于生產數(shù)據庫系統(tǒng)110的數(shù)據庫管理員。接口管理器330使用管理系統(tǒng)140來表現(xiàn)對于顯示而言所必需的顯示信息。數(shù)據庫管理員用戶可以看到存儲系統(tǒng)數(shù)據存儲庫390中可用的信息以及采取由數(shù)據庫存儲系統(tǒng)執(zhí)行的動作。例如,數(shù)據庫管理員可以看到從不同生產數(shù)據庫系統(tǒng)110獲得的、在存儲系統(tǒng)數(shù)據存儲庫390中存儲的不同生產數(shù)據庫。作為另一示例,數(shù)據庫管理員可以請求數(shù)據庫存儲系統(tǒng)100制作生產數(shù)據庫系統(tǒng)110上存儲的數(shù)據庫在特定時間點的PIT拷貝。在實施例中,接口管理器330允許外部應用訪問數(shù)據庫存儲系統(tǒng)100的信息。例如,數(shù)據庫存儲系統(tǒng)可以提供用編程接口(API)以允許第三方供應商寫入基于數(shù)據庫存儲系統(tǒng)100的應用。在實施例中,接口管理器330提供如下web服務,這些服務允許web應用訪問數(shù)據庫存 儲系統(tǒng)100中可用的信息。例如,數(shù)據庫存儲系統(tǒng)可以是云計算環(huán)境的部分。第三方供應商可以使用web服務以實施基于VDB的各種工作流場景(例如,這里描述的各種工作流場景)。這允許基于VDB的工作流場景的自動化。系統(tǒng)配置管理器315允許使用管理系統(tǒng)140的數(shù)據庫管理員來設置或者改變數(shù)據庫存儲系統(tǒng)100的配置。例如,當初始或者在后期階段設置數(shù)據庫存儲系統(tǒng)時,系統(tǒng)配置管理器315允許數(shù)據庫管理員用戶或者代理指定待連接到的生產數(shù)據庫系統(tǒng)110和虛擬數(shù)據庫系統(tǒng)130。系統(tǒng)配置管理器315還允許具有適當角色和特權的用戶設置如下策略,這些策略指定時間點拷貝管理器310用來取回生產數(shù)據庫系統(tǒng)110中的數(shù)據庫的PIT拷貝的時間表以及事務日志管理器320從生產數(shù)據庫系統(tǒng)110取回對在線事務日志的更新的頻率和時間。在實施例中,時間表可以指定PIT和日志取回動作的頻率和在當天期間的時間,或者它可以是指定相同動作何時應當發(fā)生的日歷日的周期性時間表。在實施例中,策略可以由數(shù)據庫管理員限定并且存儲于系統(tǒng)配置管理器315中以用于與從生產數(shù)據庫系統(tǒng)110加載時間點拷貝、從生產數(shù)據庫系統(tǒng)110加載事務日志、從數(shù)據庫存儲系統(tǒng)100清除信息(該信息包括數(shù)據庫的時間點拷貝和事務日志信息)以及供給虛擬數(shù)據庫系統(tǒng)相關聯(lián)的各種操作。策略指定用于執(zhí)行具體操作的規(guī)則。例如,策略可以指定將基于預定時間表執(zhí)行的操作。策略可以基于已經為生產數(shù)據庫積累的PIT拷貝數(shù)目來確定何時清除數(shù)據庫存儲系統(tǒng)100中存儲的PIT拷貝。策略可以測量儲存器的可用性以確定何時清除信息。例如,如果可用儲存器量達到閾值水平以下,則可以清除所選數(shù)據庫的舊PIT拷貝。策略還可以指定將在清除信息之前被使用的生產數(shù)據庫的優(yōu)先級(例如,在清除高優(yōu)先級數(shù)據庫信息之前清除低優(yōu)先級數(shù)據庫信息)。在特定工作流場景中,策略可以確定何時從生產數(shù)據庫獲得新信息并且基于該新信息自動更新VDB信息以及供給經更新的 VDB。虛擬數(shù)據庫系統(tǒng)130包括數(shù)據庫服務器360和VDB系統(tǒng)庫380。數(shù)據庫服務器360在功能上類似于數(shù)據庫服務器345并且是如下計算機程序,該計算機程序提供用于管理數(shù)據存儲庫350上存儲的數(shù)據的數(shù)據庫服務和應用編程接口(API)。數(shù)據庫服務器360管理的數(shù)據可以存儲于由數(shù)據庫存儲系統(tǒng)100使用文件共享系統(tǒng)120來共享的存儲系統(tǒng)數(shù)據存儲庫390上。VDB系統(tǒng)庫380包含用于處理由數(shù)據庫存儲系統(tǒng)100發(fā)送的請求的程序代碼。在備選配置中,可以在虛擬數(shù)據庫系統(tǒng)130中包括不同和/或附加模塊。
圖4示出了數(shù)據庫存儲系統(tǒng)100與生產數(shù)據庫系統(tǒng)110之間的如下交互,該交互用于制作生產數(shù)據庫Iio中的數(shù)據庫中存儲的數(shù)據的時間點拷貝。時間點拷貝管理器310向生產數(shù)據庫系統(tǒng)110的供應商接口模塊335發(fā)送(405)針對取回與生產數(shù)據庫系統(tǒng)110的數(shù)據庫相關聯(lián)的數(shù)據的請求。在實施例中,使用允許在兩個聯(lián)網設備之間交換數(shù)據的安全shell或者SSH網絡協(xié)議來發(fā)送請求405??梢皂憫趤碜怨芾硐到y(tǒng)140的請求而發(fā)送請求405或者可以將請求配置作為周期性調度的動作。例如,數(shù)據庫存儲系統(tǒng)100可以被配置成在每天預定時間向生產數(shù)據庫系統(tǒng)110發(fā)送(405)請求。圖4中所示的系統(tǒng)環(huán)境不要求在生產數(shù)據庫系統(tǒng)480上不斷執(zhí)行數(shù)據庫存儲系統(tǒng)100專用的過程。這有益于生產數(shù)據庫系統(tǒng)480,因為專用于向數(shù)據庫存儲系統(tǒng)100發(fā)送信息的過程可能消耗生產系統(tǒng)的極大資源并且可能是不希望的。因此,數(shù)據庫存儲系統(tǒng)無論它何時需要來自生產數(shù)據庫系統(tǒng)480的信息都發(fā)送請求405、450。生產數(shù)據庫系統(tǒng)480向時間點拷貝管理器310發(fā)送所請求的數(shù)據。如果請求405是針對與生產數(shù)據庫系統(tǒng)110上存儲的數(shù)據庫相關聯(lián)的數(shù)據的第一請求,則生產數(shù)據庫系 統(tǒng)480發(fā)送整個數(shù)據庫的數(shù)據作為答復。響應于后續(xù)請求405,生產數(shù)據庫系統(tǒng)480僅發(fā)送自從上次響應于先前請求405而發(fā)送(430)答復起改變的數(shù)據庫塊的數(shù)據。在實施例中,供應商接口模塊335向數(shù)據庫服務器345發(fā)送(410)對收集答復430所需要的信息的請求。供應商接口模塊335還加載生產系統(tǒng)庫385中可用的程序代碼。數(shù)據庫服務器向數(shù)據存儲庫350發(fā)送(415)針對必需數(shù)據的請求,并且作為響應420接收所請求的數(shù)據。數(shù)據庫服務器345響應于請求410向供應商接口模塊335發(fā)送(425)所請求的數(shù)據。供應商接口模塊335調用(470)生產系統(tǒng)庫385以將從數(shù)據庫服務器接收(425)的數(shù)據封裝成時間點拷貝管理器310可以處理的格式。生產系統(tǒng)庫385向時間點拷貝管理器310發(fā)送(430)恰當格式化的請求的數(shù)據流。生產系統(tǒng)庫385向時間點拷貝管理器310發(fā)送(430)由數(shù)據庫服務器發(fā)送(425)的信息。供應商接口模塊335與生產系統(tǒng)庫385的程序代碼結合構建數(shù)據流以用于由數(shù)據庫存儲系統(tǒng)100處理。在其它實施例中,供應商接口模塊335與生產系統(tǒng)庫385結合從數(shù)據存儲庫350直接獲得所需數(shù)據,并且向時間點拷貝管理器310發(fā)送(430)數(shù)據。通常,這些實施例在數(shù)據庫服務器345確實支持用于提取必需信息的適當API時有益。在這些實施例中,生產系統(tǒng)庫385包括用于分析數(shù)據存儲庫350中存儲的數(shù)據庫的文件結構的代碼,并且還包括用于處理與數(shù)據存儲庫350中存儲的數(shù)據庫塊相關聯(lián)的元數(shù)據,以發(fā)現(xiàn)自從先前時間點起改變的數(shù)據庫塊的代碼。答復430是如下數(shù)據流,該數(shù)據流包括可以在數(shù)據存儲庫350中的多個文件中存儲的數(shù)據庫塊。對應于答復430的數(shù)據流可以交織與不同數(shù)據庫塊相關聯(lián)的信息(例如,可以交織從不同文件獲得的數(shù)據庫塊)。因此,時間點拷貝管理器310的程序代碼處理數(shù)據流而未假設在數(shù)據流中接收的數(shù)據庫塊的任何特定順序。這些數(shù)據庫塊也可以屬于不同數(shù)據庫。圖5示出了如下過程的流程圖,該流程示了處理時間點拷貝管理器310從生產數(shù)據庫系統(tǒng)110接收到的數(shù)據流。時間點拷貝管理器310接收(510)包括自從最后PIT拷貝起改變的塊的數(shù)據流。時間點拷貝管理器310處理數(shù)據流以標識(515)數(shù)據流中的數(shù)據庫塊。每個數(shù)據庫塊包括如下元數(shù)據,該元數(shù)據包含關于數(shù)據庫塊的信息(例如,該塊所屬的數(shù)據庫對象、數(shù)據庫塊的大小、從其獲得數(shù)據庫塊的文件、文件內存儲數(shù)據庫塊的偏移、以及對在生產數(shù)據庫系統(tǒng)110中的數(shù)據庫中更新數(shù)據庫塊的順序進行指定的日志序列號)。時間點拷貝管理器310分析(520)每個數(shù)據庫塊的元數(shù)據,以確定數(shù)據庫塊是否需要存儲于存儲系統(tǒng)數(shù)據存儲庫390中或者可以將其清除。例如,在數(shù)據庫塊的元數(shù)據中的日志序列號可以指示即使生產系統(tǒng)塊385將數(shù)據庫塊與數(shù)據流一起發(fā)送(430),自從從生產系統(tǒng)庫385接收的最后答復430起也仍然從未更新數(shù)據庫塊。因此,塊無需存儲于存儲系統(tǒng)數(shù)據存儲庫390中并且可以被略過。無需存儲的數(shù)據庫塊的其它示例包括暫時數(shù)據庫塊、會話專用數(shù)據庫塊和如下空數(shù)據庫塊,這些數(shù)據庫塊沒有寫入它們中的數(shù)據。無需存儲的數(shù)據庫塊的另一示例包括對于數(shù)據庫軟件而言無意義或者不可訪問的數(shù)據庫塊。另一示例包括已經由數(shù)據庫軟件標記為刪除、清空或者無效的數(shù)據庫塊。
在上述實施例中,生產數(shù)據庫系統(tǒng)480發(fā)送(430)的信息包括在數(shù)據庫存儲系統(tǒng)100接收數(shù)據流之后清除的非必需塊。在其它實施例中,可以清除一些或者全部非必需塊而數(shù)據流由生產系統(tǒng)庫385構建。在這一實施例中,在尺寸上減少生產數(shù)據庫系統(tǒng)480向數(shù)據庫存儲系統(tǒng)100發(fā)送(430)的數(shù)據流從而帶來在兩個系統(tǒng)之間的高效通信。通過略過無需存儲的數(shù)據庫塊以及通過使用對存儲的數(shù)據庫塊的壓縮,數(shù)據庫存儲系統(tǒng)可以針對對應于相同數(shù)據庫的數(shù)據實現(xiàn)與生產數(shù)據庫系統(tǒng)相比在數(shù)據庫文件所需要的儲存器方面的明顯節(jié)省。例如,對應于生產數(shù)據庫的數(shù)據在存儲系統(tǒng)數(shù)據存儲庫390中占用的存儲空間可以是生產數(shù)據庫在生產DB數(shù)據存儲庫350中占用的空間的四分之一。注意到,通過第一 PIT拷貝獲得對應于生產數(shù)據庫系統(tǒng)的全部信息。后續(xù)PIT拷貝僅獲得生產DB中的改變的信息并且可以比第一 PIT拷貝中包含的信息小得多。如果時間點拷貝管理器310確定(525)可以略過數(shù)據流中的數(shù)據庫塊,則時間點拷貝管理器310繼續(xù)標識(515)下一數(shù)據庫塊以用于處理。在實施例中,時間點拷貝管理器310使用流元數(shù)據中可用的數(shù)據庫塊大小來標識數(shù)據流中的數(shù)據庫塊邊界。繼而相應地處理每個塊。如果時間點拷貝管理器310確定數(shù)據流中的數(shù)據庫塊需要存儲于數(shù)據存儲系統(tǒng)數(shù)據存儲庫390中,則時間點拷貝管理器310分析數(shù)據庫塊元數(shù)據,以將數(shù)據庫塊(530)映射到數(shù)據庫文件和在文件內的位置。時間點拷貝管理器310向存儲分配管理器365發(fā)送(435)對保存(535)數(shù)據庫塊的請求。存儲分配管理器365在存儲系統(tǒng)數(shù)據存儲庫390中存儲與數(shù)據庫塊相關聯(lián)的適當文件中的數(shù)據庫塊。時間點拷貝管理器310校驗(540)是否完全處理數(shù)據流。如果在數(shù)據流中留有未處理的數(shù)據,則時間點拷貝管理器310繼續(xù)標識下一數(shù)據塊以用于處理。如果在不同時間點更新數(shù)據庫塊中的數(shù)據,則存儲分配管理器365可以在存儲系統(tǒng)數(shù)據存儲庫390中保持數(shù)據庫塊的對應于該數(shù)據的若干不同版本。數(shù)據庫塊保存于其中的文件包括文件標頭(該文件標頭包括與文件相關聯(lián)的元數(shù)據)和數(shù)據庫塊序列。每個供應商特有的數(shù)據庫服務器345將數(shù)據庫信息組織為數(shù)據庫服務器345能夠處理的文件集。針對數(shù)據庫使用文件集來組織信息可以是供應商特有的,并且數(shù)據庫存儲系統(tǒng)并入用于在供應商特有的文件組織中組織數(shù)據庫信息的程序邏輯。時間點拷貝管理器310創(chuàng)建可以類似于數(shù)據存儲庫350中的數(shù)據庫的文件集的文件集結構。然而,存儲系統(tǒng)數(shù)據存儲庫390中的信息可以包括數(shù)據庫塊的多個版本,每個版本對應于在不同時間點的更新的信息。在實施例中,存儲分配管理器365以高效方式存儲與文件相關聯(lián)的數(shù)據庫塊,從而只有在針對時間點更新數(shù)據庫塊時制作數(shù)據庫的拷貝。例如,如果在時間Tl、但是未在時間T2更新塊BI,而在時間Tl和T2這二者更新塊B2,則存儲系統(tǒng)數(shù)據存儲庫390的數(shù)據結構未保持數(shù)據庫塊BI的針對時間T2的拷貝,而它保持數(shù)據庫塊B2的針對時間T2的版本。圖4還圖示了事務日志管理器320與生產系統(tǒng)庫385的交互。事務日志管理器320取回自從先前時間點起對生產數(shù)據庫系統(tǒng)110中的數(shù)據庫中的事務日志做出的遞增改變。在實施例中,使用安全外殼(secure shell)或者SSH網絡協(xié)議來發(fā)送請求445。請求445可以標識針對其需要信息的數(shù)據庫,并且提供對應于接收事務日志信息的先前時間點的時間值。生產系統(tǒng)庫385響應于請求445向事務日志管理器320發(fā)送(450)請求的信息。如上文描述的那樣,供應商接口模塊335可以通過調用數(shù)據庫服務器345的API或者通過與數(shù)據存儲庫350直接交互來獲得請求的信息。事務日志管理器320通過向在存儲系統(tǒng)數(shù)據存儲庫390中存儲(440)信息的存儲分配管理器365發(fā)送請求460來保存對從生產數(shù)據庫系統(tǒng)110獲得的數(shù)據庫日志的遞增改變。
圖6示出了用于從生產數(shù)據庫系統(tǒng)110向數(shù)據庫存儲系統(tǒng)100拷貝事務日志文件的過程。事務日志管理器320向生產數(shù)據庫系統(tǒng)110發(fā)送(600)用于取回自從從事務日志管理器320接收最后更新起對事務日志的更新的請求。事務日志管理器320從生產數(shù)據庫系統(tǒng)110接收(610)響應作為數(shù)據流。事務日志管理器320分析所接收的數(shù)據流以確定(620)事務日志數(shù)據需要寫入到的日志文件。有可能需要向多個日志文件寫入在數(shù)據流中接收的數(shù)據。事務日志管理器320向適當日志文件寫入(630)來自數(shù)據流的在線事務日志數(shù)據。在實施例中,事務日志管理器320在日志文件更新之間等待(640)預定時間間隔,并且向生產數(shù)據庫系統(tǒng)110發(fā)送(650)下一請求以校驗對事務日志更新的新更新是否可用。如果在這一時間間隔期間對生產數(shù)據庫未做出更新,則生產數(shù)據庫系統(tǒng)110相應地通知事務日志管理器320。如果針對這一時間間隔對事務日志的新更新不可用,則事務日志管理器320等待(640)另一時間間隔。如果來自生產數(shù)據庫系統(tǒng)110的響應指示對事務日志的更新可用,則事務日志管理器320向生產數(shù)據庫系統(tǒng)110發(fā)送(600)針對取回對事務日志的下一更新的下一請求。與時間點拷貝管理器310制作的時間點拷貝相比,事務日志管理器320可以更頻繁得多地獲得對事務日志的遞增的改變。例如,時間點拷貝管理器可以一天一次地制作生產數(shù)據庫系統(tǒng)HO中存儲的數(shù)據庫的時間點拷貝,而事務日志管理器320可以每五分鐘獲得對事務日志的遞增改變。高頻率獲得對事務日志的遞增改變提供用于重建來自生產數(shù)據庫系統(tǒng)110的數(shù)據庫在時間段拷貝管理器310制作時間點拷貝的時間之間的時間點的拷貝的能力。生產數(shù)據庫系統(tǒng)110可以以循環(huán)方式重用事務日志文件、由此改寫先前日志文件。然而,每當數(shù)據庫存儲系統(tǒng)100確定關閉數(shù)據當前寫入到的日志文件以開始向不同日志文件寫入時其創(chuàng)建新日志文件。圖7比較生產數(shù)據庫系統(tǒng)110的日志文件與數(shù)據庫存儲系統(tǒng)100的日志文件。生產數(shù)據庫系統(tǒng)的日志文件710代表在線事務日志文件。通常分配有限數(shù)目的文件以用于存儲在線事務日志。例如,圖7示出了生產數(shù)據庫系統(tǒng)110分配的用于存儲在線事務日志的三個文件710(a)、710(b)和710(c)。如圖7中所示,箭頭730指示生產數(shù)據庫系統(tǒng)110將事務日志寫入到的事務日志文件在給定時間點Ti (假設時間T1、T2、T3單調增加)的改變。例如,在時間Tl,生產數(shù)據庫系統(tǒng)110停止向文件710(a)寫入事務日志,并且開始向文件710(b)寫入事務日志。類似地,在時間Τ2,生產數(shù)據庫系統(tǒng)110停止向文件710(b)寫入事務日志,并且開始向文件710(c)寫入事務日志。在時間Τ3,生產數(shù)據庫系統(tǒng)110停止向文件710 (c)寫入事務日志,并且決定重用事務日志文件710 (a)。在重用事務日志文件之前,生產數(shù)據庫系統(tǒng)110確保事務日志文件中可用的事務日志應用到適當數(shù)據庫。在時間T4、T5、T6的日志文件改變類似于上文描述的改變。因此,生產數(shù)據庫系統(tǒng)可以通常以循環(huán)方式使用事務日志文件以重用儲存器。數(shù)據庫存儲系統(tǒng)并不針對日志文件數(shù)據使用循環(huán)重用策略,因為數(shù)據庫存儲系統(tǒng)基于事務日志保持歷史信息持續(xù)比日志保留策略確定的更久得多。基于事務日志保持歷史信息提供用于為以往時間點創(chuàng)建VDB的能力。只要為了重建對應于以往時間點的數(shù)據庫快照而必需的事務日志可用,就可以針對以往時間點創(chuàng)建VDB?;谑聞杖罩疚募h(huán)使用的策略造成改寫更早事務日志。因此,將循環(huán)重用策略用于日志文件的數(shù)據庫系統(tǒng)可以僅針對事務日志尚未被改寫的最近時間點來基于事務日志重建數(shù)據庫快照。數(shù)據庫存儲系統(tǒng)100中存儲的日志文件720是保留的日志文件。箭頭740代表從生產數(shù)據庫系統(tǒng)110的事務日志文件710向數(shù)據庫存儲系統(tǒng)100的保留的日志文件720傳送信息。每個箭頭740可以對應于從事務日志管理器320向生產數(shù)據庫系統(tǒng)110發(fā)送的若干請求445,以及生產數(shù)據庫系統(tǒng)110發(fā)送(450)的、由事務日志管理器320處理和存儲的若干響應。例如,箭頭740(a)指示在時間區(qū)間Tl至Τ2期間從日志文件710(a)向720(a)拷貝信息。在時間Τ2,生產數(shù)據庫系統(tǒng)開始向文件710(b)寫入事務日志。數(shù)據庫存儲系統(tǒng)創(chuàng)建新日志文件720(b),并且箭頭740(b)指示從文件710(b)向日志文件720(b)傳送事務日志信息。上述過程繼續(xù),但是在時間Τ3,即使生產數(shù)據庫系統(tǒng)重用日志文件710(a),數(shù)據庫存儲系統(tǒng)也仍然創(chuàng)建新日志文件720(b)。箭頭740(d)指示向日志文件720(d)拷貝事務日志信息。因而,可以在不同時間向數(shù)據庫存儲系統(tǒng)100中的多個日志文件拷貝來自生產數(shù)據庫系統(tǒng)110的相同事務日志文件的事務日志信息。例如,在TO與Tl之間向日志文件720 (a)、在T3與T4之間向日志文件720 (d)以及在時間T6與T7之間向日志文件720 (g)拷貝事務日志文件710(a)中的信息。數(shù)據庫存儲系統(tǒng)100避免重用日志文件以保持事務日志信息持續(xù)盡可能如日志保留策略確定的那樣久。這允許用戶重建數(shù)據庫在事務日志信息可用的先前時間點的快照。圖8圖示了數(shù)據庫存儲系統(tǒng)390在不同時間點從存儲系統(tǒng)數(shù)據存儲庫390中存儲的各種生產數(shù)據庫系統(tǒng)Iio獲得的信息。圖8示出了與從生產數(shù)據庫系統(tǒng)110獲得的兩個數(shù)據庫DBl和DB2有關的信息。信息850對應于為數(shù)據庫DBl獲得的數(shù)據,而信息860對應于為數(shù)據庫DB2獲得的數(shù)據。信息850或者860包括數(shù)據庫塊集和事務日志集。信息850 (a)代表從生產數(shù)據庫系統(tǒng)110獲得的數(shù)據庫DBl的第一 PIT拷貝。信息850 (b)代表自從第一 PIT拷貝起數(shù)據庫DBl的第一事務日志更新,并且信息850(c)代表自從第一 PIT 拷貝起數(shù)據庫DBl的第二事務日志更新。信息850(d)代表數(shù)據庫DBl的第二 PIT拷貝。信息850 (d)僅存儲數(shù)據庫DBl中自從制作第一 PIT拷貝起改變的數(shù)據庫塊。信息850 (e)代表自從第二 PIT拷貝起數(shù)據庫DBl的第一事務日志更新。類似地,信息860對應于數(shù)據庫DB2。在信息850旁邊指示的時間Ti對應于在結構中拷貝該信息的時間。對于PIT拷貝管理器310制作的PIT拷貝(無日志更新(例如,850 (a)或者850 (d))),時間Ti代表在制作PIT拷貝之前對數(shù)據庫塊做出的最后更新的時間。對于與日志更新對應的信息(例如,850(b)、850 (c)或者850(e)),時間Ti代表存儲的對應事務日志集中的最后事務日志的時間。圖8中所示箭頭810代表由虛擬數(shù)據庫管理器375執(zhí)行的如下步驟,該步驟基于信息850創(chuàng)建代表數(shù)據庫的讀/寫拷貝的文件。箭頭830代表以下步驟,該步驟經由文件共享系統(tǒng)120使文件870對虛擬數(shù)據庫系統(tǒng)130可用。圖9是用于創(chuàng)建虛擬數(shù)據庫的過程的流程圖。虛擬數(shù)據庫管理器375接收(905)對為虛擬數(shù)據庫系統(tǒng)130創(chuàng)建虛擬數(shù)據庫的請求??梢詮墓芾硐到y(tǒng)140接收對創(chuàng)建VDB的請求。對創(chuàng)建VDB的請求可以包括生產數(shù)據庫系統(tǒng)110和需要變得可用作VDB的對應的數(shù)據庫、需要為其創(chuàng)建VDB的虛擬數(shù)據庫系統(tǒng)130以及需要為其創(chuàng)建數(shù)據庫快照作為VDB的以往時間點Tn的細節(jié)。 虛擬數(shù)據庫管理器375標識(910)與時間Tj相關聯(lián)的最近PIT拷貝以使得Tj< Τη。虛擬數(shù)據庫管理器375還針對從Tj到Tn的時間段標識(915)日志文件更新的部分。通過制作標識的PIT拷貝中的數(shù)據塊和日志文件的適當部分的存儲高效拷貝來創(chuàng)建(920)讀/寫文件結構870。適當事務日志可以應用于基于PIT拷貝創(chuàng)建的VDB,以便針對在制作PIT拷貝之后出現(xiàn)的時間點創(chuàng)建源數(shù)據庫的快照。因而,即使可以定期(例如,每天)制作PIT拷貝,也仍然可以通過將事務日志適當應用于先前PIT拷貝來為任何時間點創(chuàng)建VDB。例如,可以已經在特定日期的午夜從生產數(shù)據庫制作PIT拷貝。然而,即使在該天期間的特定時間(例如,上午10:25)沒有制作任何PIT拷貝,也可以基于生產數(shù)據庫在該特定時間的狀態(tài)創(chuàng)建VDB。從事務日志獲得生產數(shù)據庫從午夜到特定時間的改變。這里進一步描述制作文件結構的存儲高效拷貝的機制。虛擬數(shù)據庫管理器375向相關聯(lián)的虛擬數(shù)據庫系統(tǒng)130發(fā)送(935)(由圖8中的箭頭830所示)指向讀/寫文件結構的句柄。在一些實施例中,虛擬數(shù)據庫管理器375通過向文件共享管理器370發(fā)送請求來使文件結構可用于虛擬數(shù)據庫系統(tǒng)130。文件共享管理器370作為響應而使用文件共享系統(tǒng)120來與虛擬數(shù)據庫系統(tǒng)130共享適當文件。虛擬數(shù)據庫管理器375還向虛擬數(shù)據庫系統(tǒng)130發(fā)送(930)對通過將適當保留的日志應用于數(shù)據庫塊來執(zhí)行新虛擬數(shù)據庫的恢復930的請求。在一些實施例中,數(shù)據庫在數(shù)據庫服務器在虛擬數(shù)據庫系統(tǒng)130中啟動時自動執(zhí)行數(shù)據庫的恢復。圖10指示如何制作存儲高效拷貝以創(chuàng)建代表VDB的讀/寫文件結構。如圖10中所示,結構1010代表與生產數(shù)據庫系統(tǒng)110上的數(shù)據庫對應的文件。文件Fi和Gi分別代表文件1010中存儲的數(shù)據庫塊(Fi指代F1、F2、F3、…,并且類似地,Gi指代G1、G2、G3、…)。箭頭1015代表在不同時間點Ti制作PIT拷貝的過程。在時間TO制作的第一PIT拷貝1030需要拷貝數(shù)據塊的所有必需數(shù)據庫塊。例如,F(xiàn)li代表塊Fi的拷貝,并且塊Gli代表塊Gi的拷貝。在時間Tl制作的PIT拷貝1035僅拷貝自從最后PIT拷貝起改變的塊并且可以拷貝與第一 PIT拷貝相比的少得多的數(shù)據。類似地,在時間T2制作另一 PIT拷貝1040從拷貝自從先前PIT拷貝1035起改變的數(shù)據庫塊。
假設PIT拷貝1040是針對圖10中所示配置而制作的最后PIT拷貝,為時間點T2創(chuàng)建VDB文件結構1050。當創(chuàng)建結構1050時,塊V11、V12、…、V25可以實施為如下指針,這些指針指向存儲數(shù)據的實際數(shù)據庫塊。例如,Vll代表塊Fl中的信息,并且由于在時間Tl和T2制作的拷貝期間從未更新塊F1,所以Vll指向Fll。V12代表塊F2中的信息,并且由于在時間Tl更新了 F2,所以V12指向塊F22。類似地,V13對應于在時間T2更新的塊F3并且指向塊F33。圖11圖示了為時間點Tl創(chuàng)建的文件結構1150。注意到,對應于塊F3的U13指向F13,因為針對時間點Tl從未更新塊F3。U14還指向對應于在時間Tl拷貝的塊F4的塊F24。1150中的結構均不指向PIT拷貝1040,因為在時間點Tl之后制作PIT拷貝1040。圖12圖示了為不同VDB創(chuàng)建的文件結構如何可以共享存儲系統(tǒng)數(shù)據存儲庫390上存儲的數(shù)據庫塊。圖12示出了對應于如圖10和圖11中所示為VDB創(chuàng)建的生產系統(tǒng)數(shù)據庫110的文件1005的文件結構。如圖12中所示,文件結構C50的塊V13和V14指向未與用于時間Tl的VDB文件1150共享的塊F33和F34的最新拷貝。然而,在T2的VDB文 件1050的塊Vll與在Tl的VDB文件1150的塊Ull共享塊FlI。類似地,1050的塊V12與1150的塊U12共享數(shù)據庫塊F22??缍鄠€VDB共享塊帶來了高效利用存儲系統(tǒng)數(shù)據存儲庫390中存儲的數(shù)據。在VDB之一嘗試向共享數(shù)據庫塊寫入的情況下,為嘗試寫入的VDB制作共享的數(shù)據庫塊的拷貝。共享數(shù)據庫塊的剩余VDB繼續(xù)共享原數(shù)據庫塊。因而,對拷貝的數(shù)據庫塊的任何改變對于剩余VDB而言不可見,因為改變是特定于向數(shù)據庫數(shù)據庫寫入的VDB 的。VDB可以使用另一 VDB的時間點拷貝作為源來創(chuàng)建。例如,假設創(chuàng)建并且向虛擬數(shù)據庫系統(tǒng)130供給VDB1。當虛擬數(shù)據庫系統(tǒng)130向數(shù)據庫塊第一次寫入時拷貝與VDB相關聯(lián)的數(shù)據庫塊。還基于預定義時間表制作VDBl的時間點拷貝。這允許用戶基于VDBl的時間點拷貝創(chuàng)建第二虛擬數(shù)據庫VDB2。也存儲VDBl的事務日志從而允許用戶基于VDBl的可以在VDBl的時間點拷貝之間的任何先前狀態(tài)創(chuàng)建第二虛擬數(shù)據庫VDB2。圖13還圖示了對應于用于在T2之前出現(xiàn)的時間點Tl+t2的數(shù)據庫快照的在VDB文件結構1350中的日志文件并入。如圖13中所示,事務日志管理器320在時間Tl+tl拷貝日志文件數(shù)據LI并且在時間Tl+t2拷貝日志文件數(shù)據L2。未示出向數(shù)據庫存儲系統(tǒng)拷貝生產數(shù)據庫系統(tǒng)110中寫入的附加日志數(shù)據L3并且可以在時間Tl+t2之后的時間拷貝該日志數(shù)據。為VDB創(chuàng)建的文件結構1350包括指向如下適當日志文件數(shù)據的結構VL11,該日志文件數(shù)據代表在時間Tl與Tl+t2之間拷貝的日志信息(由LI和L2代表)。當在虛擬數(shù)據庫系統(tǒng)130的數(shù)據庫服務器啟動時,可以使用數(shù)據庫恢復過程將結構Vll指向的日志應用于數(shù)據庫塊1035。由于圖10中所示結構1050、圖11中所示結構1150或者圖13中所示結構1350為讀/寫結構,所以允許虛擬數(shù)據庫系統(tǒng)130從這些結構讀取以及向它們寫入。當虛擬數(shù)據庫系統(tǒng)130向塊Vij寫入時,為數(shù)據庫分配空間并且向分配的空間拷貝對應數(shù)據庫塊的數(shù)據。例如,如果虛擬數(shù)據庫系統(tǒng)130向塊Vll寫入,則分配空間并且向分配的塊拷貝塊F11。因此,維持塊Fll的原拷貝作為只讀拷貝并且允許虛擬數(shù)據庫系統(tǒng)130向適當數(shù)據庫的具體為虛擬數(shù)據庫系統(tǒng)130創(chuàng)建的拷貝寫入。這可以視為如下惰性(lazy)機制,該惰性機制只有當對應虛擬數(shù)據庫系統(tǒng)130向數(shù)據庫寫入才創(chuàng)建拷貝數(shù)據庫塊的數(shù)據庫拷貝。由于虛擬數(shù)據庫系統(tǒng)130寫入到的塊數(shù)目可以是與VDB相關聯(lián)的塊總數(shù)的小部分,所以上述結構以高度存儲高效方式存儲與VDB相關聯(lián)的數(shù)據。虛擬數(shù)據庫系統(tǒng)130未寫入到的數(shù)據庫塊可以由若干虛擬數(shù)據庫系統(tǒng)共享而不針對具體虛擬數(shù)據庫系統(tǒng)130拷貝該數(shù)據庫塊。VDB 操作
圖14圖示了用于對數(shù)據庫或者對依賴于數(shù)據庫的應用做出改變的工作流中的數(shù)據庫的生命周期的示例。如圖14中所示,可以出于若干目的(包括開發(fā)、調試、測試、質量保證、認證、訓練和分段傳輸)制作生產數(shù)據庫1405的拷貝。常規(guī)手段制作大型數(shù)據庫的拷貝可能是緩慢過程。另外,在不同機器上運行數(shù)據庫的不同拷貝造成硬件的低效使用??梢酝ㄟ^創(chuàng)建虛擬數(shù)據庫而不是制作數(shù)據庫的物理拷貝來簡化與數(shù)據庫相關聯(lián)的各種過程流程場景并且使這些場景高度高效。可以在數(shù)據庫存儲系統(tǒng)100中存儲多個虛擬數(shù)據庫并且可以高效利用系統(tǒng)的可用資源。在基于VDB的工作流場景中執(zhí)行的步驟可以明顯不同于針對使用常規(guī)系統(tǒng)的相同工作流場景而執(zhí)行的操作。這些步驟可以由數(shù)據庫存儲系統(tǒng)100的數(shù)據庫管理員執(zhí)行或者使用腳本來自動執(zhí)行。下文描述與虛擬數(shù)據庫相關聯(lián)的各種操作。鏈接操作向數(shù)據庫存儲系統(tǒng)100的系統(tǒng)配置管理器315提供用于訪問生產數(shù)據庫系統(tǒng)110上的數(shù)據庫而必需的信息。用于訪問數(shù)據庫而必需的信息使數(shù)據庫存儲系統(tǒng)100能夠從生產數(shù)據庫系統(tǒng)110取回數(shù)據。信息可以包括數(shù)據庫的名稱、托管數(shù)據庫的生產數(shù)據庫系統(tǒng)110的網絡地址和訪問控制信息。作為鏈接操作的部分,數(shù)據庫存儲系統(tǒng)可以與生產數(shù)據庫系統(tǒng)110通信以驗證數(shù)據庫的信息。數(shù)據庫存儲系統(tǒng)100可以從生產數(shù)據庫系統(tǒng)Iio中的鏈接的數(shù)據庫取回數(shù)據庫塊并且將其存儲在存儲系統(tǒng)數(shù)據存儲庫390中。存儲系統(tǒng)數(shù)據存儲庫390中存儲的數(shù)據庫塊可以用來創(chuàng)建虛擬數(shù)據庫。在一些實施例中,鏈接可以指定僅需拷貝源數(shù)據庫的部分而不是整個源數(shù)據庫。例如,在關系數(shù)據庫中,源數(shù)據庫的部分可以是表空間、一個或者多個表的集合、表子集或者表子集的集合。在一個實施例中,用戶可以指定用于計算數(shù)據庫的部分的腳本。加載操作從生產數(shù)據庫系統(tǒng)110的數(shù)據庫取回數(shù)據以用于存儲于數(shù)據庫存儲系統(tǒng)100中。數(shù)據庫需要在可以加載數(shù)據庫之前鏈接到數(shù)據庫存儲系統(tǒng)100。如果加載操作第一次取回數(shù)據庫的數(shù)據,則取回數(shù)據庫中可用的全部數(shù)據。因而,第一次加載操作可能緩慢,并且根據數(shù)據庫的尺寸和基于現(xiàn)有技術的硬件的網絡帶寬可以需要若干小時或者天。后續(xù)加載操作可能需要明顯更少時間,因為它們僅取回數(shù)據庫自從先前加載操作起的改變。定期執(zhí)行加載操作以持續(xù)不斷地獲得對數(shù)據庫的改變。加載操作可以獲得數(shù)據庫的數(shù)據庫塊和/或代表自從先前時間點起對數(shù)據庫的更新的事務日志。加載操作所需要的輸入包括標識先前鏈接的數(shù)據庫的信息。如果在鏈接時僅指定源數(shù)據庫的部分,則將僅加載該部分。加載操作還可以遞增地更新VDB中可用的信息。可以定期更新數(shù)據庫存儲系統(tǒng)100從生產數(shù)據庫系統(tǒng)110獲得的信息。在更新數(shù)據庫存儲系統(tǒng)中可用的、從生產數(shù)據庫系統(tǒng)110獲得的信息時,還可以更新向虛擬數(shù)據庫系統(tǒng)130供給的信息。有可能由虛擬數(shù)據庫系統(tǒng)130更新VDB中的數(shù)據。在這一情況下,遞增加載標識由虛擬數(shù)據庫系統(tǒng)130做出的更新并且比較它們與從生產數(shù)據庫系統(tǒng)110取回的改變。如果在兩個更新集中不存在沖突,則加載操作可以通過將生產數(shù)據庫系統(tǒng)110的改變應用于VDB來繼續(xù)。如果存在沖突,則可以向數(shù)據庫管理員呈現(xiàn)沖突的報告并且請求來自數(shù)據庫管理員的輸入以幫助化解沖突。在一個實施例中,通過標識受來自兩個源的更新影響的數(shù)據庫塊來檢測在兩個更新之間的沖突。如果在兩個更新集的數(shù)據庫塊之間不存在重疊,則數(shù)據庫存儲系統(tǒng)100確定不存在沖突。如果在鏈接時僅指定源數(shù)據庫的部分,則將僅加載對該部分的改變。供給操作在數(shù)據庫存儲系統(tǒng)100中創(chuàng)建虛擬數(shù)據庫并且使它對虛擬數(shù)據庫系統(tǒng)130可用。可以基于源數(shù)據庫的時間點拷貝或者另一虛擬數(shù)據庫的時間點拷貝來創(chuàng)建虛擬數(shù)據庫。可以針對VDB創(chuàng)建一個或者多個讀/寫文件并且使用文件共享系統(tǒng)120來與虛擬數(shù)據庫系統(tǒng)130共享該文件。讀/寫文件包括如下結構,這些結構指向存儲系統(tǒng)數(shù)據存儲庫390中存儲的數(shù)據庫塊。供給操作所需要的輸入包括標識先前鏈接和加載的數(shù)據庫或者現(xiàn)有VDB的信息、對應于數(shù)據庫的所 需狀態(tài)的先前時間點和標識為其供給虛擬數(shù)據庫的虛擬數(shù)據庫系統(tǒng)130的信息。在一些實施例中,可以供給VDB的部分。類似地,可以一起供給來自不同VDB的部分以形成新VDB。在其它實施例中,可以使用專用協(xié)調方案來一起供給若干VDB作為組。這些面向組的供給可以涉及供給或者協(xié)調對應用邏輯的供給或者配置。書簽設定操作標記一個或者多個虛擬數(shù)據庫中的應用有效時間點。所得“書簽”可以用來指引供給操作。通常該操作由用戶或者外部程序通過管理系統(tǒng)140觸發(fā)。數(shù)據庫存儲系統(tǒng)100在作為結果的“書簽”存儲于數(shù)據庫存儲系統(tǒng)100中時返回令牌。以后,用戶或者外部程序可以使用返回的令牌向相同應用有效時間點供給VDB或者VDB組。例如,外部程序可以希望在某一狀態(tài)中(諸如恰好在大規(guī)模批處理運行之后)捕獲生產數(shù)據庫。用戶可以經由管理系統(tǒng)140調用書簽設定操作并且保存返回的令牌。以后,用戶可以通過供應保存的令牌向相同狀態(tài)供給VDB。在一些實施例中,令牌處于串的形式。刷新操作對應于數(shù)據庫存儲系統(tǒng)100基于來自源數(shù)據庫系統(tǒng)110的最新信息定期更新VDB。例如,VDB可以用于如下報告系統(tǒng),該系統(tǒng)生成報告以供用戶查看。刷新操作自動從生產數(shù)據庫系統(tǒng)110定期(例如,每天)加載最新信息。關閉被刷新的VDB。用生產數(shù)據庫系統(tǒng)110的最新時間點拷貝更新VDB并且重啟VDB。因而,對應的虛擬數(shù)據庫系統(tǒng)130的用戶看到基于生產數(shù)據庫系統(tǒng)110中的數(shù)據的最新時間點拷貝的最新報告。在實施例中,還可以基于在從生產數(shù)據庫系統(tǒng)110獲得的時間點拷貝之間獲得的事務日志刷新VDB。刷新操作所需要的輸入包括標識待刷新的VDB的信息和用于刷新數(shù)據的時間表。前記操作對應于在執(zhí)行另一數(shù)據庫存儲系統(tǒng)100的操作之前執(zhí)行如下專用指令,這些指令執(zhí)行具體任務。例如,可以在供給VDB或者從生產數(shù)據庫服務器110加載數(shù)據庫之前執(zhí)行前記操作。數(shù)據庫可以與如下應用一起使用,這些應用需要在數(shù)據庫外存儲的專用數(shù)據。當刷新或者加載數(shù)據庫時,可以執(zhí)行前記操作以向數(shù)據庫存儲系統(tǒng)100加載應用專用數(shù)據。向前記操作的輸入可以包括如下可執(zhí)行腳本,該腳本指定待執(zhí)行的操作和數(shù)據庫存儲系統(tǒng)100的操作(在該操作之前執(zhí)行前記操作)的細節(jié)。后記操作對應于在執(zhí)行數(shù)據庫存儲系統(tǒng)100的操作之后執(zhí)行如下專用指令,這些指令執(zhí)行具體任務。例如,可以在向虛擬數(shù)據庫系統(tǒng)130供給VDB之后執(zhí)行前記操作??梢酝ㄟ^使用測試或者開發(fā)虛擬數(shù)據庫系統(tǒng)130運行相似應用來執(zhí)行使用在生產數(shù)據庫系統(tǒng)110中的數(shù)據庫測試和開發(fā)應用。在這一場景中,可能需要向運行對應的應用的虛擬數(shù)據庫系統(tǒng)130進一步拷貝由前記操作從生產數(shù)據庫服務器110拷貝的專用數(shù)據。在供給操作之后執(zhí)行用于從數(shù)據庫存儲系統(tǒng)100拷貝專用數(shù)據數(shù)據的指令作為后記操作。對后記操作的輸入包括指定待執(zhí)行的操作的可執(zhí)行腳本和數(shù)據庫存儲系統(tǒng)100的操作(在該操作之后執(zhí)行后記操作)的細節(jié)。前記和后記操作可以與各種VDB操作相關聯(lián)。例如,可以在刷新操作之前執(zhí)行前記操作并且可以在刷新操作之后執(zhí)行對應的后記操作以允許在刷新操作之前/之后拷貝/安裝具體信息。類似地,前記/后記操作可以與包括鏈接、加載、供給和導出以及其它操作的其它VDB操作相關聯(lián)。例如,在從源數(shù)據庫鏈接或者加載數(shù)據期間,前記/后記操作允許通過使用壓縮、屏蔽或者去除如下數(shù)據來擦除(scrub)數(shù)據,該數(shù)據包括數(shù)據庫表的列或者行。前記和后記允許處置(deal with)與使用源數(shù)據庫和/或VDB的應用相關聯(lián)的應用數(shù)據。前記和后記允許管理與供給VDB相關聯(lián)的系統(tǒng)環(huán)境問題并且允許在供給VDB之前/之后開始/停止活動。、共享操作對應于向另一用戶批準權限以便允許用戶訪問VDB。在實施例中,共享操作可以包括創(chuàng)建新VDB并且將其供給用于與新用戶或者用戶集共享的步驟。例如,在測試和開發(fā)環(huán)境中,在達到使用VDB的特定開發(fā)階段之后,可以與測試用戶共享VDB。共享操作所需要的輸入可以包括標識待共享的VDB的信息、標識與其共享VDB的用戶的信息以及標識向用戶批準的權限級別的訪問控制信息。導出操作從一個計算機向另一計算機拷貝數(shù)據庫中可用的信息。通常向目標計算機拷貝信息用于組裝為數(shù)據庫。階段操作對應于向分段傳輸服務器拷貝數(shù)據庫信息的導出操作。分段傳輸服務器通常用于在聲場環(huán)境中使用對數(shù)據庫或者對數(shù)據庫應用做出的改變之前執(zhí)行數(shù)據庫的系統(tǒng)級測試。對導出操作的輸入包括標識待導出的VDB的信息和標識目標機器(需要向該機器導出來自VDB的數(shù)據)的信息。屏蔽操作對應于在拷貝數(shù)據庫省略的具體信息時變更或者略過數(shù)據庫中的信息。例如,當制作數(shù)據庫的拷貝時,可以未向目標拷貝源中的敏感性信息。另一示例是當供給數(shù)據庫時加擾數(shù)據。敏感信息的示例包括信用卡信息或者社會安全號碼。其中數(shù)據庫信息被屏蔽的示例場景包括出于測試目的而屏蔽生產數(shù)據庫的拷貝。數(shù)據庫的、使用VDB來執(zhí)行測試的用戶可以無需生產數(shù)據庫系統(tǒng)110中存儲的敏感信息??梢宰儞Q從源數(shù)據庫拷貝的數(shù)據的其它操作包括壓縮和加密。壓縮操作通過保留原信息、但是轉換數(shù)據的格式來變換數(shù)據,從而使得它在被存儲時占用更少空間。加密操作將數(shù)據變換成如下應用不能讀取的格式,這些應用具有用于對加密信息進行解碼的邏輯。對屏蔽、壓縮或者加密操作的輸入包括標識源VDB和目標數(shù)據庫的信息。目標數(shù)據庫可以本身為VDB或者可以向常規(guī)系統(tǒng)導出數(shù)據。清除操作從VDB刪除不需要的信息。通常在信息占用大量空間并且不再被需要時清除它。例如,數(shù)據庫可以在長時間段內存儲與在系統(tǒng)中出現(xiàn)的事件相關聯(lián)的事件數(shù)據??梢詮臄?shù)據庫清除不再需要的舊數(shù)據或者已經存檔的數(shù)據??梢栽诳截悢?shù)據庫信息時通過從拷貝操作略過待清除的信息來執(zhí)行清除操作。清除操作的輸入可以包括標識源VDB和目標數(shù)據庫的信息。目標數(shù)據庫可以是VDB或者它可以是常規(guī)數(shù)據庫。提取、變換和加載(ETL)操作指代在數(shù)據入倉庫項目中執(zhí)行的典型操作。提取步驟從源取回數(shù)據,變換步驟基于某些操作需要來修改數(shù)據,而加載操作向目標系統(tǒng)加載數(shù)據。ETL操作所需要的輸入包括標識源數(shù)據庫的信息、標識目標數(shù)據庫的信息和為了變換數(shù)據而執(zhí)行的操作。ETL操作的輸入可以包括標識源VDB和目標數(shù)據庫的信息。目標數(shù)據庫可以是VDB或者它可以是常規(guī)數(shù)據庫。復制(replicate)操作從源存儲系統(tǒng)中保存的數(shù)據向目標存儲系統(tǒng)傳送改變。復制的數(shù)據可以是VDB或者是存儲系統(tǒng)數(shù)據存儲庫390中存儲的、對應于從一個或者多個生產數(shù)據庫系統(tǒng)HO獲得的數(shù)據庫塊的數(shù)據。需要為復制操作適當設置源和目標存儲系統(tǒng)。用于在源存儲系統(tǒng)上復制的程序代碼可以定期標識源存儲系統(tǒng)中存儲的數(shù)據的改變并且向目標存儲系統(tǒng)發(fā)送改變。類似地,目標存儲系統(tǒng)上的源代碼可以從源存儲系統(tǒng)接收改變,并且適當處理它們以并入該改變??梢酝ㄟ^從源存儲系統(tǒng)向目標存儲系統(tǒng)鏡像數(shù)據來使用復制以求高可用性。目標存儲系統(tǒng)可用于在源存儲系統(tǒng)出于某一原因而變得不可用的情況下使用。復制操作的輸入可以包括標識源系統(tǒng)和目標系統(tǒng)的信息。備份操作創(chuàng)建存儲系統(tǒng)中可用的數(shù)據的拷貝,從而使得存儲系統(tǒng)的備份拷貝可以用來在原數(shù)據丟失的情況下重建原存儲系統(tǒng)的信息?;謴筒僮骰謴蛡浞菘截愔锌捎玫男畔⒉⑶抑亟ㄐ畔?。注意到,除非以某一格式保存更新信息,否則原存儲系統(tǒng)中的自從創(chuàng)建備份起的任何改變可能丟失。在一些實施例中,備份信息存儲于具有可能很慢的取回速度的大型存儲系統(tǒng)(例如,帶式備份系統(tǒng))上??梢远x基于這里定義的概念的其它VDB操作并且將這些操作用于數(shù)據中心工作流自動化。也可以通過組合現(xiàn)有VDB操作來創(chuàng)建VDB操作。下文描述基于VDB或者數(shù)據庫存儲系統(tǒng)100的利用上述操作的不同工作流場景。對于每個工作流場景,比較基于常規(guī)系統(tǒng)的場景的簡述與基于虛擬數(shù)據庫的場景。測試和開發(fā)工作流圖15圖示了用于使用常規(guī)數(shù)據庫的基于生產環(huán)境的測試和開發(fā)工作流的場景。如圖15中所示,生產數(shù)據庫系統(tǒng)1505包括在生產環(huán)境中使用的數(shù)據庫1500。常規(guī)系統(tǒng)測試和開發(fā)在生產環(huán)境中使用的軟件可能需要數(shù)據庫1500中存儲的數(shù)據的多個拷貝。如圖15中所示,向開發(fā)系統(tǒng)1510的數(shù)據存儲庫1515拷貝(1550)數(shù)據庫1500。可以在開發(fā)系統(tǒng)1510上執(zhí)行開發(fā)活動持續(xù)某一時間段。向用于執(zhí)行軟件和/或數(shù)據庫測試的測試系統(tǒng)1520中的數(shù)據存儲庫1525進一步定期拷貝數(shù)據存儲庫1515中的數(shù)據庫。在測試系統(tǒng)1520中發(fā)現(xiàn)的問題可以提供如下反饋1575,該反饋可能需要進一步的開發(fā)活動。可以多次充分開發(fā)和測試過程。在某一階段,可以從測試系統(tǒng)1520向用于質量保證(QA)(該質量保證可以包括性能測試、系統(tǒng)集成、認證和用戶接受)的質量保證系統(tǒng)1530的數(shù)據存儲庫1535拷貝數(shù)據庫。基于QA系統(tǒng)1530的反饋1570可能需要使用開發(fā)系統(tǒng)1510的進一步開發(fā)??梢远啻沃貜烷_發(fā)、測試和QA的整個過程。當執(zhí)行令人滿意的QA測試時,可以向分段傳輸系統(tǒng)1540的數(shù)據存儲庫1545進一步拷貝數(shù)據庫。例如,經由升級過程向生產數(shù)據庫系統(tǒng)1505傳播軟件或者數(shù)據庫的最終改變。圖16圖示了用于基于虛擬數(shù)據庫的測試和開發(fā)工作流的場景。由于使用虛擬數(shù)據庫而消除若干如下步驟,這些步驟需要圖15中描述的工作流制作的數(shù)據庫拷貝。向數(shù)據庫存儲系統(tǒng)100鏈接和加載1665來自生產數(shù)據庫系統(tǒng)1505的數(shù)據庫1500。向開發(fā)系統(tǒng)1610供給(1640)對應于數(shù)據庫1500的虛擬數(shù)據庫??梢曰跁r間表多次刷新(1670)為開發(fā)系統(tǒng)1610創(chuàng)建的虛擬數(shù)據庫。當對VDB的開發(fā)活動達到特定階段時,與測試系統(tǒng)1615 共享VDB、由此向測試系統(tǒng)1615的用戶提供適當訪問權。與測試VDB共享開發(fā)VDB可以涉及基于開發(fā)VDB的時間點拷貝創(chuàng)建測試VDB。測試系統(tǒng)1615提供的反饋1575可能需要重復的供給1640、刷新1670和共享1645操作。當開發(fā)和測試達到特定階段時,進一步與QA系統(tǒng)1630共享(1650)并且在數(shù)據存儲庫1635中存儲VDB。與QA系統(tǒng)共享測試或者開發(fā)VDB可能需要基于對應的測試/開發(fā)VDB的時間點拷貝創(chuàng)建QA VDB0備選地,向QA系統(tǒng)導出開發(fā)VDB,還可以向分段傳輸系統(tǒng)1640的數(shù)據存儲庫1645直接分段傳輸(1655) VDB。在一些組織中,可以按照不同物理位置執(zhí)行在工作流程中涉及的不同活動。例如,生產服務器可以位于組織的一個地點,而可以在組織的另一地點執(zhí)行開發(fā)和測試。執(zhí)行開發(fā)和測試的其它地點可以在境外,從而造成在兩個地點之間的慢速網絡通信。在這一場景中,圖15中所示的開發(fā)系統(tǒng)1510和測試系統(tǒng)1520可以在一個地點可用,而包括生產系統(tǒng)1500、QA系統(tǒng)1530和分段傳輸系統(tǒng)1540的剩余系統(tǒng)在不同地點可用。圖17示出了用于這一場景的在各種系統(tǒng)之間的交互。如圖17中所示,地點命名為第一地點1765和第二地點1760。數(shù)據庫存儲系統(tǒng)1715在第一地點1765可用,而第二數(shù)據存儲系統(tǒng)1705在第二地點1760可用。向在第一地點1765的數(shù)據庫存儲系統(tǒng)1715鏈接和加載(1775)生產數(shù)據庫系統(tǒng)1505中存儲的數(shù)據庫。從數(shù)據庫存儲系統(tǒng)1715向數(shù)據庫存儲系統(tǒng)1705復制(1725)對應于數(shù)據庫的數(shù)據。復制操作1725也可以與包括屏蔽、清 除、壓縮和加密的其它操作組合??赡鼙仨毱帘魏颓宄畔ⅲ驗殚_發(fā)/測試可能在境外并且在第二地點1760的用戶可能無權訪問生產數(shù)據庫中可用的具體信息。也可以壓縮信息以減少為了通過網絡傳送而需要的時間并且加密信息以避免數(shù)據被竊。如必需的那樣為開發(fā)系統(tǒng)1610供給(1740)和刷新(1770)數(shù)據庫并且與測試系統(tǒng)1615共享(1745)數(shù)據庫。可以向數(shù)據庫存儲系統(tǒng)1715傳播回由于測試和開發(fā)而對存儲系統(tǒng)數(shù)據存儲庫1710中存儲的數(shù)據庫做出的改變并且在存儲系統(tǒng)數(shù)據存儲庫1720中存儲這些改變。可以經由可以與壓縮和加密組合的復制(1730)操作執(zhí)行這些改變的傳播。向QA系統(tǒng)1630導出(1750)和/或向分段傳輸系統(tǒng)1640導出(1755)數(shù)據庫存儲系統(tǒng)1715中的更新的數(shù)據庫。備份和恢復圖18(a)圖示了用于數(shù)據庫備份和恢復的場景。可以在企業(yè)中存在向備份系統(tǒng)1815的數(shù)據存儲庫1820拷貝(1825)的多個數(shù)據庫系統(tǒng)1810。備份系統(tǒng)1815可以在持久存儲器(例如,大型盤存儲單元)中存儲備份數(shù)據和/或使用帶備份單元。在常規(guī)系統(tǒng)中,操作拷貝1825對應于拷貝數(shù)據庫1810中的數(shù)據庫塊或者向一個或者多個文件導出數(shù)據庫1810中的數(shù)據、向備份系統(tǒng)1815拷貝待存儲于數(shù)據存儲庫1820中的文件。一些數(shù)據庫系統(tǒng)1810可以存儲系統(tǒng)上的也需要備份的數(shù)據庫的快照。數(shù)據庫系統(tǒng)1810可以使用另一數(shù)據庫系統(tǒng)來鏡像數(shù)據庫并且同步鏡像的數(shù)據庫的改變與原數(shù)據庫1810??赡苄枰騻浞菹到y(tǒng)1815中備份鏡像數(shù)據庫。在一些系統(tǒng)中,附加備用數(shù)據庫可以與數(shù)據庫1810 —起用來保護數(shù)據免于故障和災難。也可以使用備份系統(tǒng)1815來備份備用數(shù)據庫。幫助數(shù)據庫備份的供應商特有實用程序的示例是用于與ORACLE數(shù)據庫一起使用的RMAN。圖18(b)圖示了用于使用數(shù)據庫存儲系統(tǒng)1890來恢復數(shù)據庫從而取代對傳統(tǒng)備份和恢復的需要的場景。在這一實施例中,數(shù)據庫存儲系統(tǒng)1890本身充當用于數(shù)據庫系統(tǒng)1865中的數(shù)據庫1860的拷貝的儲存器。鏈接和加載操作1830回避拷貝操作1825。使用由數(shù)據庫存儲系統(tǒng)1890支持的鏈接和加載操作的優(yōu)點在于它從數(shù)據庫1860向數(shù)據庫存儲系統(tǒng)1890傳送與完全和遞增備份相比的數(shù)量小得多的數(shù)據。另外,使用鏈接和加載(1830)操作來執(zhí)行的數(shù)據庫I860的后續(xù)更新僅不斷地傳送在數(shù)據庫1860中出現(xiàn)的改變而無需重復完全加載。因而,從數(shù)據庫1860向存儲系統(tǒng)數(shù)據存儲庫1840傳送的數(shù)據量比在備份解決方案中明顯更小。因此,存儲系統(tǒng)數(shù)據存儲庫1840中的數(shù)據占用少得多的存儲空間,并且從數(shù)據庫I860向存儲系統(tǒng)數(shù)據存儲庫1840傳送數(shù)據需要少得多的時間。在另一實施例中,使用備份系統(tǒng)1845來備份(1855)存儲系統(tǒng)數(shù)據存儲庫1840中可用的數(shù)據。備份操作1855可以起初拷貝存儲系統(tǒng)數(shù)據存儲庫1840中可用的全部數(shù)據并且后續(xù)拷貝(1855)存儲系統(tǒng)數(shù)據存儲庫1840中存儲的數(shù)據的遞增改變。存儲系統(tǒng)數(shù)據存儲庫1840中存儲的數(shù)據量可以明顯少于備份系統(tǒng)1815的數(shù)據存儲庫1820存儲的數(shù)據量,因為在存儲系統(tǒng)數(shù)據存儲庫1840中僅存儲對數(shù)據庫1860做出的改變。因此,尤其在從源數(shù)據庫需要的加載和時間方面,為了向存儲系統(tǒng)數(shù)據存儲庫1840鏈接/加載數(shù)據庫1860中的數(shù)據而需要的時間與為了備份(1855)存儲系統(tǒng)數(shù)據存儲庫1840的數(shù)據而需要的時間合計可以明顯小于大型企業(yè)中的備份操作1825所花費的時間。 維護數(shù)據庫復本(replica)在若干工作流場景中,向目標數(shù)據庫定期拷貝源數(shù)據庫中的信息。例如,可以從源數(shù)據庫向用于在源數(shù)據庫在災難中受損的情況下恢復信息(該過程稱為災難恢復)的目標數(shù)據庫拷貝信息。也可以向一個或者多個數(shù)據庫拷貝信息以增加數(shù)據對用戶的可用性。例如,如果源數(shù)據庫為了維護或者出于其它原因而停用,則可以使目標數(shù)據庫可用于其他用戶。在一些使用場景中,從源數(shù)據庫向用于報告目的的目標數(shù)據庫拷貝信息。在生產數(shù)據庫系統(tǒng)上執(zhí)行報告可能在數(shù)據庫上引起明顯負荷。由于生產數(shù)據庫系統(tǒng)用于事務處理,所以優(yōu)選的是將與生產數(shù)據庫系統(tǒng)上的數(shù)據庫同步的不同服務器用于生成報告。頻繁更新目標數(shù)據庫以使用報告基礎設施來提供最新報告。需要從源數(shù)據庫向目標數(shù)據庫拷貝信息的另一場景是從一個機器向另一機器遷移數(shù)據庫。當企業(yè)將軟件升級至更新版本(例如,升級至操作系統(tǒng)的更加新的版本、數(shù)據庫管理系統(tǒng)的更加新的版本、應用程序的更加新的版本或者升級至新硬件)時可能需要遷移數(shù)據庫。也可能需要從一個物理位置到另一物理位置(例如,當公司被另一公司收購時)遷移數(shù)據庫。圖19圖示了用于從一個或者多個源數(shù)據庫系統(tǒng)1905向目標數(shù)據庫系統(tǒng)1905拷貝信息的系統(tǒng)環(huán)境。圖19圖示了從源數(shù)據庫系統(tǒng)1905中的源數(shù)據存儲庫1935向目標數(shù)據庫系統(tǒng)1910中的目標數(shù)據存儲庫1940拷貝或者傳送(1950)信息。在其它實施例中,可以向多個目標數(shù)據存儲庫1940傳送來自一個源數(shù)據存儲庫1935的信息。備選地,可以向單個目標數(shù)據存儲庫1940傳送(1950)不止一個源數(shù)據存儲庫1935中的信息。與拷貝(1950)操作有關的各種參數(shù)(包括傳送速率、傳送頻率、所傳送的信息類型)可以取決于具體場景。源數(shù)據庫系統(tǒng)1905和目標數(shù)據庫1910可以處于不同物理位置(例如,圖示為第一地點1955和第二地點1960的在地理上分離的位置)。處于不同物理位置的機器通常具有與處于相同物理位置的機器相比的慢速網絡通信。這里描述的實施例適用于處于相同物理位置以及不同位置的源和目標數(shù)據庫系統(tǒng)。圖20圖示了用于實施如圖19中所示常規(guī)實施的工作流場景的、基于數(shù)據庫存儲系統(tǒng)100中存儲的虛擬數(shù)據庫的系統(tǒng)環(huán)境。如圖20中所示,向源數(shù)據庫存儲系統(tǒng)2005的存儲系統(tǒng)數(shù)據存儲庫2025鏈接和加載(2020)源數(shù)據存儲庫1935中存儲的數(shù)據庫中的數(shù)據。操作2020可以包括為了基于源數(shù)據庫系統(tǒng)1905中的更新來更新存儲系統(tǒng)數(shù)據存儲庫2025中的數(shù)據而執(zhí)行的后續(xù)加載操作。向目標數(shù)據庫存儲系統(tǒng)2010的存儲系統(tǒng)數(shù)據存儲庫2030發(fā)送(2015)源數(shù)據庫存儲系統(tǒng)2005的存儲系統(tǒng)數(shù)據存儲庫2025中的數(shù)據。操作2015可以是拷貝存儲系統(tǒng)數(shù)據存儲庫中的全部信息的拷貝操作、備份操作或者向存儲系統(tǒng)數(shù)據存儲庫2030遞增地拷貝存儲系統(tǒng)數(shù)據存儲庫2025中的更新的復制操作。在遷移數(shù)據庫的場景中,操作2015可以拷貝存儲系統(tǒng)數(shù)據存儲庫2025中的全部數(shù)據。在復制的場景中,可以向存儲系統(tǒng)數(shù)據存儲庫2030定期拷貝存儲系統(tǒng)數(shù)據存儲庫2025中的改變??梢允褂盟⑿虏僮鲗Υ鎯ο到y(tǒng)數(shù)據存儲庫2030的改變應用于向目標數(shù)據庫系統(tǒng)1910供給的VDB。如果目標數(shù)據庫系統(tǒng)1910對VDB做出任何改變,則可以向存儲系統(tǒng)數(shù)據存儲庫2025傳播回改變。操作2030使存儲系統(tǒng)數(shù)據存儲庫2030中存儲的數(shù)據庫對目標數(shù)據庫系統(tǒng)1910可用。在高可用性系統(tǒng)的場景中,操作2030可以對應于從存儲系統(tǒng)數(shù)據存儲庫2030向目標數(shù)據庫系統(tǒng)1910供給VDB。在災難恢復的場景中,操作2030可以對應于向目標數(shù)據庫系統(tǒng)1910導出數(shù)據庫。如圖20中所示,可以存在由源數(shù)據庫存儲系統(tǒng)2005向VDB系統(tǒng)2040供給(2035)的VDB??梢允褂媚繕藬?shù)據庫存儲系統(tǒng)2010中的數(shù)據來創(chuàng)建等效VDB并且將其供給(2045)給VDB系統(tǒng)2050。對源數(shù)據庫存儲系統(tǒng)2005中的VDB做出的任何改變自動 保存于存儲系統(tǒng)數(shù)據存儲庫2025中,并且得以通過傳送操作2015向目標數(shù)據庫存儲系統(tǒng)2010傳播。在一個實施例中,目標數(shù)據庫存儲系統(tǒng)2010可以在操作2015之前具有圖3中所示的所有模塊。在另一實施例中,可以提供如下機器以用作目標數(shù)據庫存儲系統(tǒng)2010,該機器不具有圖3中所示的數(shù)據庫存儲系統(tǒng)的模塊。例如,用戶可以提供如下新機器,該機器并未在其上安裝所有的必需軟件以充當數(shù)據庫存儲系統(tǒng)100。在這一實施例中,操作2015將實施數(shù)據庫存儲系統(tǒng)的模塊的程序代碼與存儲系統(tǒng)數(shù)據存儲庫2025中存儲的數(shù)據一起向目標機器拷貝。安裝和預備向目標機器拷貝的程序代碼以用于執(zhí)行。因而,預備為了用作目標數(shù)據庫存儲系統(tǒng)2010而提供的機器以執(zhí)行數(shù)據庫存儲系統(tǒng)100的模塊。在向存儲系統(tǒng)數(shù)據存儲庫2030拷貝與存儲系統(tǒng)數(shù)據存儲庫2025中存儲的數(shù)據庫相關聯(lián)的數(shù)據之后,目標數(shù)據庫存儲系統(tǒng)2010可以執(zhí)行與VDB有關的操作(例如,創(chuàng)建虛擬數(shù)據庫或者向VDB系統(tǒng)2050供給(2045)虛擬數(shù)據庫)。圖21圖示了用于實施如圖19中所示常規(guī)實施的工作流場景的、基于數(shù)據庫存儲系統(tǒng)100的系統(tǒng)環(huán)境的另一實施例。向數(shù)據庫存儲系統(tǒng)2105中直接鏈接和加載(2110)源數(shù)據庫系統(tǒng)1905。如圖21中所示,數(shù)據庫存儲系統(tǒng)2105可以在與存儲源數(shù)據庫的地點1955不同的地點1960或者物理位置可用,或者兩個系統(tǒng)可以在相同地點可用。向數(shù)據庫存儲系統(tǒng)2105定期加載(2110)對源數(shù)據庫系統(tǒng)1905的源數(shù)據存儲庫1935的改變。數(shù)據庫存儲系統(tǒng)2105充當源數(shù)據存儲庫1935中的數(shù)據庫的可以用于災難恢復的拷貝??梢栽跀?shù)據庫存儲系統(tǒng)2105中創(chuàng)建虛擬數(shù)據庫,并且供給虛擬數(shù)據庫以便可用于VDB系統(tǒng)2150。在實施例中,還可以在高可用性場景中使用數(shù)據庫存儲系統(tǒng)2105,其中它充當可以在源數(shù)據庫系統(tǒng)1905停用時使用的備用系統(tǒng)。數(shù)據庫存儲系統(tǒng)2105通過創(chuàng)建VDB并且向VDB系統(tǒng)2150供給(2115)所創(chuàng)建的VDB來充當備用數(shù)據庫。在源數(shù)據庫系統(tǒng)1905停用時由源數(shù)據庫系統(tǒng)1905處理的數(shù)據庫請求可以由VDB系統(tǒng)2150處理。當源數(shù)據庫系統(tǒng)1905準備好處理請求時,向源存儲系統(tǒng)暴露VDB系統(tǒng)2150對VDB做出的改變。在從VDB系統(tǒng)2150向源數(shù)據庫系統(tǒng)1935應用改變之后,可以向源數(shù)據庫系統(tǒng)1905轉移回數(shù)據庫請求。圖22圖示了用于實施圖19中所示常規(guī)實施的工作流場景的、基于數(shù)據存儲系統(tǒng)的系統(tǒng)環(huán)境的另一實施例。在一些企業(yè)中,可以存在從源數(shù)據庫系統(tǒng)1905向目標數(shù)據庫系統(tǒng)1910復制數(shù)據的現(xiàn)有系統(tǒng)。因而,可以不必如圖21中所示的直接從源數(shù)據庫系統(tǒng)1905向數(shù)據庫存儲系統(tǒng)2200鏈接和加載數(shù)據。如圖22中所示,可以使用在來自源數(shù)據庫系統(tǒng)1905的信息被拷貝到的目標數(shù)據庫系統(tǒng)1910中可用的信息來執(zhí)行鏈接加載(2265)操作。從數(shù)據庫存儲系統(tǒng)鏈接和加載數(shù)據可能在源數(shù)據庫系統(tǒng)1905上造成可以通過從鏡像系統(tǒng)(例如,目標數(shù)據庫系統(tǒng)1910)取回適當信息來避免的負荷。這在向數(shù)據庫存儲系統(tǒng)2200提供必需信息時讓源存儲系統(tǒng)1905不受擾動。用于管理數(shù)據倉庫的工作流圖23圖示了用于使用數(shù)據庫中可用的數(shù)據來創(chuàng)建數(shù)據倉庫和數(shù)據集市的系統(tǒng)環(huán)境。生產數(shù)據庫系統(tǒng)2305包含基于數(shù)據存儲庫2330中存儲的一個或者多個數(shù)據庫中的 事務的最新信息??梢猿鲇诜治瞿康南虿僮鲾?shù)據存儲庫2310的數(shù)據存儲庫2340中吸收(2380)來自一個或者多個生產數(shù)據庫系統(tǒng)2305的信息。操作數(shù)據存儲庫2310中的數(shù)據由提取、變換和加載(ETL)系統(tǒng)2355進一步處理(2385)。向數(shù)據倉庫系統(tǒng)2315發(fā)送(2375)由ETL系統(tǒng)2355處理的數(shù)據。ETL系統(tǒng)2355可以暫時存儲數(shù)據以用于處理。ETL系統(tǒng)2355執(zhí)行的處理允許數(shù)據以特定于數(shù)據倉庫系統(tǒng)2315的、用于報告和分析操作的具體格式存儲于數(shù)據倉庫系統(tǒng)2315的數(shù)據存儲庫2360中。可以計算(2370)數(shù)據存儲庫2360中存儲的數(shù)據的子集以用于存儲于如下數(shù)據集市系統(tǒng)2320的數(shù)據存儲庫2365中,這些數(shù)據集市系統(tǒng)用于出于具體目的而分析數(shù)據子集。由于數(shù)據存儲于上文描述的若干系統(tǒng)的數(shù)據存儲庫中,所以可以使用備份系統(tǒng)2325來備份(2350)并且在備份數(shù)據存儲庫2335中存儲數(shù)據。即使數(shù)據可能尚未改變,上述過程也仍然可以維護相同數(shù)據在不同系統(tǒng)中的多個拷貝。此外,若干不同計算機系統(tǒng)用于存儲數(shù)據、由此造成資源的低效利用。圖24圖示了用于實施如圖23中所示常規(guī)實施的工作流場景基于數(shù)據庫存儲系統(tǒng)100的系統(tǒng)環(huán)境的實施例。向數(shù)據庫存儲系統(tǒng)2400鏈接和加載(2450)生產數(shù)據庫系統(tǒng)2305的數(shù)據存儲庫2330中的數(shù)據庫。在初始加載操作2450之后,后續(xù)加載2450僅傳送數(shù)據存儲庫2330中的對應的數(shù)據庫中已經改變的數(shù)據??梢詣?chuàng)建和供給(2455)虛擬數(shù)據庫以用作操作數(shù)據存儲庫2310。ETL系統(tǒng)2355處理(2385)從與操作數(shù)據存儲庫2310相關聯(lián)的VDB獲得的數(shù)據,并且向數(shù)據倉庫系統(tǒng)2315發(fā)送(2375)經處理的數(shù)據。向數(shù)據庫存儲系統(tǒng)2400鏈接和加載(2460)數(shù)據倉庫2315的數(shù)據存儲庫2360中存儲的數(shù)據。數(shù)據庫存儲系統(tǒng)2400可以創(chuàng)建VDB并且將其供給(2470)以用于由數(shù)據集市系統(tǒng)2340使用。包括操作數(shù)據存儲庫2310、ETL系統(tǒng)2355和數(shù)據集市系統(tǒng)2320的系統(tǒng)可以無需本地存儲對應的數(shù)據庫,并且可以將存儲系統(tǒng)數(shù)據存儲庫2490用于存儲數(shù)據庫。另外,通過向備份系統(tǒng)2325的數(shù)據存儲庫2335備份(2465)存儲系統(tǒng)數(shù)據存儲庫2490來實現(xiàn)上述工作流中的備份各種數(shù)據庫的過程。如在圖18中的備份工作流場景中描述的那樣,與如圖23中所示各種系統(tǒng)執(zhí)行的個別備份相比,如圖24中所示使用數(shù)據庫存儲系統(tǒng)2400來執(zhí)行的備份可以更高效。存儲系統(tǒng)數(shù)據存儲庫2490的備份高效是因為由于存儲系統(tǒng)數(shù)據存儲庫2490高效存儲數(shù)據拷貝,備份的數(shù)據量可以明顯更少,以及還因為從單個系統(tǒng)傳送數(shù)據可以比從多個系統(tǒng)傳送數(shù)據更高效。
計算機器架構圖25是圖示了能夠從機器可讀介質讀取指令,并且在處理器(或者控制器)中執(zhí)行它們的示例機器的部件的框圖。具體而言,圖25示出了采取如下計算機系統(tǒng)2500這一示例形式的機器的圖示表示,在該計算機系統(tǒng)內可以執(zhí)行用于使機器執(zhí)行這里討論的方法中的任何一種或者多種方法的指令2524(例如,軟件)。在備選實施例中,機器作為獨立設備來操作或者可以連接(例如,聯(lián)網)到其它機器。在聯(lián)網部署中,機器可以在服務器-客戶端網絡環(huán)境中以服務器機器或者客戶端機器的身份或者在對等(或者分布式)網絡環(huán)境中作為對等機器操作。機器可以是服務器計算機、客戶端計算機、個人計算機(PO、平板電腦、機頂盒(STB)、個人數(shù)字助理(PDA)、蜂窩電話、智能電話、web應用、網絡路由器、交換機或者橋接器或者是能夠執(zhí)行如下指令2524(順序或者以別的方式)的任何機器,這些指令指定將由該機器采取的動作。另外,盡管僅圖示了單個機器,但是術語“機器”也應當解釋為包括如下機器的任何匯集,這些機器單獨或者共同執(zhí)行指令2524以執(zhí)行這里描述的方法中的一 種或者多種方法。示例計算機系統(tǒng)2500包括配置成經由總線2508相互通信的處理器2502(例如,中央處理單元(CPU)、圖形處理單元(GPU)、數(shù)字信號處理器(DSP)、一個或者多個專用集成電路(ASIC)、一個或者多個射頻集成電路(RFIC)或者這些處理器的任何組合)、主存儲器2504以及靜態(tài)存儲器2506。計算機系統(tǒng)2500還可以包括圖形顯示單元2510 (例如,等離子體顯示面板(PDP)、液晶顯示器(IXD)、投影儀或者陰極射線管(CRT))。計算機系統(tǒng)2500還可以包括也配置成經由總線2508通信的文字數(shù)字輸入設備2512(例如,鍵盤)、光標控制設備2514 (例如,鼠標、跟蹤球、操縱桿、運動傳感器或者其它指點工具)、存儲單元2516、信號生成設備2518(例如,揚聲器)和網絡接口設備2520。存儲單元2516包括如下指令2524(例如,軟件)存儲于其上的機器可讀介質2522,這些指令具體化這里描述的方法或者功能中的任何一種或者多種方法或者功能。指令2524 (例如,軟件)還可以在其由計算機系統(tǒng)2500執(zhí)行期間完全或者至少部分地駐留于主存儲器2504內或者處理器2502內(例如,處理器的高速緩存存儲器內),主存儲器2504和處理器2502也構成機器可讀介質??梢越浻删W絡接口設備2520通過網絡2526發(fā)送或者接收指令2524 (例如,軟件)。盡管在一個示例實施例中將機器可讀介質2522示出為單個介質,但是術語“機器可讀介質”應當解釋為包括能夠存儲指令(例如,指令2524)的單個介質或者多個介質(例如,集中式或者分布式數(shù)據庫或者相關聯(lián)的高速緩存和服務器)。術語“機器可讀介質”還應當解釋為包括能夠存儲如下指令(例如,指令2524)的任何介質,這些指令用于由機器執(zhí)行并且使機器執(zhí)行這里公開的方法中的任何一種或者多種方法。術語“機器可讀介質”包括但不限于形式為固態(tài)存儲器、光學介質和磁介質的數(shù)據貯存庫。附加配置考虎在本說明書全文中,多個實例可以實施描述為單個實例的部件、操作或者結構。雖然將一種或者多種方法的個別操作圖示和描述為單獨操作,但是可以并行執(zhí)行一個或者多個個別操作并且并不要求按所示順序執(zhí)行操作。在示例配置中呈現(xiàn)為單獨部件的結構和功能可以實施為組合結構或者部件。類似地,呈現(xiàn)為單個部件的結構和功能可以實施為單獨部件。這些和其它變化、修改、添加和改進落入這里的主題內容的范圍內。這里將某些實施例描述為包括邏輯或者多個部件、模塊或者機制。模塊可以構成軟件模塊(例如,在機器可讀介質中或者在傳輸信號中體現(xiàn)的代碼)或者硬件模塊。硬件模塊是能夠執(zhí)行某些操作的有形單元并且可以按某一方式來配置或者布置。在示例實施例中,一個或者多個計算機系統(tǒng)(例如,獨立計算機系統(tǒng)、客戶端計算機系統(tǒng)或者服務器計算機系統(tǒng))或者計算機系統(tǒng)的一個或者多個硬件模塊(例如,處理器或者處理器組)可以由軟件(例如,應用程序或者應用程序部分)配置為如下硬件模塊,該硬件模塊操作以執(zhí)行如這里描述的某些操作。在各種實施例中,可以機械地或者電子地實施硬件模塊。例如,硬件模塊可以包括持久配置(例如,作為專用處理器(諸如現(xiàn)場可編程門陣列(FPGA)或者專用集成電路(ASIC)))成執(zhí)行某些操作的專用電路或者邏輯。硬件模塊還可以包括由軟件暫時配置成執(zhí)行某些操作的可編程邏輯或者電路(例如,作為包含于通用處理器或者其它可編程處理器內)。將理解可以按照成本和時間考慮來驅動用于機械地、在專用和持久配置的電路中或者在暫時配置的電路(例如,由軟件配置)中實施硬件模塊的決策。 因而術語“硬件模塊”應當理解為包含有形實體(即物理上構造、持久配置(例如,硬接線)或者暫時配置(例如,編程)為以某一方式操作或者執(zhí)行這里描述的某些操作的實體)。如這里所用,“硬件實施的模塊”指代硬件模塊??紤]其中暫時配置(例如,編程)硬件模塊的實施例,無需在任何一個時間實例配置或者實例化每個硬件模塊。例如,當硬件模塊包括使用軟件來配置的通用處理器時,通用處理器可以在不同時間配置為相應不同硬件模塊。軟件因而可以配置例如處理器以在一個時間實例構成特定硬件模塊并且在不同時間實例構成不同硬件模塊。硬件模塊可以向其它硬件模塊提供信息和從其它硬件模塊接收信息。因而描述的硬件模塊可以視為連通地耦合。當多個這樣的硬件模塊同時存在時,可以通過連接硬件模塊的信號傳輸(例如,通過適當電路和總線)實現(xiàn)通信。在其中在不同時間配置或者實例化多個硬件模塊的實施例中,可以例如通過在這樣的硬件模塊有權訪問的存儲器結構中存儲和取回信息來實現(xiàn)在多個硬件模塊之間的通信。例如,一個硬件模塊可以執(zhí)行操作并且在它連通地耦合到的存儲器設備中存儲該操作的輸出。又一硬件模塊然后可以在以后時間訪問存儲器設備以取回和處理存儲的輸出。硬件模塊還可以發(fā)起與輸入或者輸出設備的通信,并且可以對資源(例如,信息匯集)操作。這里描述的示例方法的各種操作可以至少部分地由暫時配置(例如,由軟件配置)或者持久配置成執(zhí)行相關操作的一個或者多個處理器執(zhí)行。無論暫時還是持久配置,這樣的處理器可以構成操作以執(zhí)行一個或者多個操作或者功能的處理器實施的模塊。這里指代的模塊在一些示例實施例中可以包括處理器實施的模塊。類似地,這里描述的方法可以至少部分地由處理器實施。例如,方法的至少一些操作可以由一個或者多個處理器或者處理器實施的硬件模塊執(zhí)行。某些操作的執(zhí)行可以分布于一個或者多個處理器之中(而非僅駐留于單個機器內),但是跨多個機器來部署。在一些示例實施例中,一個或者多個處理器可以位于單個位置(例如,家用環(huán)境內、辦公室環(huán)境內或者作為服務器群),而在其它實施例中,處理器可以跨多個位置分布。一個或者多個處理器還可以操作以支持在“云計算”環(huán)境中作為“作為服務的軟件”(SaaS)執(zhí)行相關操作。例如,至少一些操作可以由計算機組(作為包括處理器的機器的示例)執(zhí)行,經由網絡(例如,因特網)和經由一個或者多個適當接口(例如,應用程序接口(API))可訪問這些操作。某些操作的執(zhí)行可以分布于一個或者多個處理器之中(而并非僅駐留于單個機器內),但是跨多個機器來部署。在一些示例實施例中,一個或者多個處理器或者處理器實施的模塊可以位于單個地理位置(例如,家用環(huán)境內、辦公室環(huán)境或者服務器群內)。在其它不例實施例中,一個或者多個處理器或者處理器實施的模塊可以跨多個地理位置分布。在對機器存儲器(例如,計算機存儲器)內存儲為比特或者二進制數(shù)字信號的數(shù)據的操作的算法或者符號表示方面呈現(xiàn)該說明書的一些部分。這些算法或者符號表示是由 本領域普通技術人員用來向本領域其他技術人員傳達他們的工作實質的技術的示例。如這里所用,“算法”是產生所需結果的操作或者相似處理的自一致序列。在該上下文中,算法和操作涉及對物理量的物理操控。通常但是并非必需,這樣的數(shù)量可以采用能夠由機器存儲、訪問、傳送、組合、比較或者操控的電、磁或者光學信號。主要出于普遍用法的原因而使用諸如“數(shù)據”、“內容”、“位”、“值”、“要素”、“符號”、“字符”、“項”、“數(shù)”、“數(shù)值”等字眼來指代這些信號有時是便利的。然而這些字眼僅為便利標記并且將與適當物理量相關聯(lián)。除非另有明示,否則這里使用諸如“處理”、“計算”、“運算”、“確定”、“呈現(xiàn)”、“顯示”等詞匯的討論可以指代如下機器(例如,計算機)的動作或者過程,該機器操控或者變換在一個或者多個存儲器(例如,易失性存儲器、非易失性存儲器或者其組合)、寄存器或者接收、存儲、發(fā)送或者顯示信息的其它機器部件內表示為物理(例如,電子、磁或者光學)量的數(shù)據。如這里所用,任何對“ 一個實施例”或者“實施例”的引用都意味著結合該實施例描述的特定要素、特征、結構或者特性包含于至少一個實施例中。在說明書中的各處出現(xiàn)的短語“在一個實施例中”未必都指代相同實施例。可以使用表達“耦合”和“連接”及其衍生表達來描述一些實施例。應當理解這些術語并非旨在于作為用于彼此的同義詞。例如,可以使用術語“連接”來描述一些實施例以指示兩個或者更多要素相互直接物理或者電接觸。在另一示例中,可以使用術語“耦合”來描述一些實施例以指示兩個或者更多要素直接物理或者電接觸。然而術語“耦合”也可以意味著兩個或者更多要素未相互直接接觸、但是仍然相互配合或者交互。實施例在該上下文中不受限制。如這里所用,術語“包括”、“包含”、“具有”或者其任何其它變化旨在于覆蓋非窮舉性包括。例如,包括要素列表的過程、方法、物品或者裝置未必僅限于那些要素、而是可以包括未明確列舉的或者這樣的過程、方法、物品或者裝置固有的其它要素。另外除非相反明示,否則“或者”指代包括意義的或者而不是窮舉意義的或者。例如,通過以下各項中的任一項來滿足條件“A或者B”:A為真(或者存在)并且B為假(或者不存在)、A為假(或者不存在)并且B為真(或者存在),以及A和B這二者均為真(或者存在)。此外,“一個/ 一種”的用法用來描述這里的實施例的要素和部件。這樣做僅為了便利并且給出本發(fā)明的一般意義。這一描述應當解讀為包括一個或者至少一個,并且單數(shù)除非明顯的是它另有含義則也包括多個。在閱讀本公開內容時,本領域技術人員將理解用于如下系統(tǒng)和過程的更多附加備選結構和功能設計,該系統(tǒng)和過程用于根據存儲管理器中存儲的生產數(shù)據庫的時間點拷貝來創(chuàng)建虛擬數(shù)據庫。因此盡管已經圖示和描述特定實施例和應用,但是將理解所公開的實 施例并不限于這里公開的精確構造和部件??梢栽谶@里公開的方法和裝置的布置、操作和細節(jié)上做出本領域技術人員將清楚的各種修改、改變和變化而不脫離在所附權利要求中限定的精神實質和范圍。
權利要求
1.一種用于創(chuàng)建虛擬數(shù)據庫系統(tǒng)的方法,所述方法包括 接收源數(shù)據庫的不同時間點拷貝,所述源數(shù)據庫包括多個數(shù)據庫塊; 在存儲系統(tǒng)上存儲所述源數(shù)據庫的多個不同時間點拷貝的數(shù)據庫塊,其中所述存儲的數(shù)據庫塊中的至少ー些數(shù)據庫塊與所述源數(shù)據庫的多個時間點拷貝相關聯(lián); 創(chuàng)建虛擬數(shù)據庫的文件集,所述文件集中的每個文件鏈接到所述存儲系統(tǒng)上的、與所述源數(shù)據庫的時間點拷貝相關聯(lián)的所述數(shù)據庫塊;以及 在數(shù)據庫服務器上裝配與所述虛擬數(shù)據庫相關聯(lián)的所述文件集,從而允許所述數(shù)據庫 服務器從所述文件集讀取和向所述文件集寫入。
2.根據權利要求I所述的方法,還包括 從所述數(shù)據庫服務器接收針對與所述虛擬數(shù)據庫相關聯(lián)的所述文件集中的數(shù)據的讀取請求; 訪問與所述文件集中的文件相關聯(lián)的至少ー個數(shù)據庫塊中的數(shù)據;以及 響應于所述讀取請求,發(fā)送所述數(shù)據。
3.根據權利要求I所述的方法,還包括 發(fā)送對接收源數(shù)據庫的時間點拷貝的請求。
4.根據權利要求I所述的方法,其中所述源數(shù)據庫是生產數(shù)據庫的存儲級快照。
5.根據權利要求I所述的方法,其中所述源數(shù)據庫是復制生產數(shù)據庫的備用數(shù)據庫。
6.根據權利要求I所述的方法,其中所述虛擬數(shù)據庫為第一虛擬數(shù)據庫,并且所述源數(shù)據庫為第二虛擬數(shù)據庫。
7.根據權利要求I所述的方法,還包括 將所述源數(shù)據庫與用于管理所述源數(shù)據庫的時間點拷貝的預定策略進行關聯(lián)。
8.根據權利要求7所述的方法,其中所述預定策略指定用于接收所述源數(shù)據庫的時間點拷貝的時間表。
9.根據權利要求8所述的方法,其中所述時間表指定用于接收所述源數(shù)據庫的時間點拷貝的日歷日。
10.根據權利要求7所述的方法,其中所述預定策略指定用于在保留時段之后清除所述時間點拷貝的時間表。
11.根據權利要求7所述的方法,其中所述預定策略指定基于所述存儲系統(tǒng)上的空間可用性來清除所述時間點拷貝。
12.根據權利要求I所述的方法,其中所述存儲系統(tǒng)在虛擬機上運行。
13.根據權利要求I所述的方法,還包括 向與所述源數(shù)據庫相關聯(lián)的生產數(shù)據庫系統(tǒng)發(fā)送程序代碼,其中所述程序代碼被配置成發(fā)送所述源數(shù)據庫的時間點拷貝。
14.根據權利要求I所述的方法,還包括 從所述源數(shù)據庫接收描述事務日志的信息, 其中所述事務日志代表自從接收到先前時間點拷貝起對所 述源數(shù)據庫的改變。
15.根據權利要求I所述的方法,還包括 從所述源數(shù)據庫接收描述事務日志的信息,其中描述事務日志的信息代表自從先前接收到描述事務日 志的信息起對所述源數(shù)據庫的改變。
16.根據權利要求15所述的方法,還包括 基于預定策略管理與所述源數(shù)據庫相關聯(lián)的事務日志。
17.根據權利要求15所述的方法,其中所述預定策略指定用于接收所述源數(shù)據庫的事務日志的時間表。
18.根據權利要求8所述的方法,其中所述時間表指定用于接收所述源數(shù)據庫的事務日志的日歷日。
19.根據權利要求7所述的方法,其中所述預定策略指定用于在保留時段之后清除所述事務日志的時間表。
20.根據權利要求7所述的方法,其中所述預定策略指定基于所述存儲系統(tǒng)上的空間可用性來清除所述事務日志。
21.根據權利要求I所述的方法,其中所述數(shù)據庫服務器為第一數(shù)據庫服務器,并且所述源數(shù)據庫用于第二數(shù)據庫服務器,并且所述第一數(shù)據庫的版本不同于所述第二數(shù)據庫服務器的版本。
22.根據權利要求I所述的方法,其中所述數(shù)據庫服務器為第一數(shù)據庫服務器,并且所述源數(shù)據庫用于第二數(shù)據庫服務器,并且所述第一數(shù)據庫服務器在與所述第二數(shù)據庫服務器在其上運行的操作系統(tǒng)不同的操作系統(tǒng)上運行。
23.根據權利要求I所述的方法,其中所述文件集為第一文件集,所述虛擬數(shù)據庫為第一虛擬數(shù)據庫,并且所述數(shù)據庫服務器為第一數(shù)據庫服務器,所述方法還包括 創(chuàng)建第二虛擬數(shù)據庫的第二文件集,所述第二文件集中的每個文件鏈接到所述存儲系統(tǒng)上的、與所述源數(shù)據庫的所述時間點拷貝相關聯(lián)的所述數(shù)據庫塊;以及 在第二數(shù)據庫服務器上裝配與所述第二虛擬數(shù)據庫相關聯(lián)的所述第二文件集,從而允許所述第二數(shù)據庫服務器從所述第二文件集讀取和向所述第二文件集寫入。
24.根據權利要求23所述的方法,其中與所述第一文件集相關聯(lián)的所述存儲的數(shù)據庫塊中的至少ー些數(shù)據庫塊也與所述第二文件集相關聯(lián)。
25.根據權利要求23所述的方法,還包括 從所述數(shù)據庫服務器接收對向所述第一虛擬數(shù)據庫寫入數(shù)據的請求; 標識與和所述第一虛擬數(shù)據庫相關聯(lián)的所述第一文件集中的文件相關聯(lián)的數(shù)據庫塊。
26.根據權利要求I所述的方法,其中所述文件集為第一文件集,所述虛擬數(shù)據庫為第一虛擬數(shù)據庫,所述數(shù)據庫服務器為第一數(shù)據庫服務器,并且所述時間點拷貝為第一時間點拷貝,所述方法還包括 創(chuàng)建第二虛擬數(shù)據庫的第二文件集,所述第二文件集中的每個文件鏈接到所述存儲系統(tǒng)上的、與所述源數(shù)據庫的第二時間點拷貝相關聯(lián)的所述數(shù)據庫塊;以及 在第二數(shù)據庫服務器上裝配與所述第二虛擬數(shù)據庫相關聯(lián)的所述第二文件集,從而允許所述第二數(shù)據庫服務器從所述第二文件集讀取和向所述第二文件集寫入。
27.根據權利要求25所述的方法,其中與所述第一文件集相關聯(lián)的所述存儲的數(shù)據庫塊中的至少ー些數(shù)據庫塊也與所述第二文件集相關聯(lián), 響應于所述數(shù)據庫塊也與和所述第二虛擬數(shù)據庫相關聯(lián)的所述第二文件集相關聯(lián),拷貝所述數(shù)據庫塊;以及 將所述拷貝的數(shù)據庫塊與所述文件進行鏈接,并且向所述拷貝的數(shù)據庫塊寫入所述數(shù)據。
28.根據權利要求I所述的方法,其中接收時間點拷貝包括接收與所述時間點拷貝對應的數(shù)據流,其中每個數(shù)據流包括來自與所述源數(shù)據庫相關聯(lián)的數(shù)據庫塊的數(shù)據。
29.根據權利要求28所述的方法,還包括 分析接收的所述數(shù)據流以標識數(shù)據庫塊;以及 存儲所述標識的數(shù)據庫塊。
30.根據權利要求28所述的方法,其中與第一時間點拷貝對應的數(shù)據流包括所述源數(shù)據庫中的、自從接收到先前時間點拷貝起改變的數(shù)據庫塊。
31.根據權利要求28所述的方法,還包括 分析接收的所述數(shù)據流以標識數(shù)據庫塊,以及分析數(shù)據庫塊的元數(shù)據以確定所述數(shù)據庫塊的長度以用于處理所述數(shù)據流。
32.根據權利要求28所述的方法,還包括 分析接收的所述數(shù)據流以標識數(shù)據庫塊,以及分析數(shù)據庫塊的元數(shù)據以確定是否需要存儲所述數(shù)據庫塊。
33.根據權利要求28所述的方法,還包括 分析接收的所述數(shù)據流以標識數(shù)據庫塊,以及確定不存儲作為暫時數(shù)據庫塊、空數(shù)據庫塊或者自從先前取回所述源數(shù)據庫的時間點拷貝起未改變的數(shù)據庫塊中的ー個的所述數(shù)據庫塊。
34.根據權利要求15所述的方法,還包括 在分級存儲器存儲設備中存儲描述所述事務日志的所述信息
35.根據權利要求I所述的方法,其中裝配所述文件集獨立于存儲協(xié)議。
36.根據權利要求I所述的方法,還包括 在所述存儲系統(tǒng)上存儲之前壓縮所述數(shù)據庫塊。
37.根據權利要求I所述的方法,其中所述源數(shù)據庫為生產數(shù)據庫的部分。
38.根據權利要求37所述的方法,其中所述生產數(shù)據庫的所述部分包括表空間。
39.根據權利要求37所述的方法,其中所述生產數(shù)據庫的所述部分至少包括數(shù)據庫表。
40.根據權利要求I所述的方法,其中與所述文件集鏈接的所述數(shù)據庫塊包括所述源數(shù)據庫的部分。
41.根據權利要求I所述的方法,其中與所述文件集鏈接的所述數(shù)據庫塊至少包括與所述源數(shù)據庫相關聯(lián)的數(shù)據庫表。
42.根據權利要求I所述的方法,其中所述虛擬數(shù)據庫是允許訪問所有信息的特許虛擬數(shù)據庫。
43.根據權利要求I所述的方法,其中所述虛擬數(shù)據庫是允許訪問被視為非敏感信息的信息子集的非特許虛擬數(shù)據庫。
44.根據權利要求43所述的方法,其中所述虛擬數(shù)據庫是屏蔽了敏感信息的非特許虛擬數(shù)據庫。
45.根據權利要求I所述的方法,還包括 將時間點拷貝與書簽令牌進行關聯(lián);以及 指定所述書簽令牌以指定用于在創(chuàng)建虛擬數(shù)據庫時使用的所述源數(shù)據庫的所述時間點拷貝。
46.根據權利要求44所述的方法,還包括 存儲所述書簽令牌。
47.根據權利要求I所述的方法,還包括 將所述虛擬數(shù)據庫與ー個或者多個特權進行關聯(lián),所述特權指定信息對具有給定特權的用戶的可訪問性。
48.根據權利要求I所述的方法,其中特權為以下特權之一 允許策略管理的管理員特權; 允許供給VDB的所有者特權;以及 允許查看與VDB相關聯(lián)的信息的審計者特權。
49.一種用于創(chuàng)建虛擬數(shù)據庫的計算機實施的系統(tǒng),所述系統(tǒng)包括 計算機處理器;以及 計算機可讀存儲介質,其存儲配置成在所述計算機處理器上執(zhí)行的計算機程序模塊,所述計算機程序模塊包括 時間點拷貝管理器模塊,配置成 接收源數(shù)據庫的不同時間點拷貝,所述源數(shù)據庫包括多個數(shù)據庫塊; 存儲分配管理器模塊,配置成 在存儲系統(tǒng)上存儲所述源數(shù)據庫的多個不同時間點拷貝的數(shù)據庫塊,其中所述存儲的數(shù)據庫塊中的至少ー些數(shù)據庫塊與所述源數(shù)據庫的多個時間點拷貝相關聯(lián); 虛擬數(shù)據庫管理器模塊,配置成 創(chuàng)建虛擬數(shù)據庫的文件集,所述文件集中的每個文件鏈接到所述存儲系統(tǒng)上的、與所述源數(shù)據庫的時間點拷貝相關聯(lián)的所述數(shù)據庫塊;以及文件共享管理器模塊,配置成 在數(shù)據庫服務器上裝配與所述虛擬數(shù)據庫相關聯(lián)的所述文件集,從而允許所述數(shù)據庫服務器從所述文件集讀取和向所述文件集寫入。
50.根據權利要求49所述的系統(tǒng),其中所述虛擬數(shù)據庫管理器模塊還被配置成 從所述數(shù)據庫服務器接收針對與所述虛擬數(shù)據庫相關聯(lián)的所述文件集中的數(shù)據的讀取請求; 訪問與所述文件集中的文件相關聯(lián)的至少ー個數(shù)據庫塊中的數(shù)據;以及 響應于所述讀取請求,發(fā)送所述數(shù)據。
51.根據權利要求49所述的系統(tǒng),其中所述虛擬數(shù)據庫管理器模塊還被配置成 從所述數(shù)據庫服務器接收對向所述第一虛擬數(shù)據庫寫入數(shù)據的請求; 標識與和所述第一虛擬數(shù)據庫相關聯(lián)的所述第一文件集中的文件相關聯(lián)的數(shù)據庫塊; 響應于所述數(shù)據庫塊也與和所述第二虛擬數(shù)據庫相關聯(lián)的所述第二文件集相關聯(lián),拷貝所述數(shù)據庫塊;以及將所述拷貝的數(shù)據庫塊與所述文件進行關聯(lián),并且向所述拷貝的數(shù)據庫塊寫入所述數(shù)據。
52.根據權利要求49所述的系統(tǒng),其中所述時間點拷貝管理器模塊還被配置成 發(fā)送對接收源數(shù)據庫的時間點拷貝的請求。
53.根據權利要求49所述的系統(tǒng),其中所述時間點拷貝管理器模塊接收包括數(shù)據流的時間點拷貝,其中數(shù)據流包括來自所述源數(shù)據庫的數(shù)據庫塊的數(shù)據。
54.根據權利要求49所述的系統(tǒng),其中所述時間點拷貝管理器模塊還被配置成 分析接收的所述數(shù)據流以標識待存儲的數(shù)據庫塊。
55.根據權利要求49所述的系統(tǒng),其中所述數(shù)據流包括所述源數(shù)據庫中的、自從接收到先前時間點拷貝起改變的數(shù)據庫塊。
56.ー種具有計算機可讀存儲介質的計算機程序產品,所述計算機可讀存儲介質存儲用于創(chuàng)建虛擬數(shù)據庫的計算機可執(zhí)行代碼,所述代碼包括 時間點拷貝管理器模塊,配置成 接收源數(shù)據庫的不同時間點拷貝,所述源數(shù)據庫包括多個數(shù)據庫塊; 存儲分配管理器模塊,配置成 在存儲系統(tǒng)上存儲所述源數(shù)據庫的多個不同時間點拷貝的數(shù)據庫塊,其中所述存儲的數(shù)據庫塊中的至少ー些數(shù)據庫塊與所述源數(shù)據庫的多個時間點拷貝相關聯(lián); 虛擬數(shù)據庫管理器模塊,配置成 創(chuàng)建虛擬數(shù)據庫的文件集,所述文件集中的每個文件鏈接到所述存儲系統(tǒng)上的與所述源數(shù)據庫的時間點拷貝相關聯(lián)的所述數(shù)據庫塊;以及文件共享管理器模塊,配置成 在數(shù)據庫服務器上裝配與所述虛擬數(shù)據庫相關聯(lián)的所述文件集,從而允許所述數(shù)據庫服務器從所述文件集讀取和向所述文件集寫入。
57.一種用于創(chuàng)建虛擬數(shù)據庫系統(tǒng)的方法,所述方法包括 接收多個源數(shù)據庫的時間點拷貝,每個源數(shù)據庫包括多個數(shù)據庫塊; 在存儲系統(tǒng)上存儲所述多個源數(shù)據庫的所述時間點拷貝的數(shù)據庫塊,其中所述存儲的數(shù)據庫塊中的至少ー些數(shù)據庫塊與來自所述多個源數(shù)據庫的源數(shù)據庫的多個時間點拷貝相關聯(lián); 創(chuàng)建虛擬數(shù)據庫的文件集,所述文件集鏈接到所述存儲系統(tǒng)上的、與所述多個源數(shù)據庫的時間點拷貝相關聯(lián)的所述數(shù)據庫塊;以及 在數(shù)據庫服務器上裝配與所述虛擬數(shù)據庫相關聯(lián)的所述文件集,從而允許所述數(shù)據庫服務器從所述文件集讀取和向所述文件集寫入。
全文摘要
取回并且在數(shù)據庫存儲系統(tǒng)上存儲來自多個數(shù)據庫的信息。為每個數(shù)據庫獲得多個時間點拷貝。時間點拷貝取回數(shù)據庫中的自從取回先前時間點拷貝起改變的數(shù)據。通過在數(shù)據存儲系統(tǒng)中創(chuàng)建文件集來創(chuàng)建虛擬數(shù)據庫(VDB)。為VDB創(chuàng)建的文件集中的每個文件鏈接到數(shù)據庫存儲系統(tǒng)上的、與源數(shù)據庫的時間點拷貝相關聯(lián)的數(shù)據庫塊。在數(shù)據庫服務器上裝配與VDB相關聯(lián)的文件集,從而允許數(shù)據庫服務器從文件集讀取和向文件集寫入?;赩DB的工作流允許高效地實施基于數(shù)據庫的各種使用場景,例如,測試和開發(fā)、備份和恢復以及數(shù)據倉庫構建。
文檔編號G06F7/00GK102667711SQ201080058431
公開日2012年9月12日 申請日期2010年10月15日 優(yōu)先權日2009年10月21日
發(fā)明者C·L·扎, J·岳 申請人:戴爾菲克斯公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
囊谦县| 大港区| 新泰市| 东源县| 论坛| 巴塘县| 资源县| 张家川| 枣阳市| 延川县| 株洲市| 平度市| 夹江县| 巨野县| 班戈县| 会理县| 保德县| 化德县| 镇原县| 仁化县| 青龙| 来凤县| 北碚区| 城步| 武川县| 青浦区| 岑溪市| 上杭县| 吉木萨尔县| 丹寨县| 天峻县| 分宜县| 南安市| 小金县| 凉城县| 桓台县| 囊谦县| 博野县| 海林市| 通城县| 南开区|