从差异备份中执行数据库的精细恢复的方法和系统

申请号 CN201180053083.5 申请日 2011-09-29 公开(公告)号 CN103262043B 公开(公告)日 2016-05-18
申请人 赛门铁克公司; 发明人 L·比蒂; D·萨拉夫;
摘要 在此披露了一种从 数据库 的差异备份中执行该数据库的精细恢复操作的方法和系统。位掩码在差异备份过程中创建并与差异备份文件一起存储。当用户 请求 精细恢复操作时,在不同时间点上数据库如何存在的视图可以提交给用户。用户希望恢复的对象可以从这些视图之一中选择。接着,可以读取位掩码以确定对象是应该从差异备份文件中还是从完整备份文件中检索。最后,对象可以从正确的文件恢复到数据库中。
权利要求

1.一种从数据库的差异备份中执行精细恢复操作的方法,该方法包括:
检测恢复一个数据库的一个请求
识别该数据库的一个完整备份,其中该完整备份对应于该数据库在第一时间的状态;
识别该数据库的一个部分备份,其中该部分备份对应于该数据库在晚于该第一时间的第二时间的状态;
基于该完整备份和该部分备份而提供该数据库的一个合成完整备份视图的至少一部分,其中该合成完整备份视图对应于该第二时间;
检测对该合成完整备份视图的用户输入,所述用户输入选择有待恢复至对应于该第二时间的相应状态的多个对象,其中所选择的多个对象包括第一对象,其中对应于该第二时间的该第一对象的最新版本被存储在该部分备份中,其中对应于该第一时间的该第一对象的较旧版本被存储在该完整备份中;
针对所选择的多个对象中的每一个相应对象,确定用来恢复该相应对象的相应备份,其中该相应备份是该完整备份或者该部分备份,其中该确定步骤包括:确定该第一对象的最新版本应当从该部分备份中恢复,以及确定所选择的多个对象中的一个或多个对象应当从该完整备份中恢复;并且
针对所选择的多个对象中的每一个相应对象,从为该相应对象确定的相应备份中恢复该相应对象,其中该恢复步骤包括:将该第一对象的最新版本从该部分备份中恢复,以及将一个或多个其他对象从该完整备份中恢复。
2.如权利要求1所述的方法,其中提供该合成完整备份视图包括:
访问与该完整备份相关联的元数据;
访问与该部分备份相关联的元数据;并且
基于与该完整备份相关联的元数据和与该部分备份相关联的元数据的合并而提供该数据库的一个合成完整备份视图。
3.如权利要求1所述的方法,其中在检测执行该恢复操作的请求之前,该方法包括:
执行该数据库的一个完整备份并存储从该完整备份接收的数据;并且
执行该数据库的一个部分备份,其中执行一个部分备份包括:
检测执行该数据库的一个部分备份的一个请求;
存储从该部分备份接收的数据;
建立包括指示符的一个位掩码文件,这些指示符规定了该数据库中哪些对象已经在该完整备份之后进行了修改并且存储为该部分备份的一部分;并且
存储该位掩码文件。
4.如权利要求1所述的方法,进一步包括创建该部分备份,其中创建该部分备份包括:
检测执行该数据库的一个备份的一个请求;
启动一个备份程序;
在该数据库上运行一个定制的查询以识别自从最后一次完整备份以来该数据库中的变更的对象;
存储识别该变更的对象的一个变更映射;
在该备份程序过程中接收多个数据对象;
比较该多个数据对象的对象和该变更映射中识别的对象;
响应于确定该变更映射指示该多个数据对象的特定对象已经发生变化,将这些特定对象存储为该部分备份的一部分。
5.如权利要求3所述的方法,其中确定用来恢复该相应对象的相应备份包括比较包括在与该对象相关联的一个头部中的一个标识符和在该位掩码文件中存储的标识符。
6.如权利要求3所述的方法,其中该位掩码文件基于一个SQL服务器中的数据而产生。
7.如权利要求1所述的方法,其中该数据库包括含有网站内容的内容数据库。
8.一种从数据库的差异备份中执行精细恢复操作的系统,该系统包括:
用于检测恢复一个数据库的一个请求的装置;
用于识别该数据库的一个完整备份的装置,其中该完整备份对应于该数据库在第一时间的状态;
用于识别该数据库的一个部分备份的装置,其中该部分备份对应于该数据库在晚于该第一时间的第二时间的状态;
用于基于该完整备份和该部分备份而提供该数据库的一个合成完整备份视图的至少一部分的装置,其中该合成完整备份视图对应于该第二时间;
用于检测对该合成完整备份视图的用户输入的装置,所述用户输入选择有待恢复至对应于该第二时间的相应状态的多个对象,其中所选择的多个对象包括第一对象,其中对应于该第二时间的该第一对象的最新版本被存储在该部分备份中,其中对应于该第一时间的该第一对象的较旧版本被存储在该完整备份中;
用于针对所选择的多个对象中的每一个相应对象,确定用来恢复该相应对象的相应备份的装置,其中该相应备份是该完整备份或者该部分备份,其中该确定步骤包括:确定该第一对象的最新版本应当从该部分备份中恢复,以及确定所选择的多个对象中的一个或多个对象应当从该完整备份中恢复;以及
用于针对所选择的多个对象中的每一个相应对象,从为该相应对象确定的相应备份中恢复该相应对象的装置,其中该恢复步骤包括:将该第一对象的最新版本从该部分备份中恢复,以及将一个或多个其他对象从该完整备份中恢复。
9.如权利要求8所述的系统,进一步包括:
用于访问与该完整备份相关联的元数据的装置;
用于访问与该部分备份相关联的元数据的装置;并且
用于基于与该完整备份相关联的元数据和与该部分备份相关联的元数据的合并而提供该数据库的一个合成完整备份视图的装置。
10.如权利要求8所述的系统,其中在检测执行一个精细恢复操作的一个请求的装置之前,该系统进一步包括:
用于执行该数据库的一次完整备份并存储从该完整备份接收的数据的装置;以及用于执行该数据库的一个部分备份的装置,其中执行一个部分备份包括:
检测执行该数据库的一个部分备份的一个请求;
存储从该部分备份接收到的数据;
建立包括指示符的一个位掩码文件,这些指示符规定了该数据库中哪些对象已经在该完整备份之后进行了修改并且存储为该部分备份的一部分;并且
存储该位掩码文件。
11.如权利要求8所述的系统,其中为了创建该部分备份,该系统进一步包括:
用于检测执行该数据库的一个备份的一个请求的装置;
用于启动一个备份程序的装置;
用于在该数据库上运行一个定制的查询以识别该数据库中的变更对象的装置;
用于存储识别这些变更对象的一个变更映射的装置;
用于在该备份程序过程中接收多个数据对象的装置;
用于比较该多个数据对象的对象和该变更映射中识别的对象的装置;
用于存储该多个数据对象中被识别为已经变更的对象的装置;并且
用于舍弃该多个数据对象中未被识别为已经变更的对象的装置。
12.如权利要求10所述的系统,其中为了确定该对象对应于该完整备份还是该部分备份,该系统进一步包括:用于比较包括在与该对象相关联的一个头部中的一个标识符和该位掩码文件中存储的标识符的装置。
13.如权利要求8所述的系统,其中该数据库包括含有网站内容的内容数据库。

