从整体数据库备份中备份并恢复所选的有版本的对象的制作方法

xiaoxiao2020-7-22  4

专利名称:从整体数据库备份中备份并恢复所选的有版本的对象的制作方法
技术领域
本发明涉及计算机备份与恢复的领域,并且具体的涉及一种用于从整体数据库备份(monolithic database backup)中选择性地恢复有版本的对象的方法和系统。
背景技术
对信息以及以不同的形式产生、处理、分配、和维持此类信息的计算系统的不断增长的依赖继续对于存储、备份、以及恢复此类信息的多种技术提出巨大需求。随着商界采用多种技术用于遍及整个企业来集中信息资源以便使之能够进行协调和文档管理,此类信息的存储、备份和恢复对于企业的运转而言变得更加关键。在一个典型的企业级的合作和文档管理平台中,来自一个或多个面向用户的应用程序对象的数据可以被存储在一个集中式的存储对象(例如一个数据库)之中。维持来自多种应用程序对象的数据的数据库可以被配置为维持由这些应用程序对象所施加的数据关系或层级结构。这种数据库还可以被配置为存储数据对象(例如,文档或列表项)的多种版本。任何用于这样一种数据库的备份和恢复方案必须维持由这些应用程序对象所创建的数据关系和层级结构,并且能够管理多种数据对象版本的恢复。对这样一种数据库进行备份和恢复的传统方法是人力和资源密集的。例如,假定在数据库中有大批的基于应用程序对象的区域,那么备份管理员将有责任知道并选择那些需要保护的数据库部分。对于数据保护的这种预先的、粒度的方式要求备份管理员(他可能并不是数据库管理员)知道数据库的拓扑结构以便为一个特定的应用程序对象建立一种保护机制。另外,对一个应用程序的层级性对象结构所做出的任何改变都需要在那些改变发生时由备份管理员将其考虑在内。这种传统的备份途径被称为粒度备份方案,因为在数据库中与每个应用程序对象相关联的这些区域是被分别地进行备份的。在粒度备份方案下,可以合理地将目标确定为恢复与一个特定的应用程序对象相关的数据,因为每个应用程序对象具有它自己的备份集合。一种替代的备份方法是将整个数据库整体地备份。从数据库的这样一种整体备份中恢复数据的一种传统的方法是将整个数据库快照恢复到一个临时区域上并且然后从数据库中选择所希望的信息以便包括一个有效的目标数据库。数据选择的这样一种后端方法的缺点是它要花费时间从一个数据库备份中恢复所有的数据、然后再从中选择所希望的信息并且数据库的临时复本消耗了硬盘资源。因此,令人希望的是得到一种机制,该机制实现将整个数据库整体地备份的效率, 从而不要求备份管理员熟悉正在备份的数据库的结构。进一步令人希望的是当希望时用户能够选择性地恢复所备份的数据库的多个部分以便加快恢复时间。同样令人希望的是这种恢复机制能够区分那些有版本的已备份对象并且能够以一种与该协调和文档管理平台的正常运行相兼容的方式来恢复那些版本。

发明内容
本发明的多个实施方案提供了一种机制,该机制选择性地恢复存储在数据库的整体备份中的一个应用程序对象的一个版本,同时维持该数据库的被恢复部分的层级结构的以及其他的元数据关系。本发明的多个实施方案提供了一种方法、系统和计算机可读存储媒质,它们提供了一种机制,该机制用于接收从数据库备份中的多个已备份对象中恢复一个所选对象的一个版本的一个请求,在该备份中对与所选对象相关联的信息进行定位,并且使用与所选对象相关联的信息将所选对象的版本恢复到一个目标存储区域上。本发明的多个方面使用在创建该备份时从所备份的数据库中收集的数据库表元数据以便对与所选对象相关联的信息进行定位。本发明的以上实施方案的另一个方面提供了将在目标存储区域中找到的所选对象的一个当前版本复制到该存储区域中的一个第二对象上,并且然后将所选对象的所请求的版本恢复为所选对象的当前版本。本发明的以上实施方案的另一个方面提供了将所选对象的每个版本恢复到该目标存储区域上。本发明的以上实施方案的其他方面提供了使用数据库表元数据来确定一个数据库表在该数据库的备份中的位置和结构,读取所备份的数据库表,并且如果与该数据库表相关联的一个对象是有版本的,则读取与该数据库表相关联的一个版本表,并且收集与该对象的每个版本相关联的信息。


