动态数据备份的系统及方法

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


为了进一步清楚说明本发明示例性实施例的以上以及其它方面,通过参 考附图中显示的具体的示例性实施例给出本发明更为具体的说明。可以理解 的是,这些附图只是描绘了本发明的示例性实施例,并不能因此认为对本发 明的范围进行了限定。附图没有按比例绘制。通过如下附图对本发明的附加 特性和细节加以说明和解释,其中
图1示出在网络中备份文件系统数据的示例性系统;
图2示出在数据库镜像环境中定位数据库的示例性系统;
图3示出在数据库镜像环境中为多个数据库配置镜像关系的示例性系
统;
图4示出在数据库镜像环境中确定实时数据库和备份数据库的示例性过
程; 图5示出在数据库镜像环境中备份数据库的示例性过程。
具体实施例方式
I.示例性数据库操作系统
在图1中示出了适用于本发明实施例的一个操作环境。图1示出示例性
文件系统数据备份及恢复系统("DBRS" ) 100, DBRS IOO通常具有如下 功能在存储位置重现在线文件系统数据以及维护关于该数据的位置追踪信 息和过时的追踪信息。如果数据的在线版本丢失或损坏,DBRS 100能够重 建该数据。如果DBRS 100运行于其中的网络出现故障,DBRS 100能够将 所有DBRS IOO文件系统重建为各自原始结构,与写入存储时存在的文件系 统一样。
一个DBRS 100的示例性实施例包括三个基本部件备份服务器102, 一个或多个客户机104、 105、 106、 107和108,以及数据的备份巻IIO。备 份服务器102及客户机104、 105、 106、 107和108是具有能够运行DBRS 100 操作必需的软件的物理实体。备份服务器102包括组织和管理DBRS 100功 能的程序和服务。客户机104、 105、 106、 107禾n 108包括执行DBRS 100 功能的程序和服务。
例如,备份服务器102为其客户机管理数据,例如这些客户机包括客户 机104、 105、 106、 107和108。客户机104、 105、 106、 107和108代表在 网络中送递待备份的文件的机器。备份服务器102可合并各备份纟且112、 114 和116的效用来组织上述客户机/数据。备份组是指各组客户机和/或备份在 一起作为一组的数据。单个客户机可被包括在多个备份组中,如备伤、组112 和备份组114所示。
为了管理来自客户机104、 105、 106、 107和108的被备份的数据,DBRS 100依靠数据追踪信息,如图1中备份服务器102的文件索引118和介质数 据库120所示。文件索引118和介质数据库120中的输入项用来保持描述所 有在DBRS100环境中已被备份的数据、客户机以及文件的内容和位置信息。
备份服务器102的文件索引118是根据每个客户机组织的备份文件的可 浏览列表。网络中每个客户机的每个备份文件在文件索引中列出。文件索引 118的输入项包括关于文件的信息,例如文件类型、文件备份时间,以及其
他与文件有关的信息,例如原始文件所在的客户机。因为文件可被多次备份 而且备份副本可被存储于多个位置,所以文件索引118中用于文件的$俞入项 可包括关于每个备份文件的备份位置和备份时间的信息。文件索引118中的关于特定文件的多个备份位置和备份时间的信息能够使用户识别取回文件的特定版本。关于文件的多个备份的输入项信息可保留在文件索引118中由 管理员规定的任意长的时间。
当文件索引118追踪个别文件时,介质数据库120追踪文件的存储位置。 换句话说,介质数据库120包括对介质存储位置的参考。在操作中,每当备 份组112、 114或116被备份至DBRS 100上的存储巻时,介质数据库120 都接收输入项。就如同文件索引118中的输入项一样,上述输入项将会在介 质数据库120中保留直到管理员移除上述输入项。如果相应数据被重写,则 介质数据库120中的输入项也能够被移除。
一旦知道关于数据的位置信息,就可以用不同的方式存储数据。例如, 数据可存储于设备中的介质巻,所述设备包括从如图1所示的备份月艮务器102 可存取的或通过远程服务器可存取的磁带驱动器、硬盘或可移动磁盘。在备 份数据的示例性系统中,数据存储于设备上的巻中,如备份巻110和备份设 备126、 128、 130和132所示例。利用设备和巻来存储数据的一个例子是通 过将数据存储器分组成磁盘来在磁盘阵列上存储数据。利用设备和巻来存储 数据的另一个例子是通过将数据存储器分组成特定的磁带巻来在磁带驱动 器上存储数据。利用设备和巻来存储数据的又一个的例子是通过纟每数据存储 器分组成服务器上的硬盘来在远程服务器上存储数据。尽管这些例子有助于 更好理解设备和巻的可能配置,但是DBRS IOO在设备和巻中存储数据的能 力并不以此为限。更普遍来说,备份设备126、 128、 130和132是指存储数 据方式的概念性模型,而并非限制于特定的系统或设备。
DBRS 100中的备份设备126、 128、 130和132的可用性通过备份设备 126、 128、 130和132的存储各种类型数据的能力而得到进一步加强。特别 地,备份设备126、 128、 130和132能够包含每种文件类型的数据。例如, 图形文件、程序执行文件、以及文档文件的备份副本能够一并存储在备份设 备126、 128、 130和132中。
备份设备126、 128、 130和132的一个基本方面是备份设备126、 128、
130和132在DBRS 100中加速取回备份文件的能力。例如,当用户请求备 份文件的恢复时,如果对该文件的文件索引输入项和介质数据库输入项包含 高度确定的位置信息,则DBRS IOO能够快速地取回该文件,其中这些位置 信息包括对备份设备126、 128、 130和132以及所使用的特定介质的参考, 所使用的特定介质例如为磁带、CD、 DVD或其它用来存储文件的介质。
考虑到许多特征,其中包括备份至备份设备126、 128、 130和132, DBRS IOO最初被配置为独立地执行功能。但是管理员具有许多控制DBRS 100功 能的能力。因此,管理员能够根据不同的客户机和/或文件特点来分离要存储 的文件,以及当备份巻变得不再使用并应该被移除时能够进行定义。例如, 管理员可将DBRS 100配置为从备份创建起经过特定时间周期后从介质数据 库120中移除备份巻。管理员还能够对备份组112、 114和116进行定义, 备份组112、 114和116可包括一个或多个客户机及其文件、目录或文件系 统,或保护客户机上的所有文件。
当对客户机104、 105、 106、 107和108进行存取时,管理员可以在管 理员GUI (未显示)中进行操作。管理员GUI能够在任何DBRS 100机器上 显示,允许管理员对客户机104、 105、 106、 107和108进行界面操作和代 理服务而不论客户机的平台。管理员能力的另一个重要方面涉及指定应用环 境的能力。例如,管理员能够创建指定例如DBRS IOO将要使用的备份设备 的指令以及所定义的客户机数量的记录。管理员还能够指定在备伤、和恢复环 境中执行应用程序的规则,包括备份时间表和在数据被回收前保护该数据多 久。
除管理员能力外,DBRS 100还包括恢复丢失数据的系统。当客户机数 据丢失或被损坏时,用户或是管理员能够浏览文件索引118中的可恢复文件, 随后创建报告来说明丢失数据的状态和位置,其中丢失数据的状态和位置通 过备份设备126、 128、 130和132的巻中的介质数据库12 0的内容进行追踪。 然后用户能够在用户指定的时间点恢复丢失数据。当创建恢复丢失数据的请 求时,DBRS 100定位要寻找的数据并指导文件的恢复。数据可恢复至数据 起源的客户机104、 105、 106、 107和108,或恢复至另一个指定的客户机。
此外,DBRS 100具有在不同环境中执行操作的能力并且能够运行在多 种不同平台上。例如,UNIX服务器上的备份软件能够支持Windows客户机,
反之亦然。不论何种服务器平台,都可以读取与客户机有关的任何设备或巻
的备份数据,在用户指定的时间点通过任何DBRS 100服务器能够重建设备 或巻。不论客户机104、 105、 106、 107和108的平台,来自任何系统客户 机104、 105、 106、 107和108的备份数据能够在单一备份设备上或在单一 介质装置上共存。
n.用于动态备份的系统和方法
A.示例性镜像系统的部件
上面所述的DBRS 100可以智能地在网络中存储和取回文件。除上面讨 论的示例性系统的能力外,示例性系统还能够支持各种附加应用和^K正。这 种应用之一包括负责数据库镜像的数据库备份特征。
在图2中示出示例性数据库镜像系统200。数据库镜像系统200包括数 据库服务器202和数据库服务器204。数据库服务器202和数据库服务器204 其中之一被指定为主服务器,而另一个被指定为次服务器。当数据库服务器 202被指定为主服务器时,服务器202上的用户数据库206为实时数据库。 类似地,当数据库服务器204被指定为次服务器时,用户数据库208为镜像 数据库。
除用户数据库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的状态从 "实时"变为"镜像"时,服务器应用程序214会监测用户数据库206的状 态变化并且该变化被记录于系统数据库210中。服务器应用程序214还会监 测用户数据库208的状态从"镜像"到"实时"的同时发生的变化并且该变化被记录于系统数据库210中。同样,当用户数据库208的状态从"镜像" 变为"实时"时,服务器应用程序216会监测用户数据库208的状态变化并 且该变化被记录于系统数据库212中。服务器应用程序216还会监测用户数 据库206的状态从"实时"到"镜像"的变化并且该变化被记录于系统数据 库212中。
当服务器应用程序214和216监测用户数据库206和208的状态变化时, 服务器应用模块218和220在数据库镜像系统200中管理用户数据库206和 208的状态信息。例如服务器应用模块218和220的模块是能够执行例如用 户数据库的备份和/或恢复功能的一条代码。例如,由模块执行的功能可以是 Microsoft SQL服务器数据库的备份和/或恢复,在这种情况下用户数据库206 和208是Microsoft SQL服务器数据库,以及服务器应用程序214和216是 Microsoft SQL服务器应用程序。尽管本发明可以与Microsoft SQL服务器结 合使用,但是本发明的范围并不仅限于使用Microsoft SQL服务器。
服务器应用程序214和216的每一个均与特定的服务器应用模块相关。 服务器应用模块218与服务器应用程序214相关以及服务器应用模块220与 服务器应用程序216相关。在数据库服务器202上,服务器应用模块218査 询系统数据库210的状态信息来确定用户数据库206是实时用户数据库还是 镜像用户数据库。同样,在数据库服务器204上,服务器应用模块220查询 系统数据库212的状态信息来确定用户数据库208是实时用户数据库还是镜 像用户数据库。在数据库镜像系统200中的实时用户数据库备份之前,服务 器应用模块218和220的其中之一识别当前的实时用户数据库。接下来将参 照图4对与用户数据库备份操作相结合的实时用户数据库的识别进行更详细 的讨论。
服务器应用模块218和220不仅在备份操作过程中识别实时用户数据 库,服务器应用模块218和220也可以相互通信以调整和管理在备份和存储 操作过程中的镜像关系。当由与图1中所示的备份服务器102相对应的备份 服务器221调用服务器应用模块218或220时,服务器应用模块218或220 能够检测用户数据库206和208的指定变化。 一旦检测到用户数据库206和 208的指定变化,服务器应用模块218和220彼此关于用户数据库206和208 的指定变化进行通信。在服务器应用模块218和220彼此进行通信之后,服
务器应用模块218和220将用户数据库206和208的指定变化传送给备份服 务器221。然后备份服务器221能够为待备份的数据库服务器更新存储集 (saveset)中关于用户数据库206和208的指定信息,并调用对应于实时数 据库的服务器应用模块218或220来完成备份。
作为服务器应用模块218和220如何相互通信以及随后与备份服务器 102通信来完成备份和恢复操作的一个例子,假设发生故障转移造成用户数 据库206的状态从"实时"变为"镜像"。当发生故障转移后调用服务器应 用模块218时,服务器应用模块218与服务器应用模块220就用户数据库206 的状态进行通信。服务器应用模块218从服务器应用模块220处得知用户数 据库208现在是实时数据库。服务器应用模块218还将用户数据库206目前 是镜像数据库通知给服务器应用模块220。在与服务器应用模块220通信后, 服务器应用模块218与备份服务器221进行通信来向备份服务器221通知用 户数据库206和用户数据库208的状态改变。然后备份服务器221为数据库 镜像系统200中待备份的数据库服务器记录改变的状态信息作为存储集。上 述过程被称为探査并被用于定位实时数据库。
由数据库服务器202和204中的服务器应用模块218和220分别执行的 功能为数据库镜像系统200中备份操作不可缺少的部分。在数据库镜像系统 200中发生备份操作之前,首先必须要确定实时数据库的位置。当启动备份 操作时,可以联系位于数据库服务器202上的服务器应用程序214和位于数 据库服务器204上的服务器应用程序216的其中之一以定位实时用户数据 库。可以由用户或备份服务器221启动备份操作。备份服务器221联系服务 器应用模块218或220,反过来服务器应用模块218或220可以联系服务器 应用程序214或216,来得知用户数据库206和208的状态。对应于实时用 户数据库206或208的服务器应用模块218或220执行备份操作。通过从系 统数据库210和212中读取信息来确定用户数据库206和208的状态。例如, 如果备份服务器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的仅仅之一就可以获取 关于实时数据库的位置信息。
作为在备份操作过程中在数据库镜像系统200中执行的功能的一个例 子,假设用户数据库206目前是实时数据库而用户数据库208目前是镜像数 据库。当启动备份时,备份服务器221联系位于数据库服务器204上的服务 器应用模块220。然后服务器应用模块220通过联系服务器应用程序216执 行读取包含于系统数据库212中的表格输入项的功能。系统数据库212中的 表格输入项指明用户数据库208是镜像数据库以及用户数据库206是实时数 据库。服务器应用模块220向备份服务器221返回此信息。因为用户数据库 206当前是实时数据库,所以备份服务器221随后备份用户数据库206。
现在参照图1,当备份实时用户数据库时,实时用户数据库所在的数据 库服务器的名称被记录在位于备份服务器102上的文件索引118中。为实时 用户数据库在文件索引118中创建的输入项是实时输入项。镜像数据库所在 的数据库服务器的名称也被记录在文件索引118中。为镜像用户数据库在文 件索引118中创建的输入项被称为别名输入项。通过在具体备份的时候记录 每个用户数据库的状态,文件索引118中的输入项使得重建一系列的备份变 为可能,并且提供了当需要恢复实时用户数据库时容易识别实时用户数据库 位置的途径。
现在重新参照图2,以上值得注意的是为了使备份服务器221备份实时 用户数据库变为可能,需要在数据库镜像系统200中追踪用户数据库206和 208的状态。当数据库服务器202和204分别包括追踪用户数据库206和208 的状态的系统数据库210和212时,见证数据库服务器222也可以包含于数 据库镜像系统200中用于追踪用户数据库206和208的状态。例如,当用户 数据库206从"实时"数据库变为"镜像"数据库时,见证数据库服务器222 通过在系统数据库224中记录用户数据库206的当前状态也追踪该变化。相
似地,当用户数据库208从"镜像"数据库变为"实时"数据库时,见证数
据库服务器222也在系统数据库224中追踪用户数据库208的状态变化。通 过上述方式,系统数据库224执行类似于由分别位于数据库服务器202和204 上的系统数据库210和212所执行的功能。
见证数据库服务器222与数据库服务器202和204之间的另一个相似点 是如同数据库服务器202和204,见证数据库服务器222包括服务器应用 程序226和服务器应用模块228。服务器应用程序226执行与由服务器应用 程序214和216执行的功能相同的功能。g口,由服务器应用程序214和216 就用户数据库206和208的状态来更新服务器应用程序226,以及服务器应 用程序226在系统数据库224中维护该信息的记录。如同服务器应用模块218 和220 —样,服务器应用模块228与服务器应用模块218和220进行通信来 获得用户数据库206和208的状态信息,以及服务器应用模块228也可以通 过联系服务器应用程序226从系统数据库224取回状态信息。
见证数据库服务器222还可以执行除追踪用户数据库206和208中的状 态改变之外的其它功能。例如,见证数据库服务器222参与在数据库镜像系 统200中角色指定。具体地,见证数据库服务器222可以参与将实时数据库 的角色指定给用户数据库206以及将镜像数据库的角色指定给用户数据库 208。角色指定基于数据库服务器202和204与见证数据库服务器222之间 多数一致信息。更特别地,见证数据库服务器222还仲裁用户数据库206和 用户数据库208的各自角色的改变。见证数据库服务器222可以驱动数据库 镜像系统200中的故障转移和伴随的用户数据库206和208的状态变化。例 如,当用户数据库206是实时数据库时,如果发生故障转移,则见证数据库 服务器222立即将实时数据库的角色分配给用户数据库208以及将用户数据 库206的角色变为镜像数据库。通过仲裁用户数据库206和208的角色改变, 见证数据库服务器222确保当发生故障转移时不会出现数据丢失。在数据库 镜像系统200中没有见证数据库服务器222的情况下,用户可以选择驱动故 障转移以及为用户数据库208指定实时数据库角色和为用户数据库206指定 镜像数据库角色。
尽管如图2所示的数据库镜像系统可以只包括主服务器202、次服务器 204和见证数据库服务器222,但是还可以有其它多种可能的镜像数据库配
置。如图3所示,对可被镜像的不同数据库的数量没有限制,以及对镜像数 据库所在的数据库服务器之间的关系也没有任何限制。例如,第一数据库服
务器302可以包含实时数据库"A" 304和镜像数据库n'306。第二数据库服 务器308可以包含实时数据库"B" 310和镜像数据库A'312。在此实例中, 存在于第二数据库服务器308上的镜像数据库A,312与存在于第一数据库服 务器302上的实时数据库A304相关联。但是与实时数据库B 310相关联的 镜像数据库B,314并不存在于第一数据库服务器302上而是存在于第三数据 库服务器316上。除保含镜像数据库B,314外,第三数据库服务器316还包 含实时数据库C318。最后,第n个数据库服务器320包含实时数据库n322 和镜像数据库(n-l) , 324。图3显示多数据库服务器上的实时和镜像数据 库的配置的示例性实施例。此外,数据库服务器302、 308、 316或320中的 任何一个均可以用作任一数据库的见证数据库服务器。然而,在多个数据库 服务器上的实时和镜像数据库的多种不同配置是可能的,并且可通过本发明 的实施例被设计。本发明的范围并不限制于与存在于特定服务器上的实时和 镜像数据库的任何特定设置相关的使用。 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为实时用户数据库,指定存在于数据库服务 器204上的用户数据库208为镜像用户数据库。当指定存在于数据库服务器 202上的用户数据库206为实时用户数据库时,存在于数据库服务器204上
的用户数据库208就会被指定为镜像用户数据库。随后,可以改变各用户数
据库206和208的角色,使得用户数据库206的指定从"实时"变为"镜像", 以及用户数据库208的指定从"镜像"变为"实时"。各用户数据库206和 208的角色可以由于许多原因改变,例如实时用户数据库206所存在的数据 库服务器202发生故障、各用户数据库的角色的预定改变、或者通过例如见 证数据库服务器222的附加数据库服务器或网络中的其它系统设备进行的仲 裁。
不但在数据库镜像系统200中随时间动态改变实时或镜像用户数据库 206和208的角色,而且该角色不是任意的而是涉及由各用户数据库206和 208执行的特定功能。特别地,因为实时数据库206为在系统中主动工作的 数据库,所以数据库镜像系统200指定实时用户数据库206为"实时"。在 备份操作中,实时用户数据库206为在数据库镜像系统200中被备份的数据 库。同时,镜像用户数据库208为被动的并且只要其起到镜像用户数据库的 功能就不直接参与到备份操作中。
尽管镜像用户数据库208并未直接参与到备份操作中,数据库镜像系统 200可以要求镜像用户数据库208在任何时间改变角色以变为实时用户数据 库。由于这个缘故,在同步镜像中,每当实时用户数据库的表格被修改时, 镜像用户数据库208接收并存储关于数据库更新的信息。§卩,镜像用户数据 库208 "镜像"在实时用户数据库206中创建的输入项,以使得保留实时用 户数据库206的最新记录。通过上述方式,当数据库镜像系统200要求镜像 用户数据库208将角色改变为实时用户数据库时,因为存在于实时用户数据 库206中的所有信息也存在于镜像用户数据库208中,所以不会出现用户数 据库信息丢失或不可存取的现象。
实时用户数据库和镜像用户数据库的角色指定对于网络备份操作十分 重要。备份操作可以通过各种方式启动。 一种备份用户数据库的可行方法是 为系统上的单独用户在用户选择的任何时间启动指定的用户数据库备份。另 一种备份数据库的可行方法是根据系统中的哪个用户数据库被自动备份来 为管理员在系统中定义时间表。管理员可以指定系统中的所有的用户数据库 或是指定系统中仅被选择的用户数据库在备份操作的过程中被备份。关于在 数据库镜像环境中的备份操作将在下面的部分D中详细讨论。
作为执行例如这里所揭示的数据库镜像过程的一个示例性标准,
Microsoft SQL Server 2005(代码名称Yukon)标准在此处通过参考援引于本 申请中。在示例性实施例中,本发明与Microsoft SQL Server 2005(Yukon)数
据库结合应用。然而,关于本发明的其它用途及应用也是合适的和所期望的 并且本发明的保护范围并未限制于与Microsoft SQL Server 2005(Yukon)数据 库一起使用。
C.在镜像环境中执行探查过程
示例性数据库镜像备份系统包括执行数据库镜像系统200的重要功能的 应用程序和模块。由模块218、 220和228执行的功能是数据库镜像系统200 的部分功能。当启动数据库镜像系统200中的一个或多个用户数据库的备份 时,开始探査过程以在数据库镜像系统200中定位实时用户数据库。探査过 程包括由模块218、 220和228执行的有关系统数据库210和212的特定功 能。探查过程的目的是确定实时数据库的位置,以便在备份操作过程中能够 备份系统中的实时用户数据库。
当启动实时用户数据库的备份时发生的示例性探查过程400的各个方面 在图4中公幵。如上所述,探查过程400是在数据库镜像系统200中定位实 时用户数据库的过程。如步骤402所示,探查过程400在备份服务器联系客 户机(也被称为数据库服务器)时开始,并且创建请求以获取位于该请求所 指向的客户机上的数据库的状态。通过客户机请求能够启动备份服务器和客 户机之间的联系以与规定何时执行实时数据库备份的系统时间表相一致地 进行实时数据库的备份,或是采用其它各种方式进行备份。在备份服务器联 系被指定的客户机后,如步骤404所示,位于客户机上的服务器应用模块接 收关于实时数据库位置信息的请求。然后服务器应用程序模块联系位于被询 问的客户机的数据库服务器上的系统数据库来确定实时用户数据库的位置。
如步骤406所示,当服务器应用模块读取包含在位于客户机上的系统数 据库中的表格输入项时,完成对实时数据库的位置的确定。该表格输入项包 含关于数据库镜像系统中的数据库的状态信息。在步骤408,服务器应用模 块询问该表格输入项来确定位于被询问的客户机上的数据库是否为实时数 据库。如步骤410所示,如果该表格输入项指定实时数据库位于被询问的客 户机上,则该实时数据库被定位并且备份可以继续进行。
然而,如果该表格输入项指定位于不同客户机上的另一个数据库为实时
数据库,如步骤412所示,服务器应用模块识别位于被询问的客户机上的数 据库不是实时数据库。随后如步骤414所示,服务器应用模块向备份服务器 返回实时数据库所在的客户机的名称。接下来当在步骤414中备份服务器联 系实时数据库所在的并由服务器应用模块指定的客户机时,在步骤402重新 启动探査过程400。此时在探査过程400中,已经识别出寄主有实时数据库 的客户机,所以可以顺畅地完成从步骤402到步骤408的过程并且继续执行 步骤410。然而,当识别出实时数据库所在的客户机以及当备份服务器联系 实时客户机时,有可能发生故障转移,实时数据库变为镜像数据库。这可能 导致步骤402、 406、 408、 412和414的多次重复。通常已证明一次或两次 重复足以定位实时数据库以及备份文件。第三次重复不太可能发生,其可能 表明在很短时间内发生两次故障转移以及在数据库服务器中出现主要的不 禾急定。
现在回到步骤410,如果系统表格输入项指定被询问的客户机含有实时 数据库,该过程前进至步骤416,在步骤416待备份的数据库文件(即,"目 标文件")被识别。如步骤418所示, 一旦识别出数据库文件,就开始备份 文件以及完成探査过程400。关于这种备份操作的细节将会结合图5的讨论 在下面提供。
D.镜像环境中的数据库备份操作
备份过程500示出在数据库镜像环境中不受动态改变的数据库角色影响 的备份数据库的示例性过程。当开始备份数据库时,在数据库镜像系统的备 份服务器的文件索引中创建数据库输入项。文件索引中的输入项包含关于数 据库的信息,其中所述信息包括数据库为"实时"或"镜像"的状态。每次 在数据库镜像环境中执行数据库备份时,均会为该数据库向文件索引中增加 附加输入项。包含于备份时所创建的备份输入项中的信息与包含于有关数据 库状态的初始输入项中的信息相类似。例如,备份时所创建的输入项可以包 含例如执行备份的日期、执行备份的时间以及执行备份时的数据库的状态等 信息。
除了包含当执行备份时关于数据库状态的信息外,用于数据库的文件索 引的输入项还包含对系统中镜像数据库的交叉参考。更特别的是,由于在备
份时数据库是实时数据库,文件索引中的用于数据库的输入项交叉参考在备 份时包含有镜像数据库的数据库服务器。在文件索引中实时和镜像数据库的 客户机的交叉参考使得在执行许多备份的一段时间内追踪数据库的状态变 为可能,以及使得确定实时和镜像数据库是相同数据库变为可能。用于单一 数据库的一个输入项的査询还将给出关于系统中其它客户机的身份的信息。
为使可以备份数据库镜像系统中的数据库,首先需要识别出要备份的数 据库。备份服务器指定在其上开始备份过程的唯一客户机。这个过程在图5
的步骤502示出。系统管理员可以在特定的备份操作过程中确定备份系统中 所有的数据库,或是管理员可以在备份操作过程中确定只有被选择的数据库 才被备份。另一个可行方法是系统用户可以在备份操作中指定用户希望包括 的特定数据库。可选地,备份系统可被配置为根据特定的时间表自动地备份 指定数据库的全部或是一部分。
无论是由管理员或用户指定或是以其它方式指定要备份的数据库,备份 服务器联系指定的客户机并且启动探査过程(参见图4),其中在此探查过 程中,如步骤504所示,备份服务器向指定的客户机询问实时数据库所在的 客户机名称。随后如步骤506所示,实时数据库所在的客户机被联系。在备 份服务器联系实时数据库所在的客户机之后,如步骤508所示,备份实时数 据库。然后如步骤510所示,将实时数据库所在的客户机的名称记录在备份 服务器的文件索引中作为实时输入项。如步骤512所示,镜像数据库所在的 客户机名称也被记录在文件索引中,但是作为别名输入项。别名输入项包括 对为实时数据库创建的输入项的交叉参考。
作为在数据库镜像系统中可能发生的用户可存取的备份的一个例子,当 数据库包含于数据库服务器A上时可能发生第一批备份。包含在数据库服务 器A上的数据库是实时数据库。如果在执行完第一批备份后发生故障转移, 例如数据库服务器A崩溃以及实时数据库的角色自动切换至包含于数据库 服务器B上的数据库,则当数据库包含于数据库服务器B时,或者换句话说, 当数据库服务器B是实时数据库时,执行下一批备份。尽管当数据库服务器 A是实时数据库和数据库服务器B是实时数据库时都执行了备份,但是利用 包含在备份服务器的文件索引的输入项中的数据库的交叉参考,能够重建一 系列的备份。
以这里公开的方式备份的数据可以用于各种目的。例如,当发生系统故 障或其它一些导致原始数据丢失的事件时,所备份的数据能够用来恢复原始
数据库。例如,当在图1中的用户数据库206和208中发生数据丢失时,所 备份的数据副本能够用来恢复用户数据库206和208。在专利申请号为 No. 11/080,047、名称为"用于恢复数据的系统和方法"(目前指定WNDocket No. 16192.7.1)的美国专利申请中,描述了利用根据这里公开的方法产生的 备份数据来恢复丢失数据的方法实例,其中该申请与本专利申请在同一天提 出并通过参考援引与此。
在不脱离本发明的精神或实质特征的情况下,本发明也可体现为其它特 定形式。所述实施例在所有方面均被认为是示例性的而非限制性的。因此, 本发明的保护范围由后附的权利要求而非由前述的说明书表示。落入权利要 求的等同界限和范围内的所有变化均应包括在本发明的保护范围内。
权利要求
1. 一种在数据库镜像网络中备份数据库的方法,该数据库镜像网络包括实时数据库和镜像数据库以及多个客户机,该备份数据库的方法包括以下步骤发送请求至其中一个客户机以获取与该请求所指向的客户机相关的数据库的状态信息;从该请求所指向的客户机接收用以识别该实时数据库的位置的状态信息;以及不受任何正进行的该实时数据库的指定变化的影响,利用所述用以识别该实时数据库的位置的状态信息备份该实时数据库。
2. 如权利要求1所述的方法,其中所述用以识别该实时数据库的位置的 状态信息位于该请求所指向的客户机的系统数据库中。
3. 如权利要求1所述的方法,其中如果相关数据库的状态信息指定该相 关数据库为镜像数据库,则系统数据库中的信息也识别该实时数据库所在的 客户机。
4. 如权利要求1所述的方法,其中根据规定自动备份该实时数据库的时 间的时间表,执行所述发送请求至其中一个客户机的步骤。
5. 如权利要求1所述的方法,其中响应用户启动备份该实时数据库的操 作,执行所述发送请求至其中一个客户机的步骤。
6. 如权利要求1所述的方法,还包括步骤识别该实时数据库中的目标文件,以使所述备份该实时数据库的步骤包 括备份该目标文件。
7. 如权利要求1所述的方法,其中所述备份该实时数据库的步骤还包括 以下步骤在备份时,在位于备份服务器上的文件索引中创建关于该实时数据库的位置的输入项;以及在备份时,在位于备份服务器上的文件索引中创建关于镜像数据库的位 置的别名输入项。
8. 如权利要求7所述的方法,还包括以下步骤接收该实时数据库中的目标文件的存储位置;以及 将该目标文件的存储位置记录在该镜像数据库中。
9. 如权利要求8所述的方法,其中所述记录该实时数据库中的目标文件 的存储位置的步骤包括在位于所述多个客户机上的多个系统数据库中创建 表格输入项。
10. 如权利要求8所述的方法,其中所述将该目标文件的存储位置记录 在该镜像数据库中的步骤包括在位于所述多个客户机上的多个系统数据库 中创建表格输入项。
11. 一种在数据库镜像网络中定位待备份的数据库的方法,该数据库镜 像网络包括第一数据库服务器、第二数据库服务器以及备份服务器,该方法包括以下步骤接收来自该备份服务器的数据库状态请求;通过定位与该第一数据库服务器或该第二数据库服务器相关的数据库 的相关表格输入项来响应该数据库状态请求;利用该表格输入项来识别相关数据库的状态信息;以及 发送关于该相关数据库的状态信息至该备份服务器,其中该状态信息至 少指定该数据库是实时数据库还是镜像数据库,以及该方法的执行不受任何 正进行的该实时数据库和该镜像数据库的指定变化的影响。
12. 如权利要求11所述的方法,其中根据规定自动备份该实时数据库的 时间的时间表,接收该数据库状态请求。
13. 如权利要求11所述的方法,其中响应用户启动备份该实时数据库的 操作来接收该数据库状态请求。
14. 如权利要求11所述的方法,其中如果该相关数据库的状态信息指定 该相关数据库为镜像数据库,则该状态信息也识别该实时数据库^ 在的数据 库服务器。
15. 如权利要求11所述的方法,其中如果该相关数据库的状态信息指定 该相关数据库为实时数据库,则在该表格输入项中涉及的数据库服务器包含 有该实时数据库。
16. 如权利要求11所述的方法,其中该表格输入项位于与该第一数据库 服务器或该第二数据库服务器相关的系统数据库中。
17. —种计算机程序产品,用于实施在网络中备份数据库的方法,该网 络包括实时数据库和镜像数据库以及多个客户机,该计算机程序产品包括计算机可读介质,其载有用于执行以下步骤的方法的计算机可执行指 令,这些步骤包括发送请求至其中一个客户机以获取与该请求所指向的客户机相关 的数据库的状态信息;从该请求所指向的客户机接收用以识别该实时数据库的位置的状态信息;以及利用所述用以识别该实时数据库的位置的状态信息备份该实时数 据库,而不受任何正进行的该实时数据库的指定变化的影响。
18. 如权利要求17所述的计算机程序产品,其中如果该状态信息指定该数据库为实时数据库,则表格输入项中涉及的客户机识别为该实时数据库所 在的客户机。
19. 如权利要求17所述的计算机程序产品,其中如果相关数据库的状态 信息指定该相关数据库为镜像数据库,则该状态信息也识别该实时数据库所 在的客户机。
20. 如权利要求17所述的计算机程序产品,其中根据指定自动备份该实 时数据库的时间的时间表,执行所述发送请求至其中一个客户机的步骤。
21. 如权利要求17所述的计算机程序产品,其中响应用户启动备份该实 时数据库的操作,执行所述发送请求至其中一个客户机的步骤。
22. 如权利要求17所述的计算机程序产品,其中该表格输入项位于系统 数据库中。
23. 如权利要求17所述的计算机程序产品,还包括 识别该实时数据库的目标文件以使所述备份该实时数据库的步骤包括备份该目标文件。
24. 如权利要求17所述的计算机程序产品,其中所述备份该实时数据库 的步骤还包括以下步骤在备份时在位于备份服务器上的文件索引中创建关于该实时数据库的 位置的输入项;以及在备份时在位于该备份服务器上的该文件索引中创建关于镜像数据库的位置的别名输入项。
25. 如权利要求24所述的计算机程序产品,还包括以下步骤 接收该实时数据库中的目标文件的存储位置;以及将该目标文件的存储位置记录在该镜像数据库中。
26. 如权利要求25所述的计算机程序产品,其中所述记录该实时数据库 中的目标文件的存储位置的步骤包括在位于所述多个客户机上的多个系统 数据库中创建表格输入项。
27. 如权利要求25所述的计算机程序产品,其中所述将该目标文件的存 储位置记录在该镜像数据库中的步骤包括在位于所述多个客户机上的多个 系统数据库中创建表格输入项。
全文摘要
在包括数据库镜像的计算机网络中,第一数据库位于第一数据库服务器上,第二数据库位于第二数据库服务器上,以及可选地包括见证数据库服务器。第一数据库和第二数据库的其中一个为实时数据库,而另一个为镜像数据库。启动与第一数据库服务器、第二数据库服务器或见证数据库服务器的通信过程,以确定第一数据库还是第二数据库为实时数据库。通过从第一数据库服务器或第二数据库服务器或可选的见证数据库服务器上的系统数据库中的表格输入项读取信息来确定该实时数据库的位置,以及执行备份该实时数据库的备份操作。
文档编号G06F12/00GK101208668SQ200580048139
公开日2008年6月25日 申请日期2005年12月21日 优先权日2004年12月30日
发明者克雷格·邓肯, 木 柴, 阿迪蒂亚·卡普尔, 马闻璐 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1