数据恢复系统和方法

文档序号:6553666阅读:517来源:国知局
专利名称:数据恢复系统和方法
技术领域
本发明涉及一种对已经丢失的数据进行恢复的系统和方法。更具体地, 本发明的实施例涉及在数据库镜像环境下进行数据恢复的系统和方法。
背景技术
在日常生活和商业环境中,计算机网络无处不在。除了广泛的互联网应用之外,局域网(LANs)允许用户共享计算机服务。很多企业实体在其机 构内部使用LANs,并通过网络为用户提供数据的存取。对计算机和计算机网络的依赖就产生了提高数据可用性和可靠性的需 求。很多商业实体将几乎所有的商业数据存储在计算机网络中,并且网络用 户希望在任何允许时间内都拥有不间断的数据存取。而这种不间断的数据存 取的需求则需要具有功能增强的软件和硬件的支持。因为网络中存储数据的 数量、网络中数据存取能力的需求都在不断增长,所以保护数据不受如系统 故障、文件损坏和病毒入侵等意外事件的影响就变得越来越困难。一般而言,保护数据不受潜存的破坏性事件的影响,都由用以备份数据 的软件以及用以存储所备份数据的安全硬件共同完成。随着需要保存的数据 量增加,数据备份操作就变得愈加复杂。例如,千兆字节的数据(gigabytes of data)就不能从原始位置快速传输到备份位置。此外,对于持续的数据存取 是绝对必要的环境而言,在进行备份时使得数据变成不可用就不是可行的选 择。虽然对大批量数据进行备份时己经成为问题,但这却不是仅存的与典型 的数据备份系统相关的问题。网络用户和管理员可能还希望对不同类型的数 据进行备份。在文件备份之外,网络用户可能还想备份应用(程序)和服务, 而对应用和服务的备份则颇有难度。例如,当启动备份时,应用和服务通常 都含有打开文件,而此类打开文件一般不能被有效地或可靠地备份,这些文 件在备份操作时经常会被跳过。其结果就是,往往需要额外的备份应用来协
同管理在启动文件系统备份时被跳过的应用和服务的备份操作。与数据备份有关的另外的问题涉及到当数据被传输到备份位置时,备份 数据的跟踪方式。特别地,当数据被备份时,备份副本被移到新的位置,此 时很有必要形成一个有关数据是怎样被存储的记录,以利于对存储数据进行 存取。 一般而言,备份系统包括记录每个备份文件或应用的精确位置的数据 库。当用户希望从备份系统中对文件进行定位或恢复时,数据库在备份介质 中文件的存储位置对文件进行定位。当对备份数据的位置进行跟踪时,典型的备份软件系统仅仅将数据放到 备份位置并在索引中对其位置进行跟踪。更具智能的数据库软件系统则具有 在备份数据时对数据进行分类的功能,这样数据就可以被智能地存储起来。 例如,较为复杂的数据库软件系统可以在同一介质中存储相似文件的备份, 用此方式分类和存储数据将允许更有效的数据存储和恢复。典型备份软件系统的另一个缺点是,在网络中它们不能进行数据的重新 定位,或者在网络中不能有多于一个可用的数据副本。虽然备份软件系统从 网络中的所有用户处收集数据,但数据本身被认为是处在网络中的某个单一 位置中,而不是与其他位置交叉参照。当对网络中的数据进行备份时,上述 冗余和交叉参照都不能实现。备份数据的存取是数据库备份系统的配置中需要考虑的重要因素。备份 数据的目的之一就是以一种方式保存数据,以备当文件损坏或丢失时找回备 份副本和恢复文件之用。当一个文件损坏或丢失后,用户向备份服务器请求 文件的备份副本,备份服务器随后利用文件索引和介质数据库中存储的位置 对此文件定位,恢复该文件,并令该文件变成对用户可用。


