亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

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

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


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