说明书全文

从差异备份中执行数据库的精细恢复的方法和系统

[0001] 发明背景发明领域
[0002] 本发明总体上涉及数据库备份,更具体地是涉及从差异备份中执行数据库的精细恢复。
[0003] 相关技术说明
[0004] 数据库备份和恢复是具有挑战性的处理工作,随着公司数据库的增加以及对它的联机可用性需求的提高,这些工作变得更为困难,从而限制了可用于备份和恢复操作的时间。数据库(例如 结构化查询语言(SQL)数据库)常常作为一个单一的、整体的数据库文件来备份,这种文件包含数据库的所有表、记录和标引信息。然而,对整个数据库进行备份可能耗用大量存储内存、处理周期以及网络带宽。
[0005] 代替备份整个数据库的是,可以执行一种差异备份以减少数据库停机时间和在网络上发送的并在备份存储介质中存储的数据的量。至少在执行一次差异备份之前,执行数据库的一次完整备份。在完整备份之后,后续备份可以是差异备份。差异备份可以只包含自从最后一次完整备份以来对数据库所作的改变。这是一种备份数据库的高效方法,因为经常要按照常规时间表来备份数据库,并且通常在数据库中只有少量数据在连续备份之间发生变化。
[0006] 一旦已经存储了一个数据库的备份,用户根据需要可以希望恢复该数据库或该数据库的一个或多个条项。如果用户需要恢复整个数据库,那么整个数据库可以恢复到托管数据库的服务器上。然而,当用户只想向数据库恢复一些对象时,需要恢复整个数据库,除非有适当的机制允许精细恢复。
[0007] 在执行差异备份之后,存储在备份存储介质中的数据会分割在差异备份和最后一个完整备份之间,并且当执行精细恢复时确定从这两个备份中哪一个拉出数据可能是一种缓慢且低效的过程。目前所使用的一种技术需要恢复整个完整备份,然后从差异备份中回放这些变化。当只需要恢复数据库中少量条项时,这是一种低效且缓慢的技术。
[0008] 鉴于以上问题,需要一些改进的方法和机制来从差异备份中执行数据库条项的精细恢复。
[0009] 发明综述
[0010] 设想了从数据库的差异备份中执行数据库的精细恢复操作的方法和机制的不同实施例。在一个实施例中,当执行一个数据库的差异备份时,可以创建位掩码并与差异备份文件一起存储。当用户请求精细恢复操作时,通过在逻辑上将差异备份文件与完整备份文件相合并,数据库就可以如同它存在于一个特定时间点上一样呈现给用户。接着,用户可以从用户接口选择对象来恢复到数据库。可以将位掩码载入到存储器并读取以确定所选条项驻留在差异备份文件中或完整备份文件中的哪个位置上。然后可以从正确的位置获取这些条项并存储到数据库。
[0011] 鉴于以下本文提出方法的详细描述,这些以及其他特征和优点对本领域的普通技术人员将变得明显。
[0012] 附图简要说明
[0013] 通过参考以下描述并结合附图,本方法和机制的上述和进一步的优点可以得到更好的理解,在附图中:
[0014] 图1是根据一个或多个实施例的一种网络架构的示意图。
[0015] 图2展示了一种数据库档案系统的一个实施例。
[0016] 图3展示了完整备份文件、位掩码和差异备份文件的一个实施例。
[0017] 图4展示了用于从数据库档案列表中进行选择的一种用户接口的一个实施例。
[0018] 图5展示了用于选择有待恢复的特定记录或对象的一种用户接口的一个实施例。
[0019] 图6是展示一种用于将多个对象恢复到数据库的方法的一个实施例的总体流程图
[0020] 图7是展示一种用于执行差异备份的方法的一个实施例的总体流程图。
[0021] 详细说明
[0022] 在以下描述中,给出很多具体细节以提供本文提出的方法和机制的透彻理解。然而,本领域的普通技术人员应当认识到的是,可以在不具备这些具体细节的情况下实施各种实施例。在某些情况中,并未详细地示出众所周知的结构、组件、信号计算机程序指令、和技术,以避免混淆本文描述的方法。将要理解的是,为了简单且清晰地说明,图例中所示的元件不必按比例绘制。例如,元件中一些的尺寸可以相对于其他元件进行放大。
[0023] 参见图1,图中示出了网络架构100的一个实施例。媒体服务器150通过网络110连接至客户端计算机系统120、客户端计算机系统135以及数据库服务器125。媒体服务器150可以包括至少一个单一处理器或中央处理单元、其他系统硬件、以及存储软件应用程序的存储介质。媒体服务器150还可以包括操作系统,并且该操作系统可以是各种类型中的一种,这些类型包括 , , , , ,或另一种已知的操作系统。操作系统可以作为系统硬件和软件应用程序之间的接口。
[0024] 媒体服务器150可以托管一个或多个软件应用程序以执行数据库130和140的备份和恢复操作。媒体服务器150可以在备份存储装置155中存储数据库130和140的备份。数据库130和140的备份可以是完整备份和/或差异备份。数据库的差异备份可以包含自从最后一次完整备份以来对数据库所作的所有改变。数据库130和140的其他类型的备份也可以存储在备份存储装置155中,包括增量备份、事务日志以及其他备份。另外,媒体服务器150可以执行精细恢复操作以便将数据对象从备份存储装置155恢复到数据库130和
140。
[0025] 备份存储装置155可以包括或进一步连接至若干类型的存储器,这些存储器包括一个或多个硬盘、磁带驱动器、刀片服务器、专用装置,并且可以包括各种存储装置,例如RAM、闪速RAM、MEMS(微电子机械系统)存储器、电池支持的RAM、和/或非易失RAM(NVRAM)等。在另一个实施例中,媒体服务器150可以替代性地将备份存储在经过网络110连接的另一种装置上,例如另一种存储介质、另一种计算机系统或另一种服务器(未示出)。
[0026] 网络110可以包括各种网络连接,这些网络连接包括局域网(LAN)(例如以太网、光纤分布式数据接口(FDDI)网、令牌环网)、基于电气与电子工程师协会(IEEE)802.11标准(Wi-Fi)的无线局域网(WLAN))、广域网(WAN)(例如互联网、蜂窝数据网)、以及其他数据通信网络的组合。
[0027] 在网络架构100的不同实施例中,客户端计算机系统120和135代表任意数量的静态或移动计算机,例如服务器、桌上PC、膝上计算机、手持式计算机、智能电话等。客户端120和135可以包括至少一个单一处理器或中央处理单元、其他系统硬件和用于存储软件应用程序的存储介质。在一些实施例中,客户端120和135可以包括以上所列各种类型的操作系统。操作系统可以作为系统硬件和软件应用程序之间的接口。
[0028] 客户端120和/或135可以托管内部网户应用程序。内部网门户应用程序可操作用于管理并维护多个网页和电子文档,这些网页和文档组成了多个系统用户的网站。网站数据可以存储在数据库130和/或数据库140中。在另一个实施例中,内部网门户应用程序可以包括其他网站开发软件。在一个实施例中,内部网门户应用程序可以是服务器或类似的企业信息门户程序。可以执行内部网门户应用程序的数据库备份,该备份在备份存储装置155上存储网站的拷贝。网站信息可以包括表格、记录、条项列表、相对应的全局唯一标识符以及用于向用户呈现站内网页视图的其他数据。
[0029] 内部网门户应用程序还可以包括用于存储列表、条项和记录的封装版本的数据库。在一个实施例中,可以将内部网门户应用程序配置为数据库的‘用户’。在另一个实施例中, SQL服务器、Microsoft Sharepoint服务器、或其他数据库服务器系统对数据库进行实例化。应当进一步注意的是,一个或多个其他客户端计算机可以通过网络连接至客户端120或客户端135,以允许客户端系统集中地通过一个或多个网页访问内部网门户应用程序,包括访问数据库。
[0030] 数据库130和140可以代表连接至网络110的任意数量和类型的数据库。数据库服务器125连接至数据库130,并且可以通过数据库服务器125访问数据库130。客户端计算机系统135连接至数据库140,并且可以通过客户端135访问数据库140。数据库130和140既可以代表数据库程序和/或也可以代表本文实施的一个或多个实际数据库。数据库程序指代用于操作数据库的可执行命令、用户接口和其他程序代码。所包含的数据库可以进一步包括各种表格、索引、关系、查询、存储过程、文件系统、安全层、网络接口等,它们被配置用于在多个数据库记录上操作。
[0031] 在数据库130和140是关系型数据库的一个实施例中,可以将记录排列在表格(行和列安排)中。本文所用的术语“记录”指代数据库中的条目。相关联记录的集合可以统一描述为数据库中的“表格”。记录可以由一个或多个字段组成,这些字段可以用作其他表格中的其他记录的索引(或关键字)。例如,在文档管理数据库中,文档表格中的每条记录可以代表数据库中存储的文档。在一个实施例中,文档可以存储在记录本身的字段中。在一些实施例中,文档可以在引用该文档的一条记录中表示,如存储单元。另外,数据库可以创建并修改加载的数据库文件,以便存储和访问关系型数据库的任意给定实现方式。在一些实施例中,数据库130和140可以在专用计算系统上执行,例如数据库服务器125或客户端135,该计算系统被配置用于由其他服务器和客户端计算机通过通信网络进行访问。
[0032] 数据库130和140可以包括与关系型数据库相关联的各种类型的功能,例如添加和查询过程。查询功能可以从数据库中检索信息,例如变更映射、分配映射、对象、表格、记录以及其他数据。添加功能可以在数据库中存储信息。数据库130和140可以是Microsoft SQL Server数据库,并且用于提供对数据库130和140访问的接口可以使用SQL。可以存储并且在页面级上从Microsoft SQL Server检索数据。每个页面可以具有8千字节(KB)的大小并且可以由头部和数据组成。页面头部可以包含对象ID,页面中的数据属于该对象ID。服务器输入/输出(I/O)操作可以在页面级上执行,这样SQL Server读或写整个页面。
[0033] 在一个实施例中,变更映射可以是一种存储在Microsoft SQL Server数据库中的差异变更映射(DCM)。DCM可以跟踪自从最后一次完整数据库备份以来已发生变化的区间。区间可以是8个物理上连续页面的集合并且可用于高效地管理页面。DCM可以是位图,在位图中每个位代表一个单一区间。可以将位图组织为使得如果一个区间的位是1,那么该区间自从最后一次完整备份之后已经进行了修改,而如果该区间的位是0,那么该区间没经过修改。在一些实施例中,Microsoft SQL服务器可以读取DCM页面以确定哪些区间已经修改过。然后,服务器可以将已修改过的那些区间(作为差异备份的一部分)发送至媒体服务器
150。
[0034] 媒体服务器150可以执行查询以便从加载的数据库130和/或加载的数据库140检索构成DCM的页面。如本文所用,“加载的数据”是指载入的并且服务器或客户端计算机的用户可访问的数据库。第一DCM页面可以位于加载的数据库的第7个页面上。第二DCM页面可以位于第512232页面上,该页面对第一DCM页面的偏移量是512239个页面。第三DCM页面可以位于第1022471页面上,该页面对第一DCM页面的偏移量是1024464个页面,以此类推。在一个实施例中,媒体服务器150可以将检索的DCM页面存储为位掩码文件。
[0035] 媒体服务器150还可以执行查询以便从加载的数据库130和/或加载的数据库140检索一个或多个分配映射。分配映射可以包含与对象或索引所使用的区间相关的信息。
例如,分配映射可以包含表示该对象正在使用哪些区间的区间位掩码。在一个实施例中,这些分配映射中的一个可以是Microsoft SQL服务器数据库的索引分配映射。
[0036] 在其他实施例中,客户端、数据库和媒体服务器、以及存储装置的数量和类型不限于图1所示的那些。在网络架构100中,几乎任意数量的服务器、存储装置、以及静态和移动客户端以及它们的组合都可以通过调制解调器组、直接LAN连接、无线连接、WAN链路等的各种组合而相互连接。另外在不同时刻,一个或多个客户端可以脱机操作。此外在操作过程中,当移动用户到处移动,从而与网络架构100相连接、断开和重新连接时,个别客户端连接类型可以改变。
[0037] 参见图2,图中示出了一种用于备份并且恢复数据到数据库的系统的一个实施例的方框图。在左侧,示出了数据库210。在一个实施例中,数据库210可以是面向对象的数据库。在另一个实施例中,数据库210可以是安全关系型数据库管理系统(RDBMS),如Microsoft SQL Server数据库。RDBMS可以是关系型数据库程序和在此实施的一个或多个实际数据库二者。关系型数据库程序是指可执行命令、用户接口或用于操作数据库210的其他程序代码。数据库210中的多个数据库可以进一步包括各种表格、索引、关系、查询、存储过程、文件系统、安全层、网络接口等,这些被配置用于在构成“数据库”的多个数据记录(也成为记录或条目)上操作。记录可在表格中以行和列安排的方式排列。另外,数据库210可以创建并修改加载的数据库文件,以便存储并访问关系型数据库的任意给定实现方式。
[0038] 媒体服务器220可以通过接口230访问数据库210。接口230可以包括本地或远程网络接口,并且还可以包括网络和/或软件驱动器层以便与数据库210进行通信。在一个实施例中,接口230可以利用SQL提供对数据库210的访问。
[0039] 媒体服务器220可以被配置用于执行数据库210的内容的备份。媒体服务器220可以将数据库210的备份存储为主数据文件(MDF)。媒体服务器220还可以被配置用于产生表格和索引信息的纲目并将它与未加载的完整数据库备份文件280内的备份内容一起存储。在一个实施例中,纲目可以指代数据库文件的数据结构。纲目可以包括定义数据库文件中的某些数据结构的存储单元。纲目可用于快速且高效定位数据库文件中的对象,而不必执行大量的搜索操作。当正在创建数据库的备份时,可以通过查询数据库210来产生纲目。未加载的完整数据库备份文件280可以是先前由数据库210创建的加载的数据库文件的相同实例。纲目可用访问或存储完整数据库备份文件280的内容,无需使用数据库210。
[0040] 媒体服务器220可操作用于将对象和记录的拷贝从数据库210归档到备份存储器250。备份存储器250可以是各种类型存储介质中的任意一种。可替代地,选择的对象和记录可以从数据库210通过网络接口传输到远程归档存储器。在不同实施例中,媒体服务器220还可以将先前的归档操作所获得的对象、记录或其他数据恢复到数据库210。媒体服务器220还可以被配置用于根据需要提供其他已知的归档功能,例如由 的
TM
Backup Exec 产品提供的各种特性。在一个实施例中,媒体服务器220可以包含备份系统代理软件。备份系统代理可以是软件例程,该软件例程等待预定事件的检测并在这种检测发生时执行一个或多个动作。备份系统代理可以是被配置用于执行一个或多个备份或恢复功能的软件。
[0041] 媒体服务器220可以通过接口240访问备份存储器250,以便选择和检索要归档的内容。接口240可以代表媒体服务器220向驻留在备份存储器250上的文件系统的文件存取。在一个实施例中,接口240可以包括到远程存储介质的网络连接。在另一个实施例中,接口240可以代表对存储区域网络(SAN)的存储访问,存储区域网络可以是分布的、共享的存储环境。
[0042] 媒体服务器220可以接收识别差异备份操作过程中对数据库210所做改变的数据,并在差异备份文件270中存储这些变化。媒体服务器220还可以建立位掩码260以指明在恢复操作中数据库210的哪些对象或记录已经改变并应该从差异备份文件270中恢复。对象可以包括不同大小的二进制对象、表格、记录、存储在记录的字段中的数据、文档、条项、列表、以及其他数据。
[0043] 在一个实施例中,媒体服务器220可以通过查询数据库210来执行差异备份以检索数据库210内的第一修改页面。然后,服务器220可以查询数据库210以检索偏移值,该偏移值包含数据库210内的第一修改页面的页码和第二修改页面的页码。媒体服务器可以查询数据库210以检索多个偏移值,每个偏移值包含数据库210的修改页面的页码之间的差异。在检索该多个偏移之后,接着媒体服务器220可以使用该偏移值来检索自从数据库210的最后一次完整备份以来已经修改的多个页面。
[0044] 另外,媒体服务器220可以包括精细恢复功能以便将具体对象或记录从完整数据库备份文件280或差异备份文件270添加至数据库210。精细恢复功能还可以包括选择一个或多个记录或对象进行恢复的方法。在一个实施例中,选择并存储记录或对象的用户接口可以作为精细恢复操作的一部分来提供。精细恢复可以使管理员或用户能够只选择备份拷贝中所需的记录或对象,不必恢复整个数据库。在一些实施例中,对象可以是文档,例如PDF’s、视频WAV文件以及其他文档。在其他实施例中,对象可以包括站点、子站点、列表、以及列表项。
[0045] 媒体服务器220还可以从完整备份文件280和从差异备份文件270读取数据。在一个实施例中,媒体服务器220可以从完整备份文件280或者从差异备份文件270检索对象和记录。在另一个实施例中,媒体服务器220可以查看位掩码260以确定最新的对象或记录驻留在哪里—或者在差异备份文件270中或者在完整备份文件280中。在不同实施例中,当媒体服务器220执行各种功能时它可以将数据临时存储在存储介质中,这些功能涉及备份和恢复数据库210、完整数据库备份文件280、差异备份文件270和位掩码260之间的数据。另外,媒体服务器220可以利用图2未示出的附加接口来访问存储介质。
[0046] 在一个实施例中,完整数据库备份文件280和/或差异备份文件270是串行存取的二进制文件,因此使用对备份存储器250的文件系统的标准文件I/O调用。该文件系统可以是位于备份存储器250上创建的一个卷中的引用并存储数据的信息系统,该数据以文件和目录的形式进行分层组织。
[0047] 在一些实施例中,完整备份数据库文件280和/或差异备份文件270可以采用存储器的单元形式构成,这种单元称为页或分配单元。根据数据库210的类型,页尺寸可以是字节的某一倍数。在一个实施例中,数据210可以是具有页尺寸为8KB的Microsoft SQL Server。因此对数据库文件280和/或差异备份文件270中存储器地址的内部引用可以在页单元中给出。
[0048] 时间点261代表数据库210在执行差异备份的特定时间点上的状态。当差异备份在对应于时间点261的特定时间上执行差异备份时,媒体服务器220可以创建并存储位掩码260和差异备份文件270。在一个实施例中,位掩码260和差异备份文件270可以保存在备份存储器250内的相同文件夹中。时间点262和时间点263可以对应于执行差异备份的其他特定时间。可以存储差异备份文件和位掩码以用于时间点262和263。对应于任意数量的时间点的任意数量的位掩码和差异备份文件可以存储在备份存储器250中。完整数据库备份文件280还可以对应于不同的时间点(未示出),该时间点对应于执行数据库210的最后一次完整备份的时刻。
[0049] 每次执行差异备份操作时,媒体服务器220可以存储差异备份文件和位掩码。在一个实施例中,当执行新的完整备份操作时,媒体服务器220可以从备份存储器250删除旧的完整数据库备份文件。媒体服务器220还可以在该时刻删除旧的位掩码和差异备份文件。在另一个实施例中,当执行新的完整备份操作时,媒体服务器220可以保留一个或多个先前的备份文件。媒体服务器250可以具有与位掩码、差异备份文件以及完整备份文件相关的保留策略,该策略涉及删除更旧的文件以空出备份存储器250中的存储空间。
[0050] 现在参见图3,图中示出了完整备份文件305、位掩码306以及差异备份文件307的一个实施例的方框图。完整备份文件305包括对象311-323,这些对象代表任意数量的存储的数据库对象。对象311-323可以代表在数据库中存储的任意类型的数据,这些数据包括表格、记录、文档、条目、列表以及其他数据。差异备份文件307包括对象352和359,这些对象可以代表自从创建完整备份文件305以来发生变化的任意数量的对象。另外,完整备份文件305和差异备份文件307中呈现的对象可以包括对象和描述这些对象的元数据。
[0051] 在数据库已经存储为一个完整备份之后,后续备份可以是差异备份;差异备份可以存储自从最后一次完整备份以来对数据库所作的变化。差异备份中包含的变化可以存储在差异备份文件307中。另外,当执行差异备份时,可以创建位掩码306以指明自从最后一次完整备份以来哪些数据库对象已经发生变化并存储在差异备份文件307中。当执行恢复操作时,恢复应用程序可以使用位掩码306以确定是从完整备份文件305还是从差异备份文件307中抽出特定的对象。在一个实施例中,对象可以从完整备份文件305和/或差异备份文件307恢复到数据库的工作拷贝中,或恢复到数据库的另一个拷贝中。在另一个实施例中,在恢复到数据库的工作拷贝之前,对象可以在存储器中缓存。在一个进一步的实施例中,对象可以从完整备份文件305和/或差异备份文件307恢复到存储介质、服务器、客户端或其他计算装置上的文件系统。在又一个进一步的实施例中,对象可以恢复到内部门户应用程序或其他软件应用程序。
[0052] 位掩码306可以至少部分地利用从变更映射(例如,DCM和/或一个或多个分配映射)中检索的信息来建立。位映射306还可以至少部分地利用从数据库的差异备份中检索的信息(例如变化的页面和描述该页面的元数据)来建立。用于创建位掩码306的信息可以是变化的页面和/或对象以及描述该变化页面的元数据和/或在差异备份过程中接收的对象。位掩码306可以在差异备份时创建,或位掩码306可以在检测恢复操作时创建。如果在检测恢复操作时创建位掩码306,需要创建位掩码306的信息可以从差异备份文件307中抽取。位掩码306还可以基于从数据库检索的其他信息来建立。
[0053] 在一个实施例中,位掩码306可以利用指向完整备份文件305或差异备份文件307的指针来建立。在另一个实施例中,位掩码306可以为数据库存储对象的二进制数据。例如,如果一个对象自从最后一次完整备份以来已经发生变化并且应该从差异备份文件307中检索,位掩码306可以为该对象存储‘1’。如果一个对象自从最后一次完整备份以来未发生变化并且应该从完整备份文件305中检索,位掩码306可以为该对象存储‘0’。在一个进一步的实施例中,位掩码306可以包含具有值TRUE或FALSE的布尔型字段以确定一个对象存储在差异备份文件307中还是完整备份文件305中。组织位掩码306的其他方法是可能的并且可以是设想的。
[0054] 图3中完整备份文件305、位掩码306、以及差异备份文件307的图例是这些文件的逻辑表示形式。这些文件的实际结构和组织不同于它们出现在图3中的形式。例如,附加数据可以添加到差异备份文件307的末尾。如果在创建完整备份文件305之后数据添加到数据库,可以将新的数据添加到差异备份文件307的末尾。另外,指针或二进制数据可以添加到对应于新数据的位掩码306的末尾。另外,如果在创建完整备份文件305之后从数据库删除对象,描述已删除对象的元数据可以添加到差异备份文件307,并且对应于已删除数据的指针或二进制数据可以附加到位掩码306。
[0055] 本文描述的方法和机制还可以与增量备份一起使用。一般而言,增量备份可以将自最后一次增量备份或最后一次完整备份以来的所有变化存储到数据库中。例如,可以执行一次完整备份,然后执行任意数量的增量备份。增量备份的每一个的元数据可以如以上描述的与完整备份元数据相合并。可替代地,增量备份元数据可以一起合并为一个单一文件,然后该单一文件与完整备份元数据相合并。所有增量备份元数据一起合并为一个单一文件可以创建类似于差异备份文件的一个文件。单一的合并文件可能需要重新格式化或以不同方式进行组织,以便匹配差异备份文件的格式。位掩码可以从描述单一文件中数据的元数据来产生,这类似于位掩码从存储的差异备份文件中产生的方式,然后合并的文件可以替代本文描述的方法中的差异备份文件。利用上述方法,精细恢复操作可以在数据库的一次或多次增量备份之后执行。如本文所用,“部分备份”可以指代差异或增量备份。
[0056] 现在参见图4,示出了用户接口400的一个实施例,该用户接口可以由备份应用程序来提供,以便从所示的数据库档案列表中选择。备份应用程序410可以运行在媒体服务器、数据库服务器、客户端计算机、或其他计算装置上。备份应用程序410可以向用户提供用户接口400以进行访问并从数据库的多个存储的时间点备份中选择。用户接口400可以包括的特性例如有下拉菜单、导航条、地址栏、以及网页和图形用户接口(GUI)的其他共有特性。用户可以是管理员、软件开发者、或其他用户。用户可能希望从特定时间点恢复数据库的备份拷贝中的一个或多个对象。可替代地,用户可能希望从特定时间点恢复整个数据库备份。如图4中所描绘的,当考虑恢复操作时,用户接口400可以为用户呈现可从中选择的多个备份。可以根据执行备份的日期和时间列出时间点备份。列出并组织时间点备份的其他方法是可能的并且是可以设想的。
[0057] 以下备份显示在用户接口400的“时间点备份”窗格405中:2010年6月1日备份410,6月1日早上或上午备份(420),6月1日午后或下午备份(430),6月2日备份440,6月3日备份450,6月4日备份460,以及6月5日备份470。时间点备份窗格405中显示的具体日期中的任意一个可以具有该具体日期的多个备份。时间点备份窗格405中显示的备份代表任意数量的备份,这些备份可以显示为备份应用程序410的用户接口400的一部分。
[0058] 用户可以在特定时间点备份(从该备份来恢复对象)的时间点备份窗格405中查找列表。在该特定时间点上执行的备份可以是完整或差异备份。在一个实施例中,窗格405在来自完整备份或差异备份的备份之间不做区分。在另一个实施例中,时间点备份窗格405可以为完整备份和差异备份呈现不同的底纹,或给出提示以便用户可以看到在该时间点上执行哪类备份。在两种情况的任意一种中,用户可能不需要知道一个特定时间点的备份是完整的还是差异的;用户可以在不具备这种知识的情况下从一个特定时间点恢复对象。在用户已经选择特定时间点备份(从该备份来恢复对象)之后,用户可以选择“打开”按钮展开该备份,以便在数据库的对象存在于该时间点时查看它们。用户接口400可以呈现其他形式或以不同于图4中所示的其他格式来呈现时间点备份。
[0059] 现在转到图5,图中展示了用户接口500的一个实施例,该用户接口可以由备份应用程序510来提供以便选择将要恢复的具体记录或对象。用户接口500可以包括的特性例如有下拉菜单、导航条、地址栏、以及网页和GUI的其他共有特性。给出用户接口500仅仅是为了进行讨论;用户接口的其他表现形式是可能的并且是可设想的。在另一个实施例中,用户接口500可以展示其他类型的对象,例如站点、子站点、列表和/或条目,可以选择它们以进行恢复。在图5中,用户接口500展示了记录和对象可以如何从具体时间点备份中提取记录和对象的视图;在这种情况中,具体时间点备份是6月4日备份460。6月4日备份460可以在前文的用户接口上选择,例如图4中所示的用户接口,多个时间点备份在该接口上提供给用户。
[0060] 在用户接口500的“记录”窗格504中可以提供记录和对象的层级列表。记录510呈现在记录窗格504中,记录510的对象511-514同样呈现在其中。记录520、530、540和550也呈现在记录窗格504中,而对象551-55出现在记录550的列表下方。记录窗格504中所示的列表可以只是存储在数据库的6月4日备份460中的记录和对象的一部分。可以遍历6月4日备份460的条项以到达用户接口500中呈现的记录和对象。记录和对象可以选自记录窗格504中的列表并利用添加按钮添加到“恢复对象”窗格505。可以选择记录和对象并利用移除按钮从恢复对象窗格505中移除。如图5中所示,对象514和551出现在恢复对象窗格505中的恢复文件夹560下方,这表示用户已经选择了对象514和551来进行恢复。
[0061] 在一个实施例中,用户接口500中所示的视图可以通过合并完整数据库备份文件的元数据和对应于6月4日的时间点备份的差异备份文件的元数据来创建。在这个意义上来说,可以认为该视图是“合成的完整备份视图“,在某种程度上它给出了完整备份的视图,就好像执行了它而不是6月4日的时间点备份(即,部分备份)。在另一个实施例中,用户接口500中所示的视图可以通过在逻辑上合并差异备份文件和最后一次完整备份文件来创建。在一个进一步的实施例中,位掩码可用于产生用户接口500中所示的视图。用户接口500的视图是数据库在特定时间点上的底层数据结构的虚拟表示形式。将对象转换为网页和将网页转换为对象的映射也可以用于提供用户接口500的视图。用户接口500呈现了对象,而差异备份文件、位掩码以及完整数据库备份文件可以根据网页进行组织。转换映射可用于将备份文件的页面结构转换为用户接口500的对象视图。转换映射还可以用于由用户接口500中的用户在差异备份文件和完整数据库备份文件的页面内找到为进行恢复所选择的对象。
[0062] 差异备份文件、最后一次备份文件、和/或位掩码可以从备份存储器载入到媒体服务器的物理内存以提供图5中所示的视图,并且这些文件可以停留在内存中以便在用户选择对象进行恢复之后允许迅速检索对象。图5的用户接口500中所示的6月4日备份460的视图可以展示数据库,就好像该数据库存在于6月4日执行差异备份的时刻上。在其他实施例中,不同类型的视图可以由用户接口500来提供。例如,如果数据库存储了一个网站、用户接口500可以提供该网站的视图,就好像它在过去的一个特定时间点上看到的一样。
[0063] 现在参见图6,图中展示了将多个对象恢复到数据库的方法600的一个实施例。为了进行讨论,该实施例中的步骤可以顺序示出。应当注意的是,在以下描述方法的不同实施例中,所述元件的一个或多个可以采用不同于所示次序而同时执行,或者可以完全省略。其他附加元件也可以按照需要来执行。
[0064] 方法600开始于模块610,然后在模块620检测向数据库恢复多个对象的请求。下一步,对于每个对象(模块630),执行以下步骤。在模块640,可以读取位掩码文件以确定是否对象存储在差异备份文件中。如果该对象在差异备份文件中(条件模块650),那么从差异备份文件检索该对象(模块670)。如果该对象不在差异备份文件中(条件模块650),那么从完整备份文件检索该对象(模块660)。在模块660和670之后,可以将该对象恢复到数据库(模块680)。下一步,如果在模块680中恢复的对象是最后一个对象(条件模块690),那么方法600可以在模块695结束。如果它不是最后一个对象(条件模块690),那么方法600可以返回到模块630以恢复下一个对象。
[0065] 现在转至图7,图中展示了一种用于执行差异备份的方法700的一个实施例。为了进行讨论,顺序示出该实施例中的步骤。应当注意的是,在以下描述的该方法的不同实施例中,所描述元素的一个或多个可以采用不用于所示的顺序同时执行,或可以完全省略。还可以根据需要执行其他附加元素。
[0066] 方法700开始于模块705,然后可以检测执行数据库备份的请求(模块710)。下一步,可以运行定制的查询以便发现并从数据库检索变更映射(模块720)。在一个实施例中,变更映射可以是差异变更映射(DCM)。下一步,备份应用程序可以存储变更映射(模块730)。然后,可以读取数据库备份中的页面并与所存储的变更映射相比较(模块740)。下一步,可以收集包含变更(由变更映射所指示)的页面并存储为差异备份文件(模块750)。在模块750之后,方法700可以在模块760结束。在这种方法中,完整备份可以从客户端的度来执行,但媒体服务器可以只存储数据库的变化,就好像执行差异备份一样。
[0067] 需要注意的是,上述实施例可以包括软件。在这种实施例中,代表所描述系统和/或方法的程序指令和/或数据库(它们都可以称为“指令”)可以存储在计算机可读存储介质中。一般而言,计算机可读存储介质可以包括在用于向计算机提供指令和/或数据过程中可由该计算机访问的任意存储介质。例如,计算机可读存储介质可以包括例如磁或光介质这样的存储介质,如磁盘(固定的或可移动的)、磁带、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW或蓝光。存储介质可以进一步包括易失性或非易失性存储介质,例如RAM(如,同步动态RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2等)SDRAM、Rambus DRAM(RDRAM)、静态RAM(SRAM))、ROM、闪存、可通过外围总线(例如USB接口等)访问的非易失性存储器(如闪存)。存储介质可以包括微电子机械系统(MEMS)以及可通过通信介质(例如网络和/或无线链路)访问的存储介质。
[0068] 在不同的实施例中,本文所述方法和机制的一个或多个部件可以构成计算环境的一部分。在这样的实施例中,根据一个或多个不同模型,可以通过互联网将资源作为服务来提供。这类模型可以包括基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)。在IaaS中,计算机基础设施作为服务进行传送。在这种情况中,服务提供者通常拥有和操作计算设备。在PaaS模式中,开发软件解决方案的开发者所用软件工具和底层设备可以由服务提供者作为服务来提供并掌控。SaaS典型地包括按需作为服务的服务提供商许可软件。服务提供商可以掌控软件,或者可以将软件调配给客户一段给定的时间。以上模式的很多组合形式是可能的并且是可以设想的。
[0069] 尽管已经展示并描述了这些方法的一些实施例,但对本领域的那些普通技术人员将变得明显的是,可以对所描述的方法做出很多改变、修改、或更改。因此这些改变、修改和更改应当在本文所描述的方法和机制的范围内可见。还应当强调的是,上述实施例仅仅是实现方式的非限定性示例。
QQ群二维码
意见反馈