为了更进一步明确本发明的实施例的上述和其他特点,将参照附图中示 出的具体实施例对本发明进行更具体描述。应该理解这些附图仅仅是示出了 本发明的典型实施例,而不是用以限定其范围。附图的绘制没有按比例进行。利用下面的附图,结合附加的特点和细节对本发明进行描述和解释,附 图中
图1示出在网络中备份和恢复文件系统数据的系统示例; 图2示出在数据库镜像环境中进行数据库定位的系统示例; 图3示出在数据库镜像环境中对任意数量的数据库进行镜像配置的系统 示例;图4示出数据库恢复系统示例;图5是一个流程图,用以描述通过从数据库请求目标数据而恢复数据的 程序。
具体实施方式
I.数据库操作系统示例图1显示一个适用于本发明实施例的操作环境。在图1中举例说明文件系统数据备份和恢复系统示例("DBRS") 100,其通常的功能是在存储位置 复制在线文件系统数据,以及保存有关该数据的位置和过时的跟踪信息。如 果数据的在线副本丢失或损坏了, DBRS100可以再生该数据。当运行 DBRSIOO的网络出现故障时,DBRS100可以再生所有的DBRS100文件系统,将它们恢复到其当初被写入存储时各自的原始结构。DBRS100的示例性实施例包括三个基本组件备份服务器102, 一个或 多个客户机104、 105、 106、 107和108,以及数据的备份巻110。其中备份服 务器102和客户机104、 105、 106、 107和108是配有运行DBRS100操作所需软 件的实体。备份服务器102包括编配和管理DBRS100功能的程序和服务,客 户机104、 105、 106、 107、禾口108包括执行DBRS100功能的程序和服务。备份服务器102为其客户机组,例如客户机104、 105、 106、 107和108管 理数据。例如,客户机104、 105、 106、 107和108代表在网络上传输文件以 进行备份的机器。备份服务器102可以结合不同的备份组112、 114和116来编 配客户机/数据。备份组是指被作为一个组备份到一起的客户机和/或数据组。 单个客户机可以被包括到多个备份组中,如图示的备份组112和备份组114之 中。DBRS100依靠数据跟踪信息来管理自客户机104、 105、 106、 107和108 中备份的数据,该数据跟踪信息在图1中由备份服务器102的文件索引118和 介质数据库120表示。文件索引118和介质数据库120中的输入项保存内容和
位置信息,该内容和位置信息用以描述已经在DBRS100环境中备份的所有数 据(客户机的机器和文件这两者)。文件备份服务器102的文件索引118是对应每个客户机而编配的备份文 件的浏览目录。网络中每个客户机的每个备份文件都在索引中被列出。文件 索引118的输入项包括文件信息,例如文件类型、文件备份时间以及和该文 件有关的例如存放(hosting)初始文件的客户机等其他信息。因为一个文件 可以被多次备份,而那些备份副本可以存储在多个位置,文件索引118和介 质数据库120中针对客户机文件的输入可以包括有关每一次文件备份的备份 位置和备份时间的信息。文件索引118和介质数据库120中与某一特定文件有 关的多个备份位置和多个备份时间的信息可以使用户识别出待检索文件的 某一特定版本。有关一个文件的多次备份的输入项信息可以在文件索引118 中保留由管理员决定的任意长的时间。当文件索引118对单个文件进行跟踪时,介质数据库120对文件存储的位 置进行跟踪。换句话说,介质数据库120中包括有关介质存储位置的参考信 息。在运行中,每次当备份组112、 114或116被备份到DBRS100的存储巻上 时,介质数据库120接收一个输入项。正如文件索引118的输入项一般,其输 入项将会一直保留在介质数据库120中,直到管理员删除该输入项。如果其 对应的数据己经被重写,介质数据库120中的输入项也是可以删除的。当获得有关数据的位置信息时,数据可以以不同的方式存储。例如,数 据可以存储在例如磁带驱动器,磁盘或可擦除磁盘等可以被服务器102存取 的设备的介质巻上,如图1所示,或者也可以以远程服务器的方式进行存取。 在一个备份数据系统示例中,数据被存储在如备份巻110以及备份设备126、 128、 130和132等设备巻实例上, 一个在设备和巻上存储数据的实例是在磁 盘阵列中存储数据,其中数据被分组存储到各磁盘上。设备和巻上存储数 据的另一个实例是在磁带驱动器中存储数据,其中数据被分组存储到预定的 各磁带巻上。在设备和巻上存储数据的最后一个实例是在远程服务器中存储 数据,其中数据被分组存储到服务器的各硬盘中。虽然这些实例有助于了解 设备和巻的可能配置,但是DBRS100在设备和巻上存储数据的能力并非局限 在给出的实例内。最普遍的看法是,备份设备126、 128、 130和132给出的是 数据存储方式的概念模型,而这些数据存储方式并非局限于特定的系统或设 备°DBRS100中的备份设备126、 128、 130和132的效用因备份设备126、 128、 130和132可以存储各种不同类型数据的能力而进一步增强。具体来说,备份 设备126、 128、 130和132可以包括任何文件类型的数据。例如,图形文件、 程序执行文件和文档文件的备份副本可以在备份设备126、 128、 130和132中一起存储。备份设备126、 128、 130和132的一个基本特性是,备份设备126、 128、 130和132可以加速DBRS100中备份文件的检索。例如,当用户请求对备份文 件进行恢复时,如果文件索引和文件的介质数据库输入项包含高度具体的位 置信息,则DBRS100可以很快地检索文件,上述位置信息包含有关备份设备 126、 128、 130和132的参考信息,以及所使用的具体介质例如,磁带,CD, DVD或用来存储文件的其他介质。关于备份设备126、 128、 130和132的许多特性,包括备份,DBRS100最 初的配置是独立执行各功能。不过,管理员有许多控制DBRS100功能的权限, 如管理员可以针对不同的客户机和/或文件特性来隔离存储文件,以及可以判 定在什么时候备份巻已经被不再使用并且应该被删除。例如,自备份生成起, 经过一个预定时段之后,管理员可以配置DBRS 100以把备份巻从介质数据库 120删除。管理员还可以定义备份组112、 114、和116,其可以包括一个或多 个客户机及其文件、目录、或文件系统、或客户机上所有文件。当对客户机104、 105、 106、 107和108进行存取时,管理员可以在管理 员图形用户接口GUI(未显示)内工作。管理员GUI可以在任何DBRS 1 OO机器上 显示,无论是什么用户平台,都允许管理员对任何客户机104、 105、 106、 107或108进行连接和代理(broker)服务。管理员权限的另一个重要部分包 括可以具体规定应用环境的能力。例如,管理员可以生成记录,该记录指定 例如DBRS100将要使用的备份设备和限定的客户机的序号等的指令。管理员 也可以规定在备份和恢复环境下强制应用的规则,包括备份进度表,以及数 据在被重复使用前将被保护多久。除了管理员权限之外,DBRS100还引入一个系统以恢复丢失数据。当用 户数据丢失或损坏时,用户或管理员可以浏览文件索引118中的可恢复文件, 然后生成状态报告,以描述通过介质数据库120跟踪的、备份设备126、 128、 130和132上的巻内内容中的丢失数据或位置。然后用户可以及时将丢失数据 恢复到用户指定点。当请求恢复丢失数据时,DBRS100定位所要寻找的数据 并指示文件的恢复。数据可以被恢复到原来保存该数据的客户机104、 105、 106、 107或108上,或其他指定的客户机上。此外,DBRS100可以在不同类型的环境中实施而且可以在多个不同平台 上运行。例如,UNIX服务器上的备份软件可以支持windows客户机,反之亦 然。无论服务器平台是什么,涉及一个客户机的任何设备或巻内的备份数据 均可以被读出,并且该设备和巻的数据可以被任何DBRS100服务器及时再生 到用户指定点。而无论客户机104、 105、 106、 107或108的平台是什么,来 自任何系统客户机104、 105、 106、 107或108的备份数据可以在某单个备份 设备或单个介质组上共存。n.动态备份系统和方法A.示例性镜像系统的组件上述的DBRS100示例在网络上智能地存储和检索文件。除了上面讨论的 示例性系统功能之外,该示例性系统可以支持多种其他的应用和特性。其中 一个应用包括用以解释数据库镜像的数据库备份的特性。图2显示一个示例性数据库镜像系统200。该数据库镜像系统200包括数 据库服务器202和数据库服务器204。数据库服务器202和数据库服务器204中 的一个被指定为主服务器,而另一个被指定为副服务器。当数据库服务器202 被指定为主服务器时,位于服务器202上的用户数据库206是实时数据库(live database)。类似地,当数据库服务器204指定为副服务器时,用户数据库208 是镜像数据库(mirror database)。除了用户数据库206和208之外,数据库服务器202和数据库服务器204分 别包括系统数据库210和212,系统数据库210和212包括用以将用户数据库 206和208设定为"实时"或"镜像"数据库的信息。当用户数据库206和208 配置成参与数据库镜像时,服务器应用214和216分别更新在数据库服务器 202和数据库服务器204上安装的系统数据库210和212,以使其包含所有有关 用户数据库206和208作为"实时"或者"镜像"中的一个的状态信息。在此 初始设置之后,在系统数据库210和212上的所有包括有关用户数据库206和 208作为"实时"或"镜像"的状态的信息被服务器应用214和216保存。每一
个服务器应用214和216监测用户数据库206和用户数据库208的状态,并记录 与服务器应用有关的系统数据库中每一个用户数据库206和用户数据库208 的状态。例如,当用户数据库206的状态从"实时"转为"镜像"时,用户 数据库206的状态改变被服务器应用214监测到并被记录在系统数据库210 中。用户数据库208从"镜像"转换到"实时"的即时状态变化也被服务器 应用214检测和在系统数据库210中记录。类似地,当用户数据库208从"镜 像"转换到"实时"时,用户数据库208的状态改变同样被服务器应用216监 测并记录在系统数据库212中。用户数据库206从"实时"转换到"镜像"的 即时状态变化也被服务器应用216监测并记录在系统数据库212中。服务器应用214和216监测用户数据库206和208的状态变化,服务器应用 模块218和220管理数据库镜像系统200中用户数据库206和208的状态信息。 一个模块,例如服务器应用模块218和220,是可以运行某个功能如用户数据 库的备份和/或恢复的编码块。例如,由一个模块运行的功能可以是微软SQL 服务器数据库的备份和/或恢复,此时用户数据库206和208是微软SQL服务器 数据库,并且服务器应用214和216是微软SQL服务器应用。虽然本发明可以 和微软SQL服务器一起使用,但本发明的范围不能被局限于使用微软SQL服 务器,而是可以扩充到能与此处揭示的系统、设备和程序兼容的任何其他服 务器。服务器应用214和216的每一个均与一个特定的服务器应用模块相关。此 外,服务器应用模块218与服务器应用214相关,且服务器应用模块220与服 务器应用216相关。在数据库服务器202上,服务器应用模块218询问系统数 据库210的状态信息,以判断用户数据库206是实时用户数据库还是镜像用户 数据库。同样,在数据库服务器204上,服务器应用模块220询问系统数据库 212的状态信息,以判断用户数据库208是实时用户数据库还是镜像用户数据 库。在数据库镜像系统200内备份实时用户数据库之前,服务器应用模块218 和220中的一个首先识别当前的实时用户数据库。在备份操作期间,服务器应用模块218和220不仅用以判定实时用户数据 库,服务器应用模块218和220还相互传输信息以协调并管理在备份和恢复操 作期间的镜像关联。当服务器应用模块218或220被与图1所示的备份服务器 102对应的备份服务器221调用时,服务器应用模块218和220可以检测用户数
据库206的和208的设置的改变。进而,服务器应用模块218和220彼此传输关 于用户数据库206和208的指定改变的信息。在服务器应用模块218和220彼此 传输信息之后,服务器应用模块218再将用户数据库206和208的指定改变传 输到备份服务器221 。备份服务器221就能够在备份数据库服务器的相关保存 集(saveset)内将有关用户数据库206和208的指定信息更新,并询问与实时 数据库对应的服务器应用模块218或220,以实现备份操作。假设发生了故障恢复(failover),该故障恢复导致用户数据库206的状 态从"实时"改变为"镜像",举例说明为了完成备份和恢复操作,服务器 应用模块218和220彼此之间是如何传输信息,以及随后与备份服务器221是 如何传输信息的。当服务器应用模块218在故障恢复发生后被调用时,服务 器应用模块218与服务器应用模块220传输针对用户数据库206的状态信息, 服务器应用模块218从服务器应用模块220获知该用户数据库208是当前的实 时数据库,同时服务器应用模块218也告知服务器应用模块220此时用户数据 库206是镜像数据库。在与服务器应用模块220传输信息之后,服务器应用模 块218与备份服务器221传输信息,将用户数据库206和用户数据库208的状态 改变告知备份服务器221 。然后备份服务器221在备份于数据库镜像系统200 中的数据库服务器的保存集信息中记录被修改的状态信息。这一程序被称为 探测,用于定位实时数据库。在数据库镜像系统200内开始备份操作之前,必须首先确定实时数据库 的位置。当启动备份操作之后,可以连接位于数据库服务器202上的服务器 应用214和位于数据库服务器204上的服务器应用216中的任何一个以定位实 时用户数据库。备份操作可以由用户或备份服务器221启动。备份服务器221 与服务器应用模块218或220连接,而后者可以与服务器应用214或216连接, 以判定用户数据库206和208的状态。与实时用户数据库206或208对应的服务 器应用模块218或220运行备份操作。用户数据库206和208的状态通过从系统 数据库210和212中读入的信息而确定。例如,如果备份服务器221与服务器 应用模块218连接,服务器应用模块218通过连接服务器应用214而执行读入 系统数据库210的表格输入项的功能。类似地,如果备份服务器221与服务器 应用模块220连接,服务器应用模块220通过连接服务器应用216而执行读入 系统数据库212的表格输入项的功能。系统数据库210和212的表格输入项包
含有关用户数据库206和208的状态信息。每个系统数据库210和212包含数据 库镜像系统200中的每个用户数据库206和208的状态信息。例如,系统数据 库210可以包含有关用户数据库206作为"实时"用户数据库,以及用户数据 库208作为"镜像"用户数据库的状态信息。在系统数据库210和212包含的 有关每一个用户数据库206和208的信息允许备份服务器通过连接位于数据 库服务器202和204上的服务器应用模块218和220中的仅其中之一而获得有 关实时数据库的位置信息。假设用户数据库206是当前的实时用户数据库,而用户数据库208是当 前的镜像数据库,举例说明在备份操作期间数据库镜像系统200内运行的功 能。当启动备份操作之后,备份服务器221与位于数据库服务器204上的服 务器应用模块220连接,然后服务器应用模块220通过与服务器应用216连 接而读入系统数据库212的表格输入项。系统数据库212的表格输入项指示 用户数据库208是镜像数据库,而用户数据库206是实时数据库。服务器应 用模块220会将此信息返回给备份服务器102。然后,因为用户数据库206 是当前的实时数据库,备份服务器102对该用户数据库206进行备份。请参考图l,在备份实时用户数据库之后,存有实时用户数据库的数据 库服务器的名称被记录到位于备份服务器102上的文件索引118中。在文件索 引118中对实时用户数据库制作的输入项是实时输入项(live entry)。而存有 镜像数据库的数据库服务器的名称也被记录在文件索引118中。在文件索引 118中对镜像用户数据库制作的输入项被称为别名输入项(alias entry)。通 过记录在进行预定备份时每个用户数据库的状态,文件索引118中的输入项 使得能够重组备份链,并在需要恢复实时用户数据库的情形中,提供一个可 以很容易地识别实时用户数据库的方法。请回到附图2,从上面可以注意到,为了让备份服务器102(图1)可以对实 时用户数据库进行备份,在数据库镜像系统200内对用户数据库206和208的 状态进行跟踪。当数据库服务器202和204分别包括用以跟踪用户数据库206 和208的状态的系统数据库210和212时,也可以在数据库镜像系统200内引入 见证数据库服务器(witness) 222以跟踪用户数据库206和208的状态。例如, 当用户数据库206的状态从"实时"数据库转换到"镜像"数据库时,见证数 据库服务器222通过将用户数据库206的当前状态记录到系统数据库224中而
跟踪该变化。类似地,当用户数据库208的状态从"镜像"数据库转换为"实时"数据库时,见证数据库服务器222在系统数据库224内对用户数据库208 的状态变化进行跟踪。这样,系统数据库224分别运行与位于数据库服务器 202和204上的系统数据库210和212类似的功能。见证数据库服务器222和数据库服务器202之间的另一个相似点在于,与 数据库服务器202和204相似,见证数据库服务器222包括有服务器应用226和 服务器应用模块228。服务器应用226运行类似在服务器应用214和216上运行 的功能。即,服务器应用226被存有用户数据库206和208的状态的服务器应 用214和216更新,并且在系统数据库224中保存此信息的记录。服务器应用 模块22S,与服务器应用模块218和220类似,也通过与服务器应用模块218和 220传输信息而获得用户数据库206和208的状态信息,并且服务器应用模块 228也通过与服务器应用226连接而检索来自系统数据库224的此信息。除了跟踪用户数据库206和208的状态之外,见证数据库服务器222还可 以运行其他功能。例如,见证数据库服务器222可以参与到数据库镜像系统 200的角色指定中。具体来说,见证数据库服务器222可以参与将实时数据库 的角色指定给用户数据库206,将镜像数据库角色指定给用户数据库208。角 色的指定以实时数据库服务器202、镜像数据库服务器204和见证数据库服务 器222中的多数一致的信息为根据。更具体地,见证数据库服务器222可以判 别用户数据库206和用户数据库208在不同角色间的变化。见证数据库服务器 222可以在数据库镜像系统200内驱动自动故障恢复以及伴随的用户数据库 206和208的状态改变。例如,如果当故障恢复发生而用户数据库206是实时 数据库时,见证数据库服务器222立刻将实时数据库的角色指定给用户数据 库208并且将用户数据库206的角色改变为镜像数据库。通过判别用户数据库 206和208角色的改变,见证数据库服务器222确保在发生故障恢复时没有数 据丢失。如果在数据库镜像系统200中没有见证数据库服务器222, 一个用户 可以选择驱动故障恢复并将用户数据库206的角色指定为实时数据库,将用 户数据库208的角色指定为镜像数据库。如图2所示,虽然数据库镜像系统可以仅仅包括主服务器202、副服务器 204和见证数据库服务器222,但镜像数据库也可以有很多其他结构。如图3 所示,既没有针对可以被镜像的不同数据库的数量的限制,也没有针对存放
镜像数据库的数据库服务器之间的关联的限制。例如,第一数据库服务器302可以存放实时数据库"A" 304,也可以存放镜像数据库n'306。第二数据库 服务器308可以存放实时数据库"B"310,也可以存放镜像数据库A'312。在 这个实例中,保存在第二数据库服务器308上的镜像数据库A' 312与保存在第 一数据库服务器302上的实时数据库A304联系在一起。但是,与实时数据库 B310联系在一起的镜像数据库B' 314,不是保存在第一数据库服务器302上, 而是改为保存在第三数据库服务器316上。除了存放镜像数据库B' 314之外, 第三数据库服务器316还存放实时数据库C318。最后,第n数据库服务器320 存放实时数据库n 322和镜像数据库(n-l)' 324。图3举例说明在多个数据库服 务器上的实时和镜像数据库的一个示例性实施例的结构。此外,任何数据库 服务器302、 308、 316或320都可以作为任何数据库的见证服务器。然而,在 任意数量的数据库服务器上可以有任意数目的实时数据库和镜像数据库的 不同结构,并且可以被本发明的实施例实现。本发明的范围并不限于与在预 定服务器上保存的实时数据库和镜像数据库的任何特定组合相联系而应用。在此揭示的备份数据的方法的实例在美国专利申请号11/080, 229、名称 为"Systems and Methods for Dynamic Data Backup" (Workman Nydegger案号 16192丄1沖公开,该专利申请在本专利申请的同一日申请,并通过参考援引 于此。B.镜像功能请再参阅图2,模块218、 220和228以及用户数据库206和208是数据库镜 像系统200的模块的示例。模块218、 220和228以及用户数据库206和208配置 成以如下方式协作允许数据从数据库镜像系统200的数据库206和208进行 备份。如前所述,在一个数据库镜像系统200的示例中至少包括二个数据库服 务器202和204,以及用户数据库206和用户数据库208。在包括两个或更多数 据库服务器202和204的网络中,用户数据库206和用户数据库208中的任何一个均可以被指定为实时用户数据库或镜像用户数据库中的任意一个。虽然用 户数据库206最初被指定为实时用户数据库,而用户数据库208最初被指定为镜像用户数据库,但对预定数据库的指定可以随时改变。因此,"实时"和 "镜像"的角色可以被动态地重新指定。例如,保存在数据库服务器202上的
用户数据库206可能最初是被指定为实时用户数据库。随着保存在数据库服务器202上的用户数据库206被指定为实时用户数据库,保存在数据库服务器 204上的用户数据库208就被指定为镜像用户数据库。随后,各用户数据库206 和208的角色可以被改变,对用户数据库206的指定将从"实时"变成"镜像", 同时对用户数据库208的指定将从"镜像"变成"实时"。在网络中,各用户数 据库206和208的角色可以根据任意个数的理由而改变,这些理由例如是保存 被指定为实时用户数据库的用户数据库206的数据库服务器202发生故障,不 同的用户数据库角色的预定改变,或通过一个附加的数据库服务器(例如见 证数据库服务器222)或其他的系统设备进行的判别结果。被包括在数据库镜像系统200中的用户数据库可以被指定为实时用户数 据库或镜像用户数据库,而保存有用户数据库的客户机也可以被指定为"实 时"客户机或"镜像"客户机。当保存其上的用户数据库被指定为实时用户数 据库时,客户机被称为实时客户机;而当保存其上的用户数据库被指定为镜 像用户数据库时,客户机被称为镜像客户机。在镜像数据库的系统200内,不仅用户数据库206和208的角色随着时间 而动态地改变,并且这些角色并不是随意而定的,而是与不同的用户数据库 206和208所运行的预定功能有关。具体来说,数据库镜像系统200之所以指 定用户数据库206为"实时",是因为在系统中,该用户数据库206是主动工 作的数据库。在进行备份操作时,被指定为实时用户数据库的用户数据库206 是数据库镜像系统200中被备份的数据库。同时,用户数据库208,当被指定 为镜像用户数据库时,是被动的,只要被指定为镜像用户数据库,该用户数 据库208就不直接介入备份操作。虽然被指定为镜像用户数据库的用户数据库208不直接介入备份操作, 但是数据库镜像系统200可能需要被指定为镜像用户数据库的用户数据库 208随时转换角色,以担当实时用户数据库的角色。为此,每次当被指定为 镜像数据库的用户数据库206的表格被修正时,被指定为镜像用户数据库的 用户数据库208都要接收和存储与数据库更新有关的信息。g卩,只要用户数 据库208被指定为镜像用户数据库,用户数据库208就要"镜像"被指定为实 时用户数据库的用户数据库206中的输入项,以保存被指定为实时用户数据 库的用户数据库206所有数据的最新记录。这样,在数据库镜像系统200需要
用户数据库208的角色从镜像转换为实时用户数据库的情形下,没有用户数 据库信息被丢失或变得无法存取。因为当用户数据库206的功能为实时用户 数据库时,所有出现在用户数据库206中的信息也会在用户数据库208中出 现,此时用户数据库208的功能就是镜像用户数据库。作为执行诸如在此公开的数据库镜像处理的标准示例,在本申请中通过 参考援弓I标准型微软SQL服务器2005(编号名称Yukon)。在一个实施例示例 中,本发明可以结合微软SQL服务器2005(Yukon)数据库实施。然而,本发明 也可以适用或期望用于其他应用,本发明的范围并限于结合微软SQL服务器 2005(Yukon)的应用。C.镜像环境下的数据库恢复操作数据库系统的镜像功能为需要恢复丢失数据库的客户机提供了附加的 管理和逻辑(logistical)选择。如图1所示,DBRS100是一个可以运行备份和 恢复操作的数据库系统的实例,当然本发明的范围并不受DBRS100或任何特 定数据库系统的局限。数据库系统的镜像特性能够生成这样一个环境,在其 中总有可用的数据库,所以对客户机而言总有可以存取的数据库。客户机, 也称为数据库服务器,是镜像数据库系统内的计算机,用户或管理员通过所 述计算机进行数据库的存取、备份和恢复。在一个包含了客户机的数据库镜 像系统中,客户机无需具有在实时数据库和镜像数据库之间转换角色的知 识。当用户想启动恢复操作时,假定镜像关联存在,则镜像系统数据库中客 户机之间的镜像关联被终止,数据库信息在恢复服务器中被检索,数据库被 再生于在数据库镜像系统中的客户机上。然后镜像关联被重建,恢复程序完 成。现在请参阅图4,其中提供了数据库恢复系统400的细节,利用该数据库 恢复系统400可以运行示例性的数据库恢复操作。当数据库恢复系统400中的 客户机402希望再生用户数据库时,客户机402与恢复服务器404传输信息。 除了作为恢复服务器之外,恢复服务器404在数据库镜像系统100内的备份操 作期间还可以作为备份服务器102(如图1所示)。客户机406,以及可选择的见 证客户机408,也被设置在数据库恢复系统400中,而且能与恢复服务器404 传输信息以再生用户数据库。除此之外,数据库恢复系统400内的客户机402 和406是镜像伙伴。如客户机402和406的镜像伙伴之间的关联的称为动态镜
像关联,其被定义为一种关联,其中位于例如客户机402和406等客户机上的 用户数据库的实时和镜像角色指定能够随着时间而动态地改变。虽然客户机402和406、以及见证客户机408中的每一个都可以设置于数 据库恢复系统400中,但在单个恢复操作期间,恢复服务器404仅仅处理来自 客户机402、客户机406或见证客户机408的一个恢复请求。不过,从客户机 402、 406或见证客户机408向存储服务器404发出的请求可以涉及多个数据库 的再生。多个数据库可以在客户机402上同时再生。具体而言,正如图3所示 以及与如图3对应的说明所描述的,客户机402可能是多个镜像关联中的镜像 伙伴。由此,在恢复操作期间,其镜像关联涉及客户机402的任何一个数据 库都可以在上再生。如果有客户机402同时涉及多个镜像关联中,则多个数 据库就可以在进行单一恢复操作时在客户机402上再生。数据库恢复系统400的恢复操作被存取客户机402、 406或408的用户或管 理员启动。由用户或管理员进行存取的客户机被称为"当前客户机"。在下 面的讨论中,当前客户机是客户机402。但很显然,当前客户机既可以是客 户机406也可以是408。因为下面的讨论中客户机402是当前用户,就由位于 客户机402上的模块410启动模块功能,当然,如果客户机406或408是当前客 户机,位于客户机406和408之上的模块424或426中的任何一个都分别可以启 动数据库恢复系统400的模块功能。当恢复操作被启动后,假定镜像关联存在,则分别位于客户机402、 406 和408上的模块410、 424和426必须终止数据库恢复系统400中的客户机402、 406和408之间的镜像关联。首先,位于当前客户机402上的模块410控制同样 位于当前客户机402上的服务器应用420,以终止其镜像关联。然后服务器应 用420重写系统数据库422内的镜像关联信息。模块410也发指令给模块424和 426来分别控制服务器应用428和430,以终止在客户机402、 406和408之间的 镜像关联。随后,模块424和426分别控制服务器应用428和430,以终止其镜 像关联。服务器应用428重写系统数据库432中包含的镜像关联信息,服务器 应用430重写系统数据库434中包含的镜像关联信息。 一旦系统数据库422、 432和434的镜像关联信息被重写,客户机402、 406和408之间的镜像关联就 被终止。当启动恢复操作后,存取当前客户机的用户或管理员必须选择用户或管 理员希望再生的数据库的备份版本。每次当用户数据库被备份后,数据库的不同版本可以通过恢复服务器404完成备份。因此,恢复服务器404可以存取 数据库的任何数目的不同版本的备份副本。例如,用户数据库的备份可能在 第1天发生于时间A、 B、和C,在第2天发生于时间D、 E和F,在第3天发生 于时间H和G。这些天数和时间的每一个均代表一个特定的用户数据库的备 份版本。希望再生用户数据库的用户或管理员必须选择再生这些版本中的那 一个。例如,用户或管理员可以决定,其希望再生的用户数据库版本是在第 3天的G时间备份的版本。当启动恢复操作后,当前客户机将会从恢复服务器 404中请求第3天G时间备份的用户数据库。用户或管理员选择再生的用户数 据库的特定备份版本也被称为"目标数据"。有关目标数据的信息,以及所有通过恢复服务器404完成备份的用户数 据库的版本,被包含在位于恢复服务器404上的文件索引412和介质数据库 414中。存取当前客户机的用户或管理员并不需要独立地知道用户或管理员 希望再生的目标数据。通过位于客户机402上的模块410,用户或管理员存取 位于恢复服务器404上的文件索引412和介质数据库414,并可以检査文件索 弓I412和介质数据库414所包含的信息。通过检査包含在文件索引412和介质 数据库414中的有关用户数据库备份版本的信息,用户或管理员可以识别出 目标数据。文件索引412和介质数据库414中的信息包括所有用户数据库的备 份版本的识别特性,例如,备份运行日期,备份运行时间,以及用户数据库 特定备份版本的存储位置。在文件索引412中包含的每个用户数据库的备份版本的信息还包括在 运行用户数据库的备份操作时存放用户数据库的客户机的状态。例如,如果 在对目标数据进行备份时,客户机402是实时客户机,文件索引412将包含一 个客户机402的实时输入项。同理,如果在对目标数据进行备份时,客户机 402是镜像用户,文件索引412将包含一个客户机402的别名输入项。因为对 客户机402是实时客户机还是镜像客户机的指定将决定位于客户机402上的 用户数据库416是被指定为实时用户数据库还是镜像用户数据库,所以文件 索引412中的实时输入项和别名输入项可以表示在备份操作时,用户数据库 416是被指定为实时还是镜像数据库。当运行目标数据的备份时,文件索引 412中有关客户机402的指定信息,以及有关客户机406和408的指定信息,对
再生目标数据后在数据库恢复系统400内重建镜像关联而言变得很重要。下面将讨论镜像关联重建的更具体的细节。如上所知,位于客户机402上的模块410对文件索引412、恢复服务器404 和介质数据库414进行存取,以使用户或管理员识别目标数据并获取目标数 据的信息。当位于客户机402上的模块410己经完成文件索引412中包含的信 息的存取之后,模块410从恢复服务器404请求目标数据。恢复服务器404定 位并检索目标数据,并将目标数据传输至信息给模块410。在目标数据已经 被检索之后,模块410向服务器应用420传输目标数据信息,然后服务器应用 420利用该目标数据再生用户数据库416。除了与服务器应用420传输信息之外,模块41 O还分别与客户机406和408 中的模块424、 426传输信息。具体地,模块410将经由恢复服务器404检索的 目标数据的信息传输到模块424和426。然后模块424将接收到的目标数据传 输到服务器应用428,随后服务器应用428利用该目标数据再生用户数据库 418。因为位于客户机408上的服务器应用430并没有包括用户数据库,所以 模块426不会向客户机408传输目标数据。用户数据库416和418分别被服务器 应用420和428使用同一个目标数据再生,因此,只要用户数据库416和418已 经被再生,用户数据库416和418中的每一个都包括目标数据的同一副本。然 而,在数据库恢复系统400内启动恢复操作的用户也可能只选择恢复一个用 户数据库,如用户数据库416,而保留用户数据库418,因此用户数据库418 不被重写。在用户数据库416和418再生之后,客户机402、 406和408之间的镜像关 联被重建。在发生备份操作时从文件索引412经由模块410获得的有关客户机 402、 406、和408的指定信息,被用于重新指定客户机402、 406和408为实时、 镜像、或见证客户机。如果由模块410从文件索引412获得的有关当前客户机 402的指定信息表示在进行备份操作时当前客户机402曾经是实时客户机,那 么当前客户机402将被重新指定为实时客户机。对当前客户机402作为实时客 户机的重新指定暗含地包括对用户数据库426作为实时用户数据库的重新指 定。如果包含在文件索引412的信息表示在目标数据备份时当前客户机402曾 经是镜像客户机,则用户可以选择重新指定客户机402为镜像客户机,因此 也重新指定用户数据库416为镜像用户数据库。
虽然模块410已经获得有关客户机402、 406和408作为实时、镜像、或见 证的信息,但镜像关联并没被重建,直到服务器应用420、 428、和430将角 色指定信息分别写入系统数据库422、 432和434。模块410,在已经获得来自 文件索引412的角色指定信息后,向服务器应用420传输角色指定信息。然后 服务器应用420将该角色指定信息写入系统数据库422。模块410将角色指定 信息传输给模块424和426,模块424和426分别与服务器应用428和430传输信 息。然后服务器应用428和430将该角色指定信息分别写入系统数据库432和 434。角色指定信息表示在进行目标数据备份时客户机402曾经是实时客户机 而客户机406曾经是镜像客户机。该角色指定信息也同样表示当运行目标数 据备份时,位于客户机402上的用户数据库416被指定为实时用户数据库,以 及位于客户机406上的用户数据库418被指定为镜像用户数据库。当角色指定 信息被服务器应用420、 428和430分别写入系统数据库422、 432、和434之后, 客户机402和406被重新指定为实时客户机402和镜像客户机406。当文件索引 中的信息指出客户机408既不是实时用户也不是镜像用户时,客户机408就被 重新指定为见证客户机。在数据库恢复系统400中运行的恢复程序的细节描 述包括在在下面针对图5的讨论。请参阅图5,在一个数据库恢复系统,例如数据库恢复系统示例400中运 行的示例恢复程序500中,示范了客户机之间的镜像关联是如何被终止,用 户数据库信息如何在客户机上再生,以及客户机间的镜像关联是如何被重建 的。恢复程序500出现于在数据库恢复系统内存在、并参与其镜像关联的每 个客户机上。此外,组成恢复程序500的步骤是示例性的,而且其运行次序 可以改变以适用于恢复程序500的任何特定应用。当存取客户机的用户或管 理员请求恢复操作时,程序500从步骤502开始。在步骤503中判别数据库恢 复系统的客户机之间存在还是不存在镜像关联。如果存在镜像关联,则终止 在数据库恢复系统的客户机之间的镜像关联如步骤504所示。当位于每个客户机上的服务器应用重写存在于服务器应用中的系统数据库时,镜像关联被 终止。如果客户机之间不存在镜像关联,那么在步骤506中,在数据库恢复 系统中位于客户机上的模块存取位于恢复服务器上的文件索弓I和介质数据 库中包含的信息。该模块从文件索引和介质数据库获得的信息包括由恢复服 务器恢复的不同备份版本的识别信息和角色指定信息。
由该模块获得的识别信息,可以帮助存取该模块所位于的客户机的用户 或管理员识别用户或管理员希望恢复的备份数据库或目标数据的预定备份 版本。
一旦用户数据库数据再生,角色指定信息将允许镜像关联被重建。继续参考存储程序500,在步骤508中,用户或管理员识别待再生的目标 数据。然后在步骤510中,客户机读出文件索引的输入项以识别角色指定信 息。在步骤512中,由模块判别该模块所位于的客户机是否与作为实时输入 项的目标数据的文件索引输入项中列出的客户机相匹配。如果客户机与实时 输入项中列出的客户机匹配,则存储程序500继续,模块从恢复服务器请求 目标数据,如步骤514所示。恢复服务器检索目标数据并向模块传输该目标 数据,如步骤516所示。然后模块向服务器应用传输该目标数据,服务器应 用再生位于当前客户机上的用户数据库,如步骤518所示。当模块向服务器应用传输目标数据时,在步骤518中,模块也将由该模 块从文件索引中获得的角色指定信息传输到服务器应用中。在步骤520中, 服务器应用写入位于客户机上的服务器应用中的系统数据库的角色指定信 息,并将位于客户机上的用户数据库设定为实时用户数据库,同时将该客户 机设定为实时客户机。在步骤512中,如果客户机与文件索引实时输入中列出的客户机不匹配 的话,恢复程序500在步骤522继续,由客户机判别其是否与文件索引的别名 输入项中列出的客户机相匹配。如果客户机与文件索引的别名输入项中列出 的客户机相匹配,恢复程序500继续步骤524,模块向恢复服务器请求目标数 据。恢复服务器检索目标数据并向该模块传输目标数据,如步骤526所示。 然后模块向服务器应用传输目标数据,服务器应用再生位于与模块和服务器 应用相关联的客户机上的用户数据库,如步骤528所示。如上所述,当模块向服务器应用传输目标数据时,模块也将由该模块从 文件索引获得的角色指定信息传输到服务器应用上,同样如步骤528所示。 在步骤530中,服务器应用写入位于客户机的服务器应用上的系统数据库的 角色指定信息,并将用户数据库设定为镜像用户数据库,同时将客户机设定 为镜像客户机。当模块存取在文件索引和介质数据库内包含的信息时,如果模块确认客 户机既没有和文件索引实时输入项中列出的客户机、也没有和文件索引的别
名输入项中列出的客户机相匹配,在这种情形下,如步骤532所示,该客户 机就是见证客户机。在步骤534中,模块将从文件索引获得的角色指定信息 输送到客户机的服务器应用中,并且该服务器应用将角色指定信息写入位于 客户机上的系统数据库中。当目标数据再生之后,并且角色指定信息也已经 在数据库恢复系统的每位用户的系统数据库中被写入之后,镜像关联被重 建,恢复程序500完成。因此,示例恢复程序500提供一种从介入镜像关联的用户数据库中备份 的目标数据进行恢复的方法。通过终止镜像关联,恢复和再生丢失的用户数 据库信息,并重建数据库镜像关联,本发明的实施例提供一种对已经在动态 数据库镜像环境下备份的数据的恢复方法,在该动态数据库镜像环境下用户 数据库的角色指定可以随着时间而动态改变。本发明可以用其他特定方式实施而不会背离其精神或主要特点。在所有 方案中描述的实施例都仅仅是示例性的而不是限制性的。因此,本发明的范 围由附加的权利要求示出,而不是由前面的说明书示出。落入权利要求的等 同方案的内涵和范围内的所有变换均被包括在其范围内。
权利要求
1.一种在网络中恢复备份数据的方法,该网络包括位于第一客户机上的第一数据库,以及位于第二位客户机上的第二数据库,该方法包括如下步骤启动恢复操作请求;终止所述第一数据库和第二数据库之间的动态镜像关联;识别要恢复的目标数据;生成对该目标数据的位置信息的请求;接收该目标数据的位置的相关位置信息;传输对该目标数据的请求;接收该目标数据;在位于所述第一客户机和第二客户机上的第一数据库和第二数据库中再生该目标数据;以及重建所述第一数据库和第二数据库之间的动态镜像关联。
2. 如权利要求1所述的方法,其中,该目标数据通过在位于恢复服务器 上的文件索引和介质数据库中包含的位置信息而被识别。
3. 如权利要求1所述的方法,其中,该动态镜像关联通过在分别位于所 述第一客户机和第二客户机上的系统数据库中写入角色指定信息而被重建。
4. 如权利要求1所述的方法,还包括如下步骤 从文件索引中检索角色指定信息;以及将该角色指定信息写入位于所述第一客户机和第二客户机上的系统数 据库中。
5. 如权利要求4所述的方法,其中,该角色指定信息涉及在备份该目标 数据时对第一数据库和第二数据库的角色指定。
6. 如权利要求4所述的方法,其中,该文件索引中的实时输入项表示当 备份该目标数据时在该实时输入项中列出的第一数据库或第二数据库被指 定为实时数据库。
7. 如权利要求4所述的方法,其中,该文件索引中的别名输入项表示当 备份该目标数据时在该别名输入项中列出的第一数据库或第二数据库被指 定为镜像数据库。
8. 如权利要求1所述的方法,其中,由见证客户机判别该动态镜像关联。
9. 如权利要求1所述的方法,其中,通过将角色指定信息写入位于所述第一客户机、第二客户机和一见证客户机上的系统数据库而重建该镜像关 联。
10. —种有助于在网络中恢复备份数据库的方法,该网络包括至少两个客户机,该方法包括如下步骤 接收对备份数据库的请求;允许所述至少两个客户机之一对包含有动态镜像关联信息的文件索引中的输入项进行存取;识别该备份数据库的位置; 检索该备份数据库;以及将该备份数据库传输到所述至少两个客户机之一。
11. 如权利要求10所述的方法,其中,该文件索引中的输入项记录当备 份数据库时数据库的角色指定。
12. 如权利要求10所述的方法,其中,该文件索引中的实时输入项表示 当备份数据库时在该实时输入项中涉及的数据库被指定为实时数据库。
13. 如权利要求10所述的方法,其中,该文件索引中的别名输入项表示 当备份数据库时在该别名输入项中涉及的数据库被指定为镜像数据库。
14. 如权利要求10所述的方法,其中,该备份数据库的位置是远程存储 位置。
15. 如权利要求10所述的方法,其中,对该备份数据库的检索还包括如 下步骤存取存储位置;以及自该存储位置获取该备份数据库的副本。
16. —种计算机程序产品,用以实现在网络中恢复数据的方法,该网络 包括位于第一客户机上的第一数据库和位于第二客户机上的第二数据库,该 计算机程序包括计算机可读介质,其上载有用以实现包括如下步骤的方法的可执行指令启动恢复操作请求;终止所述第一数据库和第二数据库之间的动态镜像关联;识别要恢复的目标数据;生成对该目标数据的位置信息的请求;接收该目标数据位置的相关位置信息;传输对该目标数据的请求;接收该目标数据;在位于所述第一客户机和第二客户机上的第一数据库和第二数据库中 再生该目标数据;以及重建所述第一数据库和第二数据库之间的动态镜像关联。
17. 如权利要求16所述的计算机程序产品,其中,该目标数据通过位于 恢复服务器上的文件索引和介质数据库中包含的位置信息而被识别。
18. 如权利要求16所述的计算机程序产品,其中,该动态镜像关联通过 在分别位于所述第一客户机和第二客户机上的系统数据库中写入角色指定 信息而被重建。
19. 如权利要求16所述的计算机程序产品,还包括如下步骤 从文件索引中检索角色指定信息;以及将该角色指定信息写入位于所述第一客户机和第二客户机上的系统数 据库中。
20. 如权利要求19所述的计算机程序产品,其中,该角色指定信息涉及 在备份该目标数据时对所述第一数据库和第二数据库的角色指定。
21. 如权利要求19所述的计算机程序产品,其中,该文件索引中的实时 输入项表示当备份该目标数据时在该实时输入项中列出的第一数据库或第 二数据库被指定为实时数据库。
22. 如权利要求19所述的计算机程序产品,其中,该文件索引中的别名 输入项表示当备份该目标数据时在该别名输入项中列出的第一数据库或第 二数据库被指定为镜像数据库。
23. 如权利要求16所述的计算机程序产品,其中,由见证客户机判别该动态镜像关联。
24. 如权利要求16所述的计算机程序产品,其中,通过将角色指定信息 写入位于所述第一客户机、第二客户机和一见证客户机上的系统数据库而重 建该镜像关联。
全文摘要
在包括位于第一客户机上的第一数据库和位于第二客户机上的第二数据库的网络中,用户或管理员启动恢复操作。终止第一客户机和第二客户机之间的动态镜像关联,并且识别用户或管理员希望恢复的数据库的备份副本。当运行备份操作时,第一客户机或第二客户机之一从恢复服务器中接收有关数据库备份副本的位置信息及数据库的角色指定信息。数据库的备份副本从存储位置检索并再生于第一和第二客户机的每一个之上,重建第一客户机和第二客户机之间的动态镜像关联。
文档编号G06F11/00GK101120319SQ200580048140
公开日2008年2月6日 申请日期2005年12月21日 优先权日2004年12月30日
发明者克雷格·邓肯, 木 柴, 阿迪蒂亚·卡普尔, 马闻璐 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1