通过参见附图可以更好地理解本发明,并且使其众多的目的、特征和优点对本领域的技术人员而言变得清楚。图1是一个简化框图,展示了一种可配置为采用本发明的多个实施方案的网络的实例。图2是一个简化框图,展示了一种在数据库中的对象布局的实例,该数据库可与本发明的多个实施方案一起使用。图3是一个简化流程图,展示了根据本发明的多个实施方案的一个备份过程。图4是一个简化流程图,展示了根据本发明的多个实施方案的用于从一个已备份数据库中选择有待恢复的对象的一个过程。图5是一个简化流程图,展示了根据本发明的多个实施方案的所选对象的数据库恢复操作。图6描绘了一种计算机系统的框图,该计算机系统适合用于实施本发明的多个实施方案。图7是一个框图,描绘了一种适合用于实施本发明的多个实施方案的网络体系结构。
具体实施例方式本发明的多个实施方案提供了一种机制,该机制用于从存储应用程序对象数据的数据库的整体备份中选择性地恢复应用程序对象数据。本发明的多个实施方案通过在数据库备份时识别存储在数据库中的元数据来提供这种能力,该元数据描述了该应用程序对象数据、该应用程序对象数据存储其中的结构、以及那些结构之间的相互关系。本发明的多个实施方案可以存储关于有待在恢复操作过程中使用的这种元数据的信息。在一个恢复操作过程中,本发明的多个实施方案可以访问与元数据有关的已存储信息并且使用该信息来直接访问数据库备份中的元数据。本发明的多个实施方案使用所访问的元数据向用户恢复数据提供对从数据库中备份的数据以及此类数据之间的关系(例如,数据结构的层级结构以及该数据是否是有版本的)的描述。本发明的多个实施方案可以进一步访问从来自数据库备份的这样一种描述中所选择的数据并且将该信息恢复到一个目标数据库上。以此方式, 能够以一种整体的方式高效率地对包括来自一个或多个应用程序对象的数据的一个数据库进行备份,并且然后以一种有目标的方式高效率地将其恢复。另外,由于备份管理员不需要熟悉正在对其进行备份的数据库的结构,而是将熟悉结构的任务留给要恢复一个特定的数据集的人,所以人力资源更有效率地得到利用。 图1是一个简化框图,展示了一种可配置为采用本发明的多个实施方案的网络的实例。数据库服务器110被直接地或间接地连接到存储了数据库120的多个存储卷上。在数据库120中存储数据的一个或多个应用程序对象可以访问数据库120。数据库服务器 110连接到网络130上,该网络提供了去向以及来自该数据库服务器的访问。网络130典型地是用于一个机构的企业级网络,并且可以包括但不限于局域网、城域网、广域网、以及类似的网络。网络130可以由标准的网络硬件和协议(包括,例如,以太网路由器、光缆等等)来支持。网络130还可以连接企业的一个或多个位置中的计算机设备(例如,客户端 140 (1)-(N)),由此提供从那些客户端到数据库服务器110的通信。图1所示的网络还连接到网络服务器150上。网络服务器150可以提供到一个应用程序的用户访问,该应用程序与一个或多个应用程序对象相关联。网络130可以具有一个或多个网络服务器150,它们各自提供一个分离的应用程序或者提供分布同一个应用程序的多个网络服务器。网络服务器150通过与数据库服务器110进行通信来提供一个应用程序对象模型以便访问存储在数据库120中的数据。在网络服务器150与数据库服务器110 之间的此类通信可以是通过一个应用程序接口(API),该应用程序接口由多个应用程序对象所共享,这些应用程序对象由网络服务器150和数据库服务器110提供服务。备份服务器160被连接到网络130上并且被配置为将存储在网络130上的数据的备份图像存储在一个或多个备份存储卷170中。备份服务器160可以被配置为运行多种类型的备份实用程序,在进行备份时,这些备份实用程序提供了网络上数据的多个快照。例如,备份服务器160可以通过经由数据库服务器110直接访问数据来对数据库120进行备份。以此方式,可以通过数据库服务器的SQL接口进行数据库120的完全整体备份而无论存储在该数据库内的特定的数据结构如何。可替代地,如果希望对数据库120的一个特定的部分进行备份,备份服务器160可以通过相关联的应用程序的网络服务器150来访问一个具体的应用程序对象的数据。以此方式,可以进行对存储在数据库120中的一个具体的应用程序对象的粒度备份。如上所述,进行粒度备份不利的一面是消耗了与该具体的应用程序相关联的网络服务器150的资源。这种对网络服务器资源的消耗可能在备份时间过程中减缓或停止对所服务的应用程序的访问。通过经由数据库服务器110直接对数据库进行备份,避免了消耗网络服务器资源。但是,在传统的备份方案中,然后只能通过恢复整个数据库并且然后从所恢复的数据中选择数据来实现特定的应用程序对象数据的恢复。这样的恢复和选择操作既消耗了时间又消耗了物理资源(例如,要求用于存储被完整恢复的备份的磁盘空间)。图2是一个简化框图,展示了在数据库120中的一种对象布局的实例,该数据库可与本发明的多个实施方案联合使用。数据库120包含被标识为站点(I)-(P)的一个或多个容器。每个站点可以与一个特定的应用程序相关联。因此每个站点是一个应用程序对象, 该应用程序对象具有由该站点与一个具体的应用程序的关联所定义的一个唯一的特征集。 一个站点可以具有(例如)一个相关联的URL、一个唯一的标识符、一个所有者标识符、相关联的安全信息、相关联的磁盘配额和磁盘使用信息、等等。一个或多个站点可以与一个具体的应用程序相关联,这取决于该应用程序的性质。站点可以与其他的容器相关联。例如,站点(2)包括两个子站点容器子站点(2, 1)和子站点0,2)。每个子站点可以包括描述该子站点的相关联的信息,如以上对于一个站点所述的。尽管每个子站点与父站点相关联,但这些子站点本身是不连接的对象。站点和子站点可以进一步包含其他的应用程序对象。一个此类应用程序对象的实例是一个列表,该列表也是一个容器。图2展示了站点(1)具有多个相关联的列表对象 (例如,列表(1,1)和列表(1,2))。子站点(2,1)也具有多个相关联的列表(例如,列表 (2,1,1)和列表0,1,2))。另一方面,子站点(2,2)具有一个单一的列表(例如,列表(2, 2,1))。列表对象也可以具有相关联的信息,该信息可以包括(例如)该列表所属站点的标识符、该列表的名称、创建日期和时间信息、安全信息、该列表的类型(例如,存储在该列表中的信息的类型),等等。除了与列表直接相关联的此类特征,列表还可以继承与包含该列表的站点和/或子站点相关联的多个特征。因此,例如,列表可以获得与该列表相关联的站点相关联的安全保护。如图2所示,列表可以包含多个相关联的项或数据对象。每个列表可以与一种特定类型的项相关联。项对象可以具有多个相关联的特征,比如将该项与一个具体的列表和/ 或站点相关联的标识符、输入或修改该项的一个用户的标识符、与该项相关联的数据类型、 以及该项对象的值。同样,一个项也可以继承该项所属的列表和/或该项相关联的站点或子站点的多种特征。与列表类似的一个容器是一个文档对象(例如,文档(1,1))。文档容器包含多个文档对象,它们可以是任何类型的文件。另外,文档可以是有版本的;这就是说,这个文档的多个版本可以由数据库来维持。例如,除了一个文档的当前版本,该文档的多个版本可以被维持在一个文档版本对象中(例如,文档版本(1,1))。类似地,列表项可以是有版本的(例如,每当一个项改变时,该项的前一个版本就被维持在一个对应的版本表中)。数据库120不仅能够存储这些容器以及它们相关联的数据,并且还能够存储这些容器的元数据描述以及它们相关联的数据,包括它们的相互关系。数据库120可以将此类元数据存储在与列表、项、站点、和子站点、等等相关联的表中。确实,对于存储在数据库120 内的每种类型的应用程序对象可以提供一个分离的元数据表。使用如所述的数据库的系统的一个实例是微软公司的SharePoint 应用程序。尽管本发明的多个实施方案并不限于同SharePoint 数据库联合使用,本发明的多个实施方案可以与SharePoint 数据库一起使用,并且以下将使用SharePoint 术语来提供多个实例。应当理解,使用此类术语并非意在是限制性的,并且本发明的多个实施方案可以与将数据存储在数据库环境下的多个对象中的多种应用程序一起使用。应当进一步注意,在多个站点、子站点、列表及项之间的关系是一种层级性关系。 如以上讨论的,在一个应用程序对象层级结构内的子对象可以继承父对象的多个特征。另夕卜,使用以上讨论的容器的类比,一个子容器对象(比如一个列表)被包含在一个父子站点或父站点内。因此,为了将子对象恢复到一个目标数据库上,必须首先恢复任何尚未被恢复的父对象以便将该子对象适当地并且完整地恢复到该目标数据库内。这允许该子对象既被适当地放置在层级结构中并且从该子对象的父对象中继承多个特征。图3是一个简化流程图,展示了根据本发明的多个实施方案的备份过程。备份服务器160可以接收对数据库120进行备份的一个请求(310)。此时,发起了两个过程。这些过程可以同时发生或者顺序地发生,但是在时间上要足够接近使得数据库120的结构是相同的。对数据库进行了整体备份(320)。这样的一个备份可以是数据库120的一个快照,该快照包括备份时与该数据库相关的所有信息。该整体备份是使用在备份服务器与数据库服务器之间的直接交互来进行的。这个备份不是使用由(例如)网络服务器150提供的应用程序对象模型来进行的。此外,可以就元数据表信息来询问数据库120(330)。元数据表信息包括有关表的信息,这些表包含了数据库120内的不同对象结构的特征。所寻找的表信息可以包括(例如)这个表的索引、表在数据库内的偏移(例如,表的位置)、表的名称、以及表的结构。以此方式,对识别并定位每个表的信息进行收集,这些表描述了数据库120内的感兴趣的对象。本发明的多个实施方案收集这种元数据表信息,这样使得在恢复操作时能够访问这些表。因此,收集了足够的信息以允许此类元数据表访问,但不是实际存储在这些表本身中的信息。一旦收集了元数据表信息,可以存储该元数据表信息(340)。此类存储可以采取 (例如)多个表的一份清单的形式。在题为“用于恢复应用程序级别的对象的技术”的未决美国专利申请序列号11/960,309中说明了可以进行此类访问并存储元数据表信息的一个实用程序的实例,该申请通过引用以其所披露的全部内容结合在此。一旦备份完成并且元数据表信息已经被存储,该元数据表信息与数据库的备份就是相关联的(350)。这样一种关联使之能够在恢复操作过程中访问所存储的元数据表信息的清单。图4是一个简化流程图,展示了根据本发明的多个实施方案的用于从一个已备份数据库中选择有待恢复的对象的过程。响应于从一个特定的备份中恢复应用程序对象信息的一个用户请求,恢复实用程序可以读取与该特定的备份相关联的元数 据表信息以便确定描述了该备份中的多个应用程序对象的多个表的位置和结构(410)。然后该恢复实用程序可以使用该元数据表信息从该备份中直接读取与不同的容器相关联的表数据(415)。当该恢复实用程序走过每个容器以及与该容器相关联的多个项时,就在该表中描述的当前对象是否是有有版本的做出一个决定(420)。这就是说,在备份时,所备份的数据库是否存储了当前对象的多于一个的版本。例如,在微软公司 &SharePoint 环境中,列表项和文档可以是有版本的。如果当前对象是有版本的,则使用元数据表信息来对一个与当前容器相关联的版本表进行定位,并进行读取(425)。该恢复实用程序然后对与当前对象相对应的有版本的对象的一个列表进行缓存(430)。
在对一个当前对象的多个有版本的对象的列表进行缓存或确定当前对象不是有版本的之后,然后可以就当前对象是否是当前容器中的最后一个对象做出一个决定(435)。 如果当前对象不是当前容器中的最后一个对象,则该恢复实用程序进行到当前容器中的下一个对象(440)并且重复该版本化确定过程。一旦完成了对一个容器中的对象的检查,将这些缓存的有版本的对象与它们相应的当前对象以升序相关联045)。将多个有版本的对象以升序在缓存器中列出,这样使之能够以适当的顺序恢复那些有版本的对象(如果被选择),这将在以下更完整地进行讨论。应当注意,将多个有版本的对象以升序进行排序的动作或者可以发生在缓存过程中(430)或者可以发生在与当前对象相关联的过程中045)。然后,就是否已经检查了最后一个容器做出决定G50),并且如果不是,则该恢复过程进行到下一个容器(45 并且重复上述过程。一旦已经读取了与该备份中的所有容器相关的表,则可以对该数据进行解读以便确定该数据库备份内的应用程序对象的层级结构 (460) 0然后所解读的对象层级结构可以显示给一个用户070)。在有版本的对象的情形中,层级性列表可以首先显示对象的当前版本随后是相关联的有版本的对象的一个升序列表。然后用户可以审查所显示的对象层级结构以便确定用户想要恢复的那些对象。用户可以选择在层级结构的任何级别上的一个或多个对象。对于有版本的对象,用户可以选择恢复这个有版本的对象的所有或任何一个版本。图5是一个简化流程图,展示了根据本发明的多个实施方案的对由图4的操作提供的所选对象的数据库恢复操作。一旦用户选择了所希望的有待恢复的对象,恢复实用程序就接收这些对象选择(510)。此时,恢复实用程序对恢复每个所选对象所必需的层级结构中的所有对象进行恢复。例如,如果选择了一个列表对象,则与该列表对象相关联的任何站点或子站点对象也要经历恢复操作。如以上讨论的,这是因为一个列表对象(作为一个站点对象的子对象)继承了父对象的某些特征。因此,这个恢复实用程序经过一系列的步骤来恢复这种层级结构。对于恢复一个所选对象所必需的层级结构中的顶层对象成为第一个有待恢复的对象(515)。恢复实用程序从与有待恢复的对象相关的备份中读取元数据表数据(520)。 同样,从与该备份相关联的元数据表信息中获取对与这个有待恢复的对象相关联的适当的元数据表进行定位所必需的信息。然后就在这个目标数据库中是否已经存在有待恢复的对象的一个版本做出决定(530)。如果在目标数据库中已经存在有待恢复的对象的一个版本,则将在该目标数据库中的有待恢复的对象的当前版本移动到目标数据库中的一个相应的版本表上(535)。然后可以使用从备份中读取的表数据将有待恢复的对象恢复到目标数据库中作为该对象的当前版本(540)。如果在该目标数据库中先前没有这个有待恢复的对象的一个版本,则就该目标数据库中是否已经存在有待恢复的对象本身做出一个决定(545)。如果在该目标数据库中尚未存在有待恢复的对象,则使用从该备份中读取的表数据在该目标数据库中创建这个有待恢复的对象(550)。可以通过将与该对象相关的信息提供给一个由(例如)网络服务器150 所服务的应用程序对象模型来进行这个有待恢复的对象的恢复。通过使用该应用程序对象模型在该目标数据库中生成该有待恢复的对象,保证了对象结构与它们相关联的应用程序的一致性。可替代地,如果有待恢复的对象是数据,比如列表或文档项,则此类对象可以通过(例如)在数据库服务器110上的SQL命令来直接恢复。
在目标数据库中创建了该对象、进行了与一个有版本的文档相关联的恢复操作、 或者确定了该对象已经被恢复之后,就这个有待恢复的对象是否与用户选择用于恢复的对象相同做出一个决定(555)。如果这个有待恢复的对象不是用户所选的对象,则选择下一个有待恢复的对象,该对象是在恢复所选对象所必需的层级结构中的下一个对象(560)。然后,处理过程再次返回从与这个新的有待恢复的对象相关的备份中读取表数据(520)并且如上所述重复该过程。如果有待 恢复的对象是用户所选的对象(555),则就所选对象是否是用户的最后一个所选对象做出一个决定(565)。这就是说,就现在是否已经恢复了用户所选的每个对象做出一个决定。如果不是,则将下一个所选对象作为有待恢复的目标,并且该过程返回到确定恢复该下一个所选对象所必需的层级结构中的顶层对象(515),并且如上所述重复该过程。如果所选对象是用户所选的最后一个对象(565),则该恢复过程完成。通过使用上述恢复方法,可以将支持一个已备份数据库中的一个所选对象所必需的整个层级结构恢复到一个目标数据库中。此外,通过访问在数据库备份内存储的表来恢复该对象的所有特征,这些表包含了描述所请求的对象所必需的特征。如果需要在目标数据库中创建一个对象(例如,步骤550),该恢复实用程序可以访问与该对象相关联的一个应用程序网络服务器150以便使用从备份表中提取的特征信息在目标数据库中创建这个对象。以此方式,对于应用程序访问该对象所必需的结构可以通过应用程序对象模型来自动地创建,并且同时从该备份中提供描述该对象所必需的特征信息。使用这样一种恢复技术,可以在目标数据库中创建多个容器,这些容器具有与已备份数据库中的相关联容器的相同特征。因此,用户可以在目标数据库中创建与备份数据库中的结构相同的结构,但是该结构对存储在已备份数据库中的数据以外的数据是可供使用的。这就是说,已备份数据库用作该目标数据库的一个模板。还可以将数据从已备份数据库恢复到目标数据库。一旦已经在目标数据库中配置了适当的容器,如果是所希望的,可以直接访问在数据库服务器与备份服务器之间的数据库服务器以便将数据更快速并更有效地恢复到目标数据库的适当结构上。该恢复实用程序以与SharePoint 处理的有版本的对象的方法相一致的方式来恢复此类对象。这就是说,如果用户选择了一个有待恢复的对象的一个版本,所选版本即被恢复为该对象的当前版本。如果在目标数据库中存在该对象的一个当前版本,则将该版本移动到版本表上并且用所恢复的版本将其替换。可替代地,如果用户选择了一个有待恢复的对象的所有版本,则该恢复实用程序能够以所列出的上升顺序来处理有待恢复的对象的每个版本(例如,在步骤445中),由此将每个对象放置在版本化表的版本“栈”的一个适当位置中,并且当恢复到目标数据库时将所备份的当前版本保留为当前版本。尽管图5以及它所伴随的讨论提供了将多个对象从一个已备份数据库存储到一个目标数据库上的实例,应当注意,本发明的多个实施方案并非被限于将多个对象恢复到一个数据库上。已备份数据库可以包括含有多个文档项的多个对象(例如,在SharePoint 数据库中的一个文档表)。使用已备份数据库中的对象所提供的名称和标识符,可以将已备份数据库的层级结构重建为文件系统中的一种目录结构。然后,可以将文档项直接恢复到该目录结构中,而不是一个目标数据库中。一种示例性计算和网络环境
如以上所示出的,可以使用多种计算机系统和网络来实施本发明。以下参见图6 和7描述了一种此类计算和网络环境的实例。图6描绘了一种计算机系统610的框图,该计算机系统适合用于实施本发明的多个方面(例如,客户端140、备份服务器160、数据库服务器110、以及网络服务器150)。计算机系统610包括总线612,该总线将计算机系统610的大多数子系统相互连接,如中央处理器614、系统存储器617(典型地RAM,但是还可以包括ROM、闪存RAM、或类似的存储器)、输入/输出控制器618、外部音频装置(如经由音频输出接口 622的扩音器系统620)、外部装置(如经由显示适配器626的显示屏6M)、多个串行端口 6 和630、键盘632(与键盘控制器633相连接)、存储接口 634、可操作用于接收软盘638的软盘驱动器637、可操作用于与光纤通道网络690相连接的主机总线适配器(HBA)接口卡635A、可操作用于连接到SCSI 总线639上的主机总线适配器(HBA)接口卡635B、以及可操作用于接收光盘642的光盘驱动器640。还包括了鼠标646(或其他指向和点击装置,通过串行端口 6 与总线612相连接)、调制解调器647 (通过串行端口 630与总线612相连接)、以及网络接口 648 (直接与总线612相连接)。总线612允许中央处理器614与系统存储器617之间的数据通信,该系统存储器可以包括只读存储器(ROM)或闪存(均未示出)、以及随机存取存储器(RAM)(未示出), 如以上指出的。RAM总体上是加载操作系统和应用程序的主存储器。ROM或闪存可以包含 (除其他代码之外)基本输入输出系统(BIOS),该系统控制基本硬件操作如与外围部件的交互。驻存在计算机系统610中的多种应用程序总体上存储在计算机可读媒质(如硬盘驱动器(例如,固定盘644)、光盘驱动器(例如,光盘驱动器640)、软盘单元637或其他存储媒质)上并且通过它们进行访问。此外,当通过网络调制解调器647或接口 648来访问时, 应用程序可以是处于根据应用程序和数据通信技术进行调制的电子信号的形式。存储接口 634连同计算机系统610的其他存储接口可以连接到用于信息的存储和/或检索的一种标准计算机可读媒质上,如固定盘驱动器644。固定盘驱动器644可以是计算机系统610的一部分或者可以是分离的并且通过其他接口系统可访问的。调制解调器647可以通过电话链路提供到远程服务器上的直接连接、或者通过互联网服务提供商 (ISP)提供到互联网的直接连接。网络接口 648可以通过一个直接网络链路提供到一个远程服务器的直接连接、或者通过一个POP(存在点)提供到互联网的直接连接。网络接口 648还可以使用无线技术提供此类连接,该无线技术包括数字蜂窝电话连接、蜂窝数字包数据(CDPD)连接、数字卫星数据连接、或类似的连接。许多其他装置或子系统(未示出)能够以类似的方式(例如,文档扫描仪、数码照相机、等等)进行连接。相反,实施本发明并不需要图6中示出的所有装置都存在。这些装置和子系统能够以不同于图6中示出的方式互相连接。如图6中示出的计算机系统的操作在本领域中是公知的并且未在本申请中进行详细讨论。用于实施本发明的编码可以被存储在计算机可读存储媒质中,如系统存储器617、固定盘644、光盘642、或软盘638的一个或多个中。在计算机系统610上提供的操作系统可以是MS- DOS 、MS- WINDOWS 、 OS/ 2 、UNIX 、Linux 、或另一种已知的操作系统。另外,有关在此描述的这些信号,本领域的普通技术人员将会认识到一个信号可以被直接从一个第一方框传送至一个第二方框、或者一个信号在这些方框之间可以被修改(例如,放大、衰减、延迟、锁存、缓存、逆转、过滤、或其他方式的修改)。尽管以上描述的实施方案的这些信号的特征是从一个方框传送到下一个上,本发明的其他实施方案可以包括多种修改的信号来代替此类直接传送的信号,只要在多个方框之间传送了该信号的信息的和/或功能的方面。因为所涉及的电路的物理限制(例如,将不可避免地有某种衰减以及延迟),在某种程度上,在第二方框处的信号输入可以理解为从来自第一方框的一个第一信号输出中得出的一个第二信号。因此,如在此所使用的,从一个第一信号得出的一个第二信号包括该第一信号或对该第一信号的任何修改,无论是因为电路限制或是因为经过了其他电路元件,这些电路元件未改变该第一信号的信息的和/或最终功能性方面。图7是一个框图,它描绘了一种网络体系结构700,其中客户端系统710、720和 730连同存储服务器740A和740B(可以使用计算机系统610实施它们中的任何一个) 被连接到网络750上。存储服务器740A被进一步描绘为具有直接附接的多个存储装置 760A (1) - (N),并且存储服务器740B被描绘为具有直接附接的多个存储装置760B (1) - (N)。 多个存储服务器740A和740B还被连接到SAN光纤通道770上,尽管本发明的操作不要求连接到存储区域网络上。SAN光纤通道770支持由存储服务器740A和740B、以及因此通过网络750由客户端系统710、720和730对存储装置780(1)-(N)的访问。智能存储阵列790 还被示出为通过SAN光纤通道770可访问的一个具体的存储装置的实例。借助于计算机系统610,调制解调器647、网络接口 648或一些其他方法可以被用于提供从客户端计算机系统710、720和730中的每一个到网络750的连接性。例如,客户端系统710、720、和730能够使用例如一个网络浏览器或其他客户端软件(未示出)来访问存储服务器740A或740B上的信息。这样一个客户端允许客户端系统710、720、和730访问由存储服务器740A或740B或存储装置760A (1) - (N)、760B (1) - (N)、780 (1) - (N)之一或智能存储阵列790托管的数据。图7描绘了使用一个网络(如互联网)用于交换数据,但是本发明并不限于互联网或任何具体的基于网络的环境。

