专利名称:执行增量sql服务器数据库备份的方法和系统的制作方法
技术领域:
本发明总体上涉及数据库备份,并且尤其涉及一种用于执行SQL服务器数据库的增量备份的方法和系统。
背景技术:
数据库系统(如微软公司 的结构化查询语言(SQL)服务器数据库系统)包含大量的由多种软件应用程序生成和使用的信息。由于存储在数据库中的信息的重要性,数据库系统提供了备份和恢复由该系统所管理的数据库的机制。备份机制可以为数据库创建一份完整副本,并且恢复机制可以利用该副本来覆盖数据库。数据库系统还能够回放事务以便恢复数据库。这种数据库系统可以记录所有的事务,并使用这些事务通过开始于一个已知的先前状态并应用该状态之后出现的事务而将数据库恢复到一个特定状态。数据库系统还可以提供一种快照机制,该快照机制允许将数据库的状态保存在一个“快照”中。典型地,获取快照在执行完全备份之前进行。相比于执行流备份,执行快照是将SQL服务器的中断最小化的一个途径。微软SQL服务器支持快照备份和恢复技术。快照备份是一种几乎瞬时创建的专用备份。各种已知的技术都可以创建快照,包括只复制备份、拆分镜像、创建存储装置的副本的专用硬件以及其他方法。快照备份可以最小化或取消使用SQL的资源以完成备份。这可以允许SQL服务器的可利用性在执行备份操作时受到最小的影响。数据库系统出于各种原因而使用快照。快照的一个典型用法是在不用长时间断开对数据库的访问的情况下副本数据库。执行快照后,数据库系统然后就可以通过优化数据库的快照来副本数据库。这样,当主数据库处于动态时,数据库系统就执行了一次主数据库的完全备份。一般而言,快照记录某个时间点上的数据库状态。也就是说,快照可用于提供实时数据库的时间点映像。于是利用快照副本可以执行额外的操作,而不会影响实时数据库的性能。除了减少动态SQL服务器数据库的停机时间外,另一个目的是减少备份存储利用率。为了实现这个目的,经常进行差异备份而非完全备份。执行差异备份利用了 SQL服务器数据库的共有特点-典型地,数据库中只有很少比率的数据在连续的备份之间发生变化。 由于只有部分数据实际上在备份之间发生变化,这就提高了备份的效率以进行差异备份而非完全备份。通过限制数据库的停机时间,可以减少完成备份的必要时间,并且通过缩减存储备份所要求的存储量,还可以减少存储在备份中的数据量。SQL服务器维护带有信息的位图,在该位图上一些盘区自上次完全备份后已经发生变化。该映射被称为差异变化映射(DCM),SQL服务器使用DCM执行差异备份。DCM跟踪上一个完全数据库备份后已经变化的盘区。盘区是八个物理上连续的页面的集合并且可以用于有效地管理页面。DCM是一个位图,在该位图上每个位表示一个单独的盘区。位图的组织方式是如果一个盘区的二进制位为1,则该盘区自上次完全备份后已经被修改过,而如果一个盘区的二进制位为0,则该盘区未被修改过。
SQL服务器还维护分配映射以记录盘区到数据库中的对象的分配。分配映射之一是索引分配映射(IAM)。IAM包含关于表或索引所使用的盘区的信息。分配映射的另一种是全局分配映射(GAM)。GAM包含关于已经分配了哪些盘区的信息。分配映射的另一种是共享的全局分配映射(SGAM)。SGAM跟踪具有至少一个未用页面的混合盘区。还有一种跟踪自由空间的方法,该自由空间被称为页面自由空间(PFS)页面。PFS页面记录每个页面的分配状态(例如是否已经分配了各个页面)以及每个页面上的自由空间量。管理SQL数据库的常用技术是向数据库预先分配额外的空间以给其扩展的余地。 当数据库文件由SQL服务器装载时,并且当数据库文件的大小需要增加到超出分配给它的容量以容纳新的事务时,增加数据库的大小就是一种耗时的处理。因此,SQL数据库的大小通常是远大于它当前存储的数据量。然而,当执行完全备份时,分配给数据库的所有空间 (即使现在并未使用它)也将被备份,从而增加了备份的大小。另外,如果将表或其他对象从数据库删除,完全备份仍然会备份已删除的表或对象所占据的所有空间。SQL服务器可以使用差异备份以减少备份的大小,但差异备份存在一些缺点。例如,差异备份必须被恢复到数据库的实时实例中,这将导致数据库的停机时间。SQL服务器还支持日志备份以备份已发生的事项列表;如同差异备份一样,在恢复过程中需要将日志备份回放到数据库的实时实例中。优选的是准备一个时间点数据库文件的完全副本以备恢复,而不需要SQL服务器的任何协助。除了执行差异或日志备份,另一种减少数据库大小的途径是进行增量备份。然而, SQL服务器目前并不支持数据库的增量备份。因此,所需要的是利用快照和SQL服务器维护的数据跟踪机制来执行增量备份同时还保持从增量备份进行快速有效恢复的能力的方法。鉴于上述内容,执行SQL数据库的增量备份的方法和机制是所希望的。
发明内容
本文设想了执行SQL服务器数据库的增量备份的方法和机制的各种实施方案。在一个实施方案中,可以执行数据库的一次完全备份。在该完全备份后,后续备份可以是增量备份。为执行增量备份,首先向SQL服务器传送一条请求以执行数据库的完全备份。SQL服务器可能表现得如同正在执行一次数据库完全备份一样,尽管实际上执行增量备份。下一步,获取数据库的一个快照。可以从该快照检索一个或多个映射。该一个或多个映射可以包括用于标识自从前一次完全备份、前一次快照或前一次增量备份以来就已经发生变化盘区的信息。在标识变化的盘区之后,可以从该快照检索变化的盘区并将其作为增量备份文件存储在一个备份存储装置中。然后,可以舍弃该快照。在获取数据库快照之后的某个点上,SQL服务器可以重新设置DCM位图的实时副本,就像执行一次完全备份操作一样。在另一个实施方案中,标识变化的盘区之后,可以检索并读取一个或多个分配映射,以便确定是否变化的盘区中的每一个都分配给一个表或其他对象。如果一个变化的盘区未分配,则该变化的盘区不会存储为增量备份的一部分。还可以将一个或多个映射存储为增量备份的一部分。该方法进一步包括对多个增量备份和快照重复上述步骤。在另一个实施方案中,先前存储的完全备份可以被转换为一个部分备份,例如增量备份或差异备份。在一个实施方案中,可以从一个存储装置中检索所存储的数据库快照。 该存储的快照可以对应于在数据库上执行的前一个完全备份操作。所存储的完全备份可以被转换成一个增量备份文件以降低该具体备份的存储利用率。为了将所存储的快照转换成为一个增量备份文件,可以从快照中检索用于标识变化的盘区的一个或多个映射。可替代地,该标识变化的盘区的一个或多个映射可以与快照分开存储。然后,可以从所存储的快照中检索变化的盘区并将其作为增量备份文件存储在备份存储装置中。可以舍弃备份中未发生变化的数据。可替代地,可以使用其他相似的技术将所存储的完全备份文件转换成一个增量备份文件。在另一个实施方案中,在一个或多个增量备份之后可以请求一个恢复操作。一种媒质服务器可以从备份存储装置中检索前一个完全备份文件并将该前一个完全备份文件写到一个存储装置中,例如与媒质服务器或SQL服务器相关联的磁盘或其他存储装置。该媒质服务器可以执行此步骤,而不要求来自SQL服务器的任何输入。这可以允许SQL服务器继续执行作为数据库的常规功能的一部分的操作,例如处理新的事务。接着,该媒质服务器可以检索一个或多个增量备份文件或者将增量备份文件中变化的盘区写到完全备份文件内适当的位置中。该媒质服务器可以将变化的盘区从多个增量备份文件写到完全备份文件中;该多个增量备份文件可以对应于在完全备份操作之后执行的多个增量备份。媒质服务器还可以按照多个增量备份文件的创建顺序而写它们中变化的盘区,这样首先写最旧的增量备份文件中变化的盘区,并且最后写最新的增量备份文件中变化的盘区。媒质服务器可以通过读取作为增量备份操作的一部分而存储的一个或多个映射来确定发生变化的盘区在卸载的完全备份文件中属于哪个位置。媒质服务器可以将变化的盘区写回到所卸载的完全备份文件内部,而不要求来自SQL服务器的任何输入。鉴于以下本文提出方法的详细描述,这些以及其他特征和优点对本领域的普通技术人员将变得显而易见。
通过参考以下描述并结合附图,本方法和机制的上述和进一步的优点可以得到更好的理解,在附图中图I的示图展示了根据一个或多个实施方案的一个数据库档案系统。图2展示了创建快照的一个数据库服务器。图3展示了根据一个或多个实施方案的一个快照映像。图4展示了根据一个或多个实施方案的一个媒质服务器和具有存储的数据库备份文件的一个存储装置。图5展示了将存储的完全备份文件转换为增量备份文件的一个实施方案。图6展示了数据库档案系统的一个实施方案。图7展示了由一个完全备份文件和一个增量备份文件重构的一个卸载的数据库文件的一个实施方案。图8的广义流程图展示了增量备份操作的一个实施方案。图9的广义流程图展示了在增量备份之后的恢复操作的一个实施方案。
具体实施例方式在以下描述中,给出了很多具体细节以透彻理解本文提出的方法和机制。然而,本领域普通技术人员应当认识到没有这些具体细节也可以实施各种实施方案。在一些实例中,并未详细示出众所周知的结构、部件、信号、计算机程序指令以及技术,以避免混淆本文所述的方法。应当认识到为了进行简单而清晰的解释,图中所示的元素不一定按照比例绘出。例如,可以相对于其他元素而放大一些元素的尺寸。参见图1,示出了一个数据库档案系统的实施方案的广义框图。数据库服务器110 和媒质服务器130连接到网络120上。在一个实施方案中,数据库服务器110可以是微软 SQL服务器。在一些实施方案中,数据库服务器110还可以连接到一个应用服务器(未示出)上,例如微软 的SharePoint 服务器。网络120可以包括各种网络连接,这些网络连接包括以下类型网络的组合局域网(LAN)(如以太网和光纤通道(FC)网)、基于电气与电子工程协会的802. 11标准(Wi-Fi) 的无线局域网(WLAN)、广域网(WAN)(如互联网、蜂窝数据网)以及其他数据通信网络,例如在公共网络(例如互联网)上实现的虚拟专用网(VPN)。其他网络连接和体系结构是可能的并且可以设想的。媒质服务器130可以管理备份存储装置140,并且媒质服务器130可以在备份存储装置140中存储备份数据以及从数据库服务器110接收的元数据。媒质服务器130可以托管软件从而执行与备份和恢复数据至数据库服务器110相关联的任务。媒质服务器130代表连接到网络120上的任意数量的媒质服务器、主服务器或其他类型的服务器。在其他实施方案中,媒质服务器130可以是主服务器、其他类型的服务器或数据库档案系统中一个或多个服务器的组合。媒质服务器130可以直接连接至备份存储装置140上或者媒质服务器130可以通过各种网络中的任意一种连接至备份存储装置140上,例如LAN、存储区域网络(SAN)或者其他网络。在一个实施方案中,备份存储装置140可以是直接附接到媒质服务器130的总线上的适配器卡。媒质服务器130可以使用内部存储器(例如随机访问存储器(RAM))以便在从数据库服务器110、备份存储装置140或其他装置接收数据或向其发送数据时对数据进行缓存。备份存储装置140代表任意数量的备份存储装置,并且可以包括各种类型的存储媒质中的任意一种,如硬盘驱动器、磁盘卷、刀片服务器、闪存驱动器、光驱动器、磁带驱动器、磁带卷、自动磁带库或其他存储媒质。数据库150可以代表本文实现的数据库程序和/或一个或多个实际数据库。数据库程序是指用于操作数据库的可执行命令、用户接口以及其他程序代码。所包含的数据库可以进一步包括各种表、索引、关系、查询、存储的程序、文件系统、安全层、网络接口等,它们被配置为用于操作多条数据记录。数据库150中的记录可以排列在表中(行和列排列方式)。本文所用术语“记录” 应当表示数据库中的表项。可以将相关记录的集合概括地描述为数据库中的“表”。一条记录可以包括一个或多个字段,这些字段可以用作其他表中的其他记录的索引(或关键字)。 例如,在文档管理数据库中,文档表中的每条记录可以代表存储在数据库中的一个文档。在一个实施方案中,文档可以存储在记录本身的字段中。在一些实施方案中,可以通过对文档的引用在记录中表示该文档,例如存储单元。另外,数据库可以创建并修改已装载的数据库文件以便存储和访问关系数据库的任意给定实现形式。在一些实施方案中,数据库150可以在专用计算系统上执行,如数据库服务器110,该计算系统被配置为用于通过网络120由其他服务器以及客户端计算机进行访问。数据库150可以包括与关系数据库相关联的各种功能,如相加和查询过程。查询功能可以从数据库检索信息,例如变化映射、分配映射、对象、表、记录以及其他数据。相加功能可以在数据库中存储信息。数据库150可以是微软SQL服务器数据库并且用于提供访问数据库150的接口可以使用SQL。可以对进行数据存储并且可以在页面级别上从数据库 150对其进行检索。每个页面可以有8千字节(KB)的大小并且可以由头部和数据组成。页面头部可以包含对象ID,页面中数据属于该对象ID。服务器输入/输出(I/O)操作可以在页面级别上进行,这样使得数据库服务器110读或写整个页面。在完全备份处理(其中生成数据库150的完全备份)之后,可以采用后续的增量备份处理来生成增量备份并且只获取最近一次完全备份以来发生变化的盘区。增量备份的生成可以一直连续进行,其中可以执行并创建多个连续的后续增量备份,其中每个增量备份包括最近一次执行的增量备份之后发生变化的盘区。由多个增量备份操作导致的变化盘区可以存储在备份存储装置140中。对于恢复操作,可以在写数据库文件的处理过程中将最近一次生成的完全备份存储到一个存储装置中,例如备份存储装置140、数据库服务器110的物理存储器或其他存储装置。然后可以将存储在第一增量备份文件中的变化盘区分配到数据库文件内部适当的存储单元中,以便将该数据库文件重新实例化到数据库150在启动第一增量备份时的状态。 接着,能够以增量备份序列的生成顺序对这些增量备份中的每一个连续地重复这种处理。 在处理结束时,可以通知数据库服务器110数据库文件已经重构并且准备将其恢复为数据库150的一个实时实例。用户或管理员可能希望从备份的数据库中恢复一个或多个数据项(例如,文件、 电子邮件、图像),而不是检索整个数据库。数据库服务器110可以从检索的数据库文件检索所请求一个或多个数据项,并将这些项恢复到数据库150中。恢复一个或多个数据项的处理可以称为精细恢复处理。图I的媒质服务器130和数据库服务器110可以是任何类型的计算装置(例如, 服务器,桌面个人计算机(PC)、膝上计算机、智能电话)并且包括各种硬件和软件部件。硬件部件可以包括通过总线体系结构连接在一起的一个或多个处理器、存储器装置、以及输入/输出(I/o)装置。软件部件可以包括存储在存储器装置上的操作系统。操作系统可以是各种类型操作系统中的任意一种,例如微软Windows 、Linux 、Solaris 或其他操作系统。该操作系统是可操作的以便向用户提供各种服务并且可以支持各种程序的执行,例如备份应用程序、服务器应用程序、数据库应用程序、软件代理或各种其他应用程序的任意一种。在其他实施方案中,数据库服务器、数据库、媒质服务器、网络以及备份存储装置的数量和类型不限于图I所示的那些。任意数量的媒质服务器、数据库服务器和数据库以及它们的任意组合可以经由调制解调器组、直接LAN连接、无线连接、WAN链接等的各种组合而在以网络体系结构中互相连接。现在参见图2,图中展示了创建快照映像的数据库服务器的图例。数据库服务器 210管理数据库220,并且数据库服务器210可以连接至存储装置230上。存储装置230代表任意数量的存储装置,并且存储装置230可以是先前描述的多种类型的存储媒质中的任意一种。可替代地,数据库服务器210可以使用物理存储器或其他本地存储装置来存储快照240以及与数据库220相关的其他数据。如图2所示,快照240存储在存储装置230中。快照240可以由数据库服务器210 创建,并且快照240可以代表数据库220的备份映像。快照240可以是数据库220的一种静态的、时间点的表示形式。快照240可以是整个数据库的完全映像的副本,并且数据库服务器210可以在执行快照备份之后在存储装置230中存储快照240。媒质服务器(未示出) 可以访问快照240以执行增量备份。可替代地,媒质服务器可以访问快照240以执行完全备份。数据库服务器210可以认为快照备份是完全备份,并且数据库服务器210可以重新设置映射和其他元数据以表明快照备份是完全备份的等同体。现在参见图3,图中展示了快照映像的一个实施方案。快照310代表在SQL服务器进行的快照备份过程中从SQL数据库获取的映像。快照310可以包含数据库的所有数据, 包括元数据以及一个或多个映射。这些映射可以包括差异变化映射(DCM) 320、全局分配映射(GAM) 330、共享的全局分配映射(SGAM) 340、索引分配映射(IAM) 350以及对象360。对象360代表可以在底层SQL数据库中存在的任意数量的对象,快照310从该底层SQL数据库中创建。对象360可以组织成为盘区,并且对象360可以代表存储在数据库中的任意类型的数据,包括表、记录、文档、项、列表以及其他数据。在一些实施方案中,SQL数据库可以由一个或多个文件构成,每个文件具有它自己的一组映射。在这些实施方案中,快照310可以包含多个DCM、GAM、SGAM、LAM等。媒质服务器可以从快照310中检索DCM 320。然后,媒质服务器可以读取DCM 320 的页面以确定自从前一个完全或增量备份以来修改了哪些盘区。媒质服务器可以执行查询以便从快照310检索构成DCM的页面第一 DCM页面可以位于快照310的第七页面。第二 DCM页面可以偏离第一 DCM页面512232页而位于第512239页面。第三页的DCM页面可以偏离第一 DCM页面1024464页而位于第1022471页面上,以此类推。媒质服务器还可以执行查询以便从快照310检索一个或多个分配映射。分配映射可以包含关于一个对象或索引所使用的盘区的信息。例如,分配映射可以包含盘区的位屏蔽,这些位屏蔽表示该对象使用了哪些盘区。该一个或多个分配映射可以包括GAM 330、 SGAM 340以及IAM 350。这些分配映射可以允许媒质服务器确定是否已经分配了发生变化的盘区。例如,因为对应于一个盘区的对象被删除,该盘区就可能发生变化。因此,该盘区实际上可以不包含任何需要备份的数据,即使DCM 320可以表示该盘区已经变化。通过检查这些分配映射,媒质服务器可以减少需要存储为增量备份的一部分的盘区的数量。媒质服务器可以从快照310中仅检索已分配给一个对象的变化盘区。然后,媒质服务器可以在存储装置中存储所检索的盘区。媒质服务器还可以存储元数据,该元数据包括作为增量备份的一部分的一个或多个映射。可替代地,媒质服务器可以完整地将快照310 备份为完全备份的一部分。然而,执行快照310的完全备份可能比执行增量备份占用更多的存储空间量。在变化的盘区以及一个或多个映射从快照310检索并且存储在备份存储装置中后,可以舍弃快照310。上述与快照310相关的由媒质服务器执行的步骤还可以由数据库服务器、其他服务器或其他类型的计算装置来执行。现在参见图4,图中展示了媒质服务器和具有存储的数据库备份文件的一个实施方案。媒质服务器410可以在备份存储装置420中存储与数据库的备份相关联的文件。完CN 102591982 A
全备份文件425存储在备份存储装置420中,并且完全备份文件425可以包含一个先前完全数据库备份操作产生的数据。在一个实施方案中,完全备份文件425可以是一个主数据文件(MDF)。媒质服务器410还可以被配置为用于生成表和索引信息的略图并与完全备份文件425中的备份内容一起存储。略图可以指出数据库文件的数据结构,并且略图可以包括多个存储单元,这些存储单元定义了数据库文件内部的某些数据结构。略图可以用于快速并有效地对完全备份文件425中的对象进行定位,而无需执行大量的查找操作。当正在创建数据库的一个完全备份时,可以通过查询该数据库来生成略图。略图可以用于访问或恢复完全备份文件425的内容,而无需使用实时数据库或数据库服务器。增量备份文件430和440还存储在备份存储装置420中。增量备份文件430和 440还可以称为块级增量文件。增量备份文件430和440包含一些发生变化的盘区,这些盘区是作为数据库的增量备份操作的一部分而进行备份的。增量备份文件430和440代表任意数量的文件,这些文件与可执行的任意数量的增量备份操作相关联。例如,如果在连接至媒质服务器410的数据库上执行十次增量备份,那么就会有十个增量备份文件存储在备份存储装置420中。在一个实施方案中,完全备份文件425和/或增量备份文件430和440可以是二进制文件,利用调用备份存储装置420的文件系统的标准文件I/O可以顺序地访问该二进制文件。该文件系统可以是在备份存储装置420上创建的卷中参引并且存储数据的一种信息系统,该数据以文件和目录形式按层级进行组织。在一些实施方案中,完全备份文件425 和/或增量备份文件430和440可以采用存储器的块单元(也称为页面或分配单元)的形式进行构建。元数据435和445还可以存储在备份存储装置420中,并且元数据435对应于增量备份文件430,而元数据445对应于增量备份文件440。元数据435包括附加数据,例如一个或多个映射,这些附加数据可以作为与增量备份文件430相关联的增量备份操作的一部分而存储在备份存储装置420中。一个或多个映射可以包括DCM、GAM、SGAM、IAM以及其他映射。附加信息还可以存储在与增量备份文件430相关的元数据435中。元数据435可以用于帮助从增量备份文件430恢复一个或多个数据项的操作。在另一个实施方案中,备份存储装置420中可以有一个元数据存储单元,该元数据存储单元包含与多个增量备份操作相关联的元数据。在又一个实施方案中,元数据435可以存储在增量备份文件430内部。 元数据435的上述特征还可以适用于元数据445。在一个实施方案中,当执行一次新的完全数据库备份操作时,媒质服务器410可以从备份存储装置420中删除旧的完全数据库备份文件。媒质服务器410此时还可以删除旧的元数据以及增量备份文件。在另一个实施方案中,当执行一次新的完全数据库备份操作时,媒质服务器410可以保留一个或多个先前的完全数据库备份文件、增量备份文件和/ 或元数据文件。媒质服务器410可以具有与元数据文件、增量备份文件以及完全数据库备份文件相关的保留策略,该保留策略涉及删除更旧的文件以便释放备份存储装置420中的存储空间。在另一个实施方案中,完全备份文件425可以被转换为一个增量备份文件(或差异备份文件)以降低与完全备份文件425相关的存储利用率。如果完全备份文件425对应于一个快照备份,那么可以从完全备份文件425检索一个或多个的映射,这个或这些映射
11标识与更早的备份相比已经变化的数据。可替代地,这些标识变化数据(可以将它们标识为盘区)的映射可以与完全备份文件425分开存储,并且可以从这种分离的文件或位置上检索这些映射。在已经检索了这些映射并且已经标识了变化的数据后,变化的数据可以从完全备份文件425得到检索并且作为增量备份文件存储在备份存储装置420中。可替代地, 可以使用一种不同的算法将完全备份文件425转换为增量备份文件。在完全备份文件425 已经转换为增量备份文件后,完全备份文件425可以从备份存储装置420中舍弃。还可以存储最新创建的增量备份所对应的较早备份的标识。为了将完全备份文件425压缩成一个转换的增量备份文件,在完全备份文件425 之前创建的前一个完全备份文件可能需要存储在备份存储装置420中。该前一个完全备份文件由所转换的增量备份文件参引(或者以其他方式与其相关联)以帮助任何可能的恢复操作。以后的恢复操作就可以同时利用前一个完全备份文件和所转换的增量文件。现在参见图5,图中展示了用于压缩先前存储的完全备份文件的系统和方法的示例。在该实例中,所存储的完全备份文件被转换为部分(例如,增量的)备份文件。媒质服务器510连接至备份存储装置520上,并且备份存储装置520存储完全备份文件530、540、 550以及560。完全备份文件530至560表示可以在备份存储装置520中存储的任意数量的完全备份文件。完全备份文件530至560可以对应于较早(例如,连续地)执行的完全备份操作, 而无需在这些完全备份操作之间执行任何增量或差异备份操作。可以通过将完全备份文件 530至560中的一个或多个压缩成所转换的增量备份文件而减少存储完全备份文件530至 560所使用的存储空间。当将先前创建的完全备份文件转换为部分备份文件时,较早存储的完全备份文件可以用作锚点、或起始点/参考,以用于有待转换的后续完全备份文件。在图5所示的实例中,完全备份文件530可以用作锚完全备份文件。通过读取一个或多个用于标识变化数据的映射、从完全备份文件540检索变化的数据、并且将变化的数据存储为增量备份文件(即所转化的增量备份文件545),可以将在该锚文件(即完全备份文件540)之后的所存储的下一个完全备份文件压缩成一个转换的增量备份文件。在已经创建了转换的增量备份文件 545之后,可以舍弃完全备份文件540。在其他实施方案中,可以使用不同的方法将完全备份文件转换成增量备份文件。通过将完全备份文件550和560对应地压缩成转换的增量备份文件555和565,这种处理可以持续进行。然后,可以舍弃完全备份文件550和560。对于所存储的备份文件,这种处理可以大大降低存储利用率。可以将锚完全备份文件(即完全备份文件530)和转换的增量备份文件545至565移动到基于云的存储单元、磁带装置上, 或者可以保留在备份存储装置520上。可以利用完全备份文件530以及一个或多个转换的增量备份文件545至565进行完全的或精细的恢复。现在转到图6,图中展示了数据库档案系统的一个实施方案。数据库服务器610连接至网络680以及数据库630上。媒质服务器670连接至网络680以及存储装置620上。 在其他实施方案中,存储装置620可以直接连接至数据库服务器610上,并且媒质服务器 670可以通过网络680访问存储装置620。用户或管理员可以请求将数据库恢复到与一个特定的增量备份相关联的一个特定时间点上。可替代地,用户或管理员可以请求从一个特定时间点恢复一个或多个数据项。媒质服务器670可以存储数据库630的备份,并且媒质服务器670可以将一个完全备份文件与一个或多个增量备份文件进行合并,以作为一个或多个数据项的恢复操作的一部分。卸载的数据库文件660包含完全备份文件640以及增量备份文件650。本文所用的术语“卸载的数据库文件”旨在包括一个含有内容管理应用程序的数据的数据库,该内容管理应用程序在内容管理应用程序的实时实例上当前并未激活。完全备份文件640可以对应于用户选择的时间点之前执行的数据库630的最近完全备份。在执行完全备份操作时, 完全备份文件640可以包含数据库630的所有数据。增量备份文件650可以对应于在所选时间点上发生的一个增量备份。增量备份文件650代表可在完全备份操作(对应于完全备份文件640)之后和所选时间点之前执行的任意数量的增量备份。数据库服务器610可以包括精细恢复功能以便将特定对象或记录从卸载的数据库文件660添加到数据库630上。精细恢复功能还可以包括选择一条或多条记录或对象的装置以进行恢复。在一个实施方案中,可以将选择并恢复记录或对象的用户接口配置为精细恢复操作的一部分。精细检索可以使管理员或用户能够从卸载的数据库文件660中只选择所需要的记录或对象,而无需恢复整个文件。在一些实施方案中,对象可以是文档,例如微软Word 、Excel ,PowerPoint 、便携式文档格式(HF)、视频、音频文件以及其他文档。在其他实施方案中,对象可以包括网站、子网站、列表以及列表项。在一个实施方案中,对象可以从卸载的数据库文件660恢复到数据库630的工作副本中,或者恢复到数据库630的另一个副本中。在其他实施方案中,在恢复到数据库630 的工作副本之前,可以将对象缓存在数据库服务器610的存储器中。在又一个实施方案中, 对象可以从卸载的数据库文件660恢复到存储器媒质、数据库服务器610、媒质服务器670、 其他服务器、客户端或其他计算装置上的文件系统中。在仍又一个实施方案中,对象可以恢复到内部门户应用程序或其他软件应用程序。用户可以执行差异和日志备份以及完全或增量备份。差异或日志备份可以与完全和增量备份相混合。本文描述的方法和机制还可以用于执行增量备份并且将数据库恢复到增量备份,同时也执行差异和日志备份并且从差异和日志备份进行恢复。例如,用户可以执行一次完全备份、一次增量备份、两次差异备份,然后再执行一次日志备份。那么用户可能希望将数据库恢复到它在日志备份后所处的状态。可以将完全备份文件写到一个存储装置中,然后可以将增量备份文件叠加(即逻辑上合并)在完全备份文件上。接着第二差异备份文件可以在完全加增量文件的顶部进行恢复。最终,在所检索的数据库文件上对日志备份进行回放。根据本文描述的方法和机制,可以执行完全、增量、差异以及日志备份的其他顺序。现在参见图7,图中展示了从完全备份文件和增量备份文件重构的卸载数据库文件的实施方案的框图。卸载数据库文件660、完全备份文件640以及增量备份文件650对应于图6的相同文件。完全备份文件640包括对象711至719,这些对象代表任意数量的存储数据库对象。对象711至719可以代表存储在数据库中的任意类型的数据,包括表、记录、文档、项、列表以及其他数据。增量备份文件650包括对象722和729,这些对象可以代表在创建完全备份文件640和创建增量备份文件650两个时刻之间已经变化的任意数量的对象。对象722和729对应于在创建增量备份文件650的增量备份操作过程中收集的变化的盘区。另外,在完全备份文件640以及增量备份文件650中所呈现的对象可以包括描述对象的元数据。图7描绘了恢复操作的一个实施方案。恢复应用程序可以将对象711至719从完全备份文件640写到卸载的数据库文件660中。然后,恢复应用程序可以将对象722以及 729从增量备份文件650写到卸载的数据库文件660中。恢复应用程序可以使用一个或多个分配映射和/或与增量备份文件650 —起存储的其他元数据以确定将对象722和729写到卸载的数据库文件660中的合适位置。对象712和719可以分别由对象722和729覆盖。 在将对象722和729从增量备份文件650写到卸载数据库文件660中之后,恢复应用程序可以告知SQL服务器卸载的数据库文件660已经进行了重构并且已准备好恢复到数据库的实时副本中。恢复应用程序可以在数据库服务器、媒质服务器或其他计算装置上运行。在另一个实施方案中,恢复应用程序可以使用完全备份文件640作为恢复应用程序的起始点。恢复应用程序可以将对象从增量备份文件650 (以及与所执行的进一步的增量备份操作相对应的任意附加的增量操作文件)写到完全备份文件640中,其中变化的对象覆盖原始对象。在又一个实施方案中,恢复应用程序可以将完全备份文件640和增量备份文件650写回到数据库的工作备份的顶部或写到数据库的另一份副本中。在又一个实施方案中,可以在对象在恢复到数据库的工作副本中之前将其缓存在存储器中。在又一个实施方案中,对象可以从完全备份文件640和差异备份文件650恢复到存储媒质、SQL服务器、 媒质服务器、其他服务器或其他计算装置上的一个文件系统中。在仍又一个实施方案中,对象可以恢复到一个内部门户应用程序或其他软件应用程序中。图7中的卸载数据库文件660、完全备份文件640以及增量备份文件650的图例是这些文件的逻辑表示。这些文件的实际结构和组织与它们在图7中呈现的形式有所不同。例如,额外的数据可以附加到增量备份文件650中。如果在创建了完全备份文件640 之后新的对象被添加到数据库中,可以将描述新对象的元数据添加到增量备份文件650的末端。另外,如果在创建了完全备份文件640之后从数据库中删除了多个对象,可以描述这些所删除的对象的元数据附加到增量备份文件650。恢复应用程序可以使用元数据来确定添加哪些对象以及从卸载的数据库文件660中删除哪些对象。恢复应用程序可以生成与数据库的不同时间点实例相对应的多个卸载数据库文件。恢复应用程序可以为用户生成一个用户接口以便访问多个时间点的数据库实例并从它们中进行选择。用户可能希望从特定时间点的数据库备份副本上恢复一个或多个对象。可替代地,用户可能希望从特定时间点来检索整个数据库。恢复应用程序提供的用户接口可以为用户呈现多个备份以便从考虑进行恢复操作的时刻中进行选择。可以根据执行备份的日期和时间列出多个时间点备份。列出并组织时间点备份的其他方法是可能的并且是可设
相的
心、U J O现在参见图8,图中展示了一种用于执行数据库的增量备份的方法的实施方案。为了进行讨论,顺序地示出了本实施方案中的步骤。应当注意的是,在以下描述的方法的不同实施方案中,可以按照不同于所示次序的次序同时执行所描述的一个或多个要素,或者可以完全忽略。还可以按照所期望的方式执行其他附加要素。在方框810,方法800开始,并且然后在方框820,传送一条执行数据库完全备份的请求。该请求可以由用户或管理员发出并传送到数据库服务器。可替代地,该请求可以根据预先安排的备份时间表由数据库服务器、媒质服务器或其他计算装置自动地产生。数据库服务器可以表现得如同正在执行一次完全数据库备份一样,即使实际上可能仅在执行增量备份。接下来,在方框830,可以获取数据库的一个快照。该快照可以由数据库服务器执行。在获取数据库快照之后的某个点上,数据库服务器可以重新设置DCM位图的实时副本, 就好像执行一次完全备份操作一样。重新设置DCM位图的实时副本将清空位图中所有的变化数据/盘区指示器,并允许数据库服务器只跟踪获取快照后发生的变化。在方框830后,可以从快照检索一个或多个映射(方框840)。这些映射可以包括 DCM、GAM、SGAM、IAM和/或其他映射。可以读入映射以确定在前一个备份之后哪些盘区发生了变化(方框850)。还可以使用映射来确定是否分配了变化的盘区。前一个备份可以是完全备份、快照备份或增量备份。在方框850之后,从快照中检索变化的盘区(方框860)。可以使用一个或多个映射来定位快照内部变化的盘区。在一个实施方案中,只检索已分配给对象的变化盘区。接着,可以将变化的盘区在存储装置中存储为增量备份文件(方框870)。另外,还可以将该一个或多个映射以及任何附加元数据存储在存储装置中。然后,在方框880中,舍弃快照。在方框880之后,方法在方框890结束。现在转到图9,图中展示了从增量备份执行恢复操作的方法的一个实施方案。为了进行讨论,顺序地示出了本实施方案中的步骤。应当注意的是,在以下描述的方法的各种实施方案中,可以按照不同于所示次序的次序同时执行所描述的一个或多个要素,或者可以完全忽略。也可以按照所期望的那样执行其他附加要素。在方框910中,方法900开始,接着在方框920中,检测从数据库的备份版本中执行恢复操作的请求。恢复操作可以由用户或管理员进行请求,并且恢复操作可以根据对应于前一次备份操作的数据库的特定时间点来请求。前一次备份操作可以是数据库的完全、 增量、差异或日志备份。接着,在方框930,可以检索前一次完全数据库备份文件。前一次完全数据库备份文件可以对应于用户所请求的特定时间点上或该时间点以前的最近一次数据库完全备份操作。然后,前一次完全数据库备份文件可以存储在存储装置中(方框940)。 在一个实施方案中,存储装置可以是与包含完全数据库备份文件的备份存储装置相分离的一个存储装置。在其他实施方案中,存储装置可以与包含完全数据库备份文件的备份存储装置相同。在又一个实施方案中,存储装置可以是附接到数据库服务器上的一个或多个存储装置,该数据库服务器与数据库的实时实例相关联。在方框940之后,对应于增量备份操作的变化盘区可以从备份存储装置中检索 (方框950)。另外,与增量备份操作相关联的一个或多个存储的映射还可以从备份存储装置中检索。该一个或多个存储的映射可以包括DCM、GAM、SGAM、IAM和/或其他映射。与变化的盘区相关联的附加元数据还可以从备份存储装置中检索。接着,可以将变化的盘区写入前一次完全数据库备份文件内部的适合位置上(方框960)。可以使用一个或多个映射来确定前一次完全数据库备份文件内部的适合位置。然后,将该重构的数据库备份文件告知数据库服务器(方框970)。可以告知数据库服务器该重构的文件已等待恢复。数据库服务器可以恢复整个重构文件,或者数据库服务器可以从重构文件中恢复一个或多个对象。在方框970之后,方法900可以在方框980结束。应当注意,上述实施方案可以包括软件。在这样的实施方案中,代表所述系统和/ 或方法的程序指令和/或数据库(这两者都可以称为“指令”)可以存储在一种计算机可读媒质上。通常来讲,计算机可读存储媒质可以包括可由计算机在使用过程中访问的任何存储媒质以便向计算机提供指令和/或数据。例如,计算机可读存储媒质可以包括的存储媒质有磁或光媒质,例如磁盘(固定的或可移动的)、磁带、CD-ROM、DVD-ROM、CD-R、CD-RW、 DVD-R、DVD-RW或蓝光(Blu-Ray)。存储媒质可以进一步包括易失性或非易性失存储媒质, 例如RAM(例如同步动态RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、低功率 DDR(LPDDR2 等)SDRAM、Rambus DRAM (RDRAM)、静态 RAM(SRAM))、ROM、非易失性存储器(例如闪存),可通过如USB接口等这样的外围接口访问这些存储媒质。存储媒质可以包括微电子机械系统(MEMS)以及可通过如网络和/或无线链接这样的通信媒质访问的存储媒质。在不同的实施方案中,本文所述方法和机制的一个或多个部分可以构成云计算环境的一部分。在这样的实施方案中,根据一个或多个不同模型,可以通过互联网将资源作为服务来提供。这类模型可以包括基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务 (SaaS)。在IaaS中,计算机基础设施作为服务进行传送。在这种情况中,计算设备通常由服务提供商拥有并操作。在PaaS模式中,用于开发软件解决方案的开发者所用的软件工具和底层设备可以由服务提供者作为服务来提供并托管。SaaS典型地包括按需作为服务的服务提供商许可软件。服务提供商可以托管软件,或者可以将软件调配给客户一段给定的时间。以上模式的很多组合是可能的并且是可以设想的。尽管展示并描述了多个方法的若干实施方案,但对本领域普通技术人员而言显而易见的是可以对所述方法做出很多改变、修改和变更。因此,改变、修改和变更应当视为在本文描述的方法和机制的范围内。还应当强调的是,上述实施方案只是实施方式的非限定性实例。
权利要求
1.一种用于执行数据库增量备份的方法,该方法包括传送一个请求以执行该数据库的一个完全备份;检索与该完全备份相关联的一个或多个映射,所述一个或多个映射包括自从一个前一次备份以来已经变化的数据的一个标识;检索所变化的数据;将所变化的数据作为一个增量备份文件存储在一个存储装置中;并且舍弃自从该前一次备份以来未发生变化的该完全备份的完全备份数据。
2.如权利要求I所述的方法,进一步包括存储与该增量备份文件相关联的所述一个或多个映射。
3.如权利要求2所述的方法,其中该一个或多个映射包括一个差异变化映射(DCM),该差异变化映射包括表明自从该前一次备份以来已经变化的数据的一个位图,并且其中该方法包括重新设置与该数据库相关联的一个DCM位图的实时副本,就如同响应于所述请求执行了一次完全备份。
4.如权利要求I所述的方法,该方法包括响应于执行该完全备份的这个请求而获取该数据库的一个快照。
5.如权利要求2所述的方法,其中该一个或多个映射包括一个全局分配映射(GAM), 该全局分配映射包括关于已经被分配的多个数据盘区的信息;一个共享的全局分配映射 (SGAM),该共享的全局分配映射包括与具有至少一个未用页面的多个混合盘区相关的信息;和/或一个索引分配映射(IAM),该索引分配映射包括关于一个表或索引所使用的多个盘区的信息;并且其中在检索所变化的数据之前,该方法包括读取该一个或多个映射以确定是否分配了这些变化的盘区;并且只有分配了这些变化的盘区时才对它们进行检索。
6.如权利要求2所述的方法,进一步包括检测与所述增量备份文件相对应的一个请求以执行一个恢复操作;标识与该增量备份文件相关联的一个完全数据库备份文件;通过利用该增量备份文件以及与该增量备份文件相关联的完全数据库备份文件来执行一个恢复操作而创建一个恢复的数据库;将该恢复的数据库告知一个数据库服务器。
7.如权利要求I所述的方法,进一步包括标识一个先前存储的完全备份;检索与该完全备份相关联的一个映射;利用所述映射来标识自从一个前一次备份以来已经变化的具体数据;将该具体数据作为该先前存储的完全备份的一个压缩版本的一部分进行存储;并且舍弃自从该前一次备份以来未发生变化的完全备份的完全备份数据。
8.一种计算机可读存储媒质,该计算机可读媒质包括多条程序指令以执行一个数据库的增量备份,其中当执行时,这些程序指令是可操作的而用于传送一条请求以执行该数据库的一个完全备份;检索与该完全备份相关联的一个或多个映射,所述一个或多个映射包括自从一个前一次备份以来已经变化的数据的一个标识;检索所变化的数据;将所变化的数据作为一个增量备份文件存储在一个存储装置中;并且舍弃自从该前一次备份以来未发生变化的该完全备份的完全备份数据。
9.如权利要求8所述的计算机可读存储媒质,其中所述指令是进一步可操作的以便存储与该增量备份文件相关联的所述一个或多个映射。
10.如权利要求9所述的计算机可读存储媒质,其中该一个或多个映射包括一个差异变化映射(DCM),该差异变化映射包括表明自该从前一次备份以来已经变化的数据的一个位图,并且其中这些指令是进一步可操作的以便重新设置与该数据库相关联的一个DCM位图的实时副本,就如同响应于所述请求执行了一次完全备份。
11.如权利要求8所述的计算机可读存储媒质,其中这些程序指令是进一步可操作的以便响应于执行该完全备份的请求而获取该数据库的一个快照。
12.如权利要求9所述的计算机可读存储媒质,其中该一个或多个映射包括一个全局分配映射(GAM),该全局分配映射包括关于已经分配的多个数据盘区的信息;一个共享的全局分配映射(SGAM),该共享的全局分配映射包括关于具有至少一个未用页面的多个混合盘区的信息;和/或一个索引分配映射(IAM),该索引分配映射包括关于一个表或索引使用的多个盘区的信息;并且其中在检索所变化的数据之前,这些指令是可操作的以便读取该一个或多个映射以确定是否分配了这些变化的盘区;并且只有分配了这些变化的盘区时才对它们进行检索。
13.如权利要求9所述的计算机可读存储媒质,其中这些程序指令是进一步可操作的以便检测与所述增量备份文件相对应的一个请求以执行一个恢复操作;标识与该增量备份文件相关联的一个完全数据库备份文件;通过利用该增量备份文件以及与该增量备份文件相关联的完全数据库备份文件来执行一个恢复操作而创建一个恢复的数据库;并且将该恢复的数据库告知一个数据库服务器。
14.如权利要求13所述的计算机可读存储媒质,其中这些程序指令是进一步可操作的以便标识一个先前存储的完全备份;检索与该完全备份相关联的一个映射;利用所述映射来标识自从一个前一次备份以来已经变化的具体数据;将该具体数据作为该先前存储的完全备份的一个压缩版本的一部分进行存储;舍弃自从该前一次备份以来未发生变化的完全备份的完全备份数据。
15.一种用于执行数据库增量备份的系统,该系统包括一个数据服务器;一个媒质服务器;一个数据库;以及一个或多个存储装置;其中该数据库服务器被配置为用于响应于检测到一个执行该数据库的完全备份的请求而启动一个完全备份;并且其中该媒质服务器被配置为用于检索与该完全备份相关联的一个或多个映射,所述一个或多个映射包括自从一个前一次备份以来已经变化的数据的一个标识;检索所变化的数据;将所变化的数据作为一个增量备份文件存储在一个存储装置中;并且舍弃自从该前一次备份以来未发生变化的该完全备份的完全备份数据。
16.如权利要求15所述的系统,其中在舍弃该快照之前,该媒质服务器进一步被配置为用于存储与该增量备份文件相关联的所述一个或多个映射。
17.如权利要求16所述的系统,其中该一个或多个映射包括一个差异变化映射(DCM), 该差异变化映射包括表明自该从该前一次备份以来已经变化的数据的一个位图,并且其中该系统被配置为用于重新设置与该数据库相关联的一个DCM位图的实时副本,就如同响应于所述请求而执行了一次完全备份。
18.如权利要求15所述的系统,其中该系统被配置为用于响应于执行该完全备份的请求而获取该数据库的一个快照。
19.如权利要求16所述的系统,其中该一个或多个映射包括一个全局分配映射(GAM), 该全局分配映射包括关于已经分配的多个数据盘区的信息;一个共享的全局分配映射 (SGAM),该共享的全局分配映射包括关于具有至少一个未用页面的多个混合盘区的信息; 和/或一个索引分配映射(IAM),该索引分配映射包括关于一个表或索引使用的多个盘区的信息;并且其中在检索所变化的数据之前,该系统被配置为用于读取该一个或多个映射以确定是否分配了这些变化的盘区;并且只有分配了这些变化的盘区时才对它们进行检索。
20.如权利要求16所述的系统,其中该媒质服务器进一步被配置为用于检测与所述增量备份文件相对应的一个请求以执行一个恢复操作;标识与该增量备份文件相关联的一个完全数据库备份文件;通过利用该增量备份文件以及与该增量备份文件相关联的完全数据库备份文件来执行一个恢复操作而创建一个恢复的数据库;并且将所恢复的数据库告知一个数据库服务器。
全文摘要
一种用于执行微软SQL服务器数据库的增量备份的系统、方法和媒质。创建该数据库的一份快照,并且然后从这份快照中检索标识出变化的盘区的一个映射。然后从该快照中检索变化的盘区并将其存储在一个备份存储装置中。为了进行恢复操作,将完全数据库备份文件写到存储装置中,并且然后将存储的增量备份文件中的这些变化的盘区与这个完全备份文件合并。随后,将这个重构的文件告知数据库服务器,并且然后由数据库服务器装载这个重构的文件作为该数据库的实时实例。
文档编号G06F17/30GK102591982SQ20121000364
公开日2012年7月18日 申请日期2012年1月6日 优先权日2011年1月7日
发明者D·萨拉夫, L·J·比蒂, M·A·佩恩, S·R·德沃斯 申请人:赛门铁克公司