其他实施方案本发明良好地适合于获得所提及的优点连同在此包含的其他优点。尽管已经通过参照本发明的具体实施方案来描绘、描述、并限定了本发明,这种参照并非暗示对本发明的限制,并且不得推断出任何此类限制。本发明在形式和功能上能够进行显著的修改、替代、 以及等效物,如相关领域的普通技术人员将会想到的。所描绘和描述的实施方案仅是实例, 并且对本发明的范围不是穷尽的。上文描述了多个实施方案,它们包括被包含在其他部件中的多个部件(例如,不同的元件被示出为计算机系统610的部件)。此类体系结构仅是实例,并且事实上,可以实施许多其他体系结构,它们实现了相同的功能性。在一种抽象的但仍明确的意义上,为了实现相同的功能性的任何部件安排都是有效地“相关联的”从而实现了所希望的功能性。因此,在此为了实现一种具体的功能性而相结合的任何两个部件都可以被看作彼此“相关联的”从而实现了所希望的功能性,而无论体系结构或中间部件如何。同样,如此相关联的任何两个部件还可以被看作彼此“可操作地相连接的”或“可操作地相联接的”以便实现所希望的功能性。上述详细描述已经通过使用框图、流程图、以及实例给出了本发明的不同实施方案。本领域的技术人员将会理解通过使用实例展示的每个框图部件、流程图步骤、操作和/或部件都可以由一个大系列的硬件、软件、固件、或它们的任何组合来单独地和/或共同地实现。例如,可以在用于实现与所述的功能块中的一个或多个相关联的功能的专用集成电路或类似的或相关的电路系统中采用特定的电子元件。本发明已经在完全功能性的计算机系统背景中进行了描述;然而,本领域的普通技术人员将会认识到本发明能够以多种的形式作为程序产品来分发,并且无论用于实际上进行该分发的具体类型的信号承载媒质如何本发明都是同等地适用的。信号承载媒质的实例包括计算机可读存储媒质、传输型媒质如数字的和模拟的通信链路、连同未来研发的媒质存储和分发系统。以上讨论的实施方案可以通过执行某些任务的软件模块来实施。在此讨论这些软件模块可以包括脚本、批数据、或其他可执行文件。在此讨论这些软件模块可以进一步包括一个或多个指令集,该一个或多个指令集是由被配置为执行此类指令的一个处理器可执行的。这些软件模块可以被存储在机器可读或计算机可读存储媒质上,如磁软盘、硬盘、半导体存储器(例如,RAM、ROM、以及闪存类型的媒质)、光盘(例如,CD-ROM、CD-R、以及DVD)、 或其他类型的存储器模块。用于存储根据本发明的一种实施方案的固件或硬件模块的存储装置还可以包括基于半导体的存储器,它可以是永久地、可移除地或远程地与微处理器/ 存储器系统相联接。因此,这些模块可以被存储在一个计算机系统存储器中以便将该计算机系统配置为进行该模块的功能。其他新的以及不同类型的计算机可读存储媒质可以被用于存储在此讨论的这些模块。以上的描述是旨在展示本发明并且不应当被认为是限制性的。本发明的范围内的其他实施方案是可能的。本领域的普通技术人员将容易地实施对提供在此披露的这些结构和方法而言必需的步骤,并且将会理解这些步骤的过程参数和序列是仅通过举例而给出的、并且可以被改变来实现本发明的范围内的所期望的结构以及修改。基于在此给出的描述可以做出对于在此披露的这些实施方案的变更和修改,而不背离本发明的范围。因此,本发明是旨在仅由所附权利要求的范围来限定,并在所有方面给予对等效物的全面认同。尽管已经结合多个实施方案描述了本发明,但是本发明并非旨在受限于在此给出的这些特定形式。相反,它是旨在覆盖能够被合理地包括在如由所附权利要求限定的本发明的范围内的此类替代方案、修改、以及等效物。
权利要求
1.一种方法,包括接收从一个包括多个对象的数据库的备份中恢复一个所选对象的一个版本的一个请求,其中该多个对象包括所选对象的多个版本;在该备份中对与所选对象相关联的信息进行定位,其中所述定位包括使用在创建该数据库的备份时从所备份的数据库中收集的数据库表元数据;并且使用与所选对象相关联的信息来恢复所选对象的版本。
2.如权利要求1所述的方法,其中所述恢复所选对象的版本包括将所选对象的一个当前版本复制到一个第二对象上,其中该第二对象存储了多个对象的多个版本;并且将所选对象的所请求的版本恢复为所选对象的当前版本。
3.如权利要求1所述的方法,其中所述恢复所选对象的版本包括 恢复所选对象的每个版本,其中所接收的请求是用于恢复所选择对象的所有版本。
4.如权利要求3所述的方法,进一步包括将所选对象的当前版本恢复到一个第一对象上;并且将所选对象的每个先前版本恢复到一个第二对象上,其中该第二对象存储了多个对象的多个版本,并且该第二对象是与该第一对象相关联的。
5.如权利要求1所述的方法,进一步包括 使用该数据库表元数据来选择所选对象的版本。
6.如权利要求5所述的方法,其中所述使用该数据库表元数据来选择所选对象的版本包括使用该数据库表元数据来确定一个数据库表在该数据库的备份中的位置和结构; 读取所备份的数据库表;并且如果与该数据库表相关联的一个对象是一个有版本的对象,则读取与该数据库表相关联的一个版本表,并且收集与该对象的每个版本相关联的信息。
7.如权利要求6所述的方法,进一步包括将与该对象的每个版本相关联的信息与该对象进行关联,其中所述关联包括生成一个列表,该列表包括关于该对象以及该对象按照上升的版本顺序的每个版本的信息。
8.一种系统,包括 一个处理器;一个连接到该处理器上的第一存储对象,其中该第一存储对象存储了一个数据库的备份,并且所备份的数据库包括多个对象以及描述该多个对象的多个数据库表;一个连接到该处理器上的第二存储对象,其中该第二存储对象存储了一个目标存储区域,该目标存储区域是用于从该数据库的备份中恢复的多个对象;以及一个存储器,该存储器被连接到该处理器上、并且存储了由该处理器可执行的多条指令,所述指令被配置为接收从该数据库的备份中恢复一个所选对象的一个版本的一个请求,其中该多个对象包括所选对象的多个版本;在该备份中对与所选对象相关联的信息进行定位,其中所述定位包括使用在创建该数据库的备份时从所备份的数据库中收集的数据库表元数据;并且使用与所选对象相关联的信息将所选对象的版本恢复到该目标存储区域中。
9.如权利要求8所述的系统,其中这些恢复所选对象的版本的指令包括进一步的指令用于将在该目标存储区域中的所选对象的一个当前版本复制到存储在该目标存储区域中的一个第二对象上,其中该第二对象存储了多个对象的多个版本;并且将所选对象的所请求版本恢复为该目标存储区域中的所选对象的当前版本。
10.如权利要求8所述的系统,其中这些恢复所选对象的版本的指令包括进一步的指令,这些进一步的指令被配置为用于恢复所选对象的每个版本,其中所接收的请求是用于恢复所选对象的所有版本。
11.如权利要求10所述的系统,其中这些恢复所选对象的版本的指令包括进一步的指令,这些进一步的指令被配置为用于将所选对象的当前版本恢复到存储在该目标存储区域中的一个第一对象上;并且将所选对象的每个先前版本恢复到存储在该目标存储区域中的一个第二对象上,其中该第二对象存储了多个对象的多个版本,并且该第二对象是与该第一对象相关联的。
12.如权利要求8所述的系统,其中该存储器存储了进一步的指令,这些进一步的指令被配置为用于使用该数据库表元数据来选择所选对象的版本。
13.如权利要求12所述的系统,其中这些被配置为使用该数据库表元数据来选择所选对象的版本的指令包括进一步的指令,这些进一步的指令被配置为用于使用该数据库表元数据来确定一个数据库表在该数据库的备份中的位置和结构; 读取该数据库表;并且如果与该数据库表相关联的一个对象是一个有版本的对象, 读取与该数据库表相关联的一个版本表,并且收集与该对象的每个版本相关联的信息。
14.如权利要求13所述的系统,其中这些被配置为使用该数据库表元数据来选择所选对象的版本的指令包括进一步的指令,这些进一步的指令被配置为用于将与该对象的每个版本相关联的信息与该对象进行关联,其中这些进行关联的指令包括进一步的指令,这些进一步的指令被配置为用于生成一个列表,该列表包括关于该对象以及该对象按照上升的版本顺序的每个版本的信息。
15.一种计算机可读存储媒质,包括一个第一指令集,该第一指令集是由一个处理器可执行的、并且被配置为接收从一个包括多个对象的数据库的备份中恢复一个所选对象的一个版本的一个请求,其中该多个对象包括所选对象的多个版本;一个第二指令集,该第二指令集是由该处理器可执行的、并且被配置为在该备份中对与所选对象相关联的信息进行定位,其中所述定位包括使用在创建该数据库的备份时从所备份的数据库中收集的数据库表元数据;以及一个第三指令集,该第三指令集是由该处理器可执行的、并且被配置为使用与所选对象相关联的信息来恢复所选对象的版本。
16.如权利要求15所述的计算机可读存储媒质,其中该第三指令集进一步包括 一个第四指令集,该第四指令集是由该处理器可执行的、并且被配置为将所选对象的一个当前版本复制到一个第二对象上,其中该第二对象存储多个对象的多个版本;以及一个第五指令集,该第五指令集是由该处理器可执行的、并且被配置为将所选对象的所请求的版本恢复为所选对象的当前版本。
17.如权利要求15所述的计算机可读存储媒质,其中该第三指令集进一步包括 一个第四指令集,该第四指令集是由该处理器可执行的、并且被配置为恢复所选对象的每个版本,其中所接收的请求是用于恢复所选对象的所有版本。
18.如权利要求17所述的计算机可读存储媒质,进一步包括一个第五指令集,该第五指令集是由该处理器可执行的、并且被配置为将所选对象的当前版本恢复到一个第一对象上;以及一个第六指令集,该第六指令集是由该处理器可执行的、并且被配置为将所选对象的每个先前版本恢复到一个第二对象上,其中该第二对象存储了多个对象的多个版本,并且该第二对象是与该第一对象相关联的。
19.如权利要求15所述的计算机可读存储媒质,进一步包括一个第四指令集,该第四指令集是由该处理器可执行的、并且被配置为使用该数据库表元数据来选择所选对象的版本。
20.如权利要求19所述的计算机可读存储媒质,其中该第四指令集进一步包括 一个第五指令集,该第五指令集是由该处理器可执行的、并且被配置为使用该数据库表元数据来确定一个数据库表在该数据库的备份中的位置和结构;一个第六指令集,该第六指令集是由该处理器可执行的、并且被配置为读取该数据库表;以及一个第七指令集,该第七指令集是由该处理器可执行的、并且对于同该数据库表相关联的一个对象是一个有版本的对象是响应性的,并且该第七指令集被配置为用于读取与该数据库表相关联的一个版本表,并且收集与该对象的每个版本相关联的信息。
全文摘要
在此提供了一种机制,该机制选择性地恢复存储在数据库的整体备份中的一个应用程序对象的一个版本,同时维持该数据库所恢复部分的层级结构的以及其他的元数据关系。本发明的多个实施方案提供了一种方法、系统和计算机可读存储媒质,它们提供了一种机制用于接收从一个数据库备份中的多个已备份对象中恢复一个所选对象的一个版本的请求,在该备份中将与所选对象相关联的信息定位,并且使用与所选对象相关联的信息将所选对象的版本恢复到一个目标存储区域中。本发明的多个方面使用了在创建该备份时从所备份的数据库中收集的数据库表元数据以便对与所选对象相关联的信息进行定位。
文档编号G06F11/14GK102171660SQ200980138360
公开日2011年8月31日 申请日期2009年9月25日 优先权日2008年9月30日
发明者D·萨拉夫, L·比蒂, S·R·德沃斯 申请人:赛门铁克公司

最新回复(0)