从数据库镜像进行在线页还原的制作方法

文档序号:6568548阅读:346来源:国知局
专利名称:从数据库镜像进行在线页还原的制作方法
从数据库镜像进行在线页还原 背景存储在计算机上的数据每天都在被丢失和损坏(corruption)。事故、人为错 误、病毒攻击、硬件故障和电源问题仅是存储在计算机上的信息丢失和损坏的数千 种可能的原因中的某些。为了针对未预料的数据丢失进行保护,聪明的个人(和企 业)通常备份其文件。可通过在某种可移动介质上使用备份实用程序简单地制作文 件或文件集的副本来进行备份以便在发生故障或原始数据丢失的情况中使用,或者 在复制数据时也可对其压縮。当数据丢失或数据损坏发生时, 一般从备份中还原受 损或丢失的一个或多个文件。就该意义而言,"还原"意味着从可移动介质复制回 计算机或如果使用了数据实用程序,则复制数据并对其解压縮。当文件较小且当备 份可用时,从备份还原文件是重新获得信息的方便且高效的方式。随着文件随时间改变的大小、重要性和/或程度的增加,周期性取得的文件的 简单副本不再如此吸引人。例如,假定一企业依赖于频繁改变的一组非常大的文件的可靠的可用性,这种情况例如将在由航空公司维护的数据库文件中发生。数据的 周期性快照(在特定时刻取得的一组文件和目录)可能不再是充分的。镜像可能是 更好的选择。计算中的镜像是数数据集的直接副本,使得在分开的机器上存在数据 的精确重复的副本。这些副本被创建,然后被持续更新,使得副本保持与重要数据 库同步。镜像可被维护为硬件级的物理副本或通过数据库机制(有时被称为"复 制")。镜像与快照的不同之处在于,快照表示文件或数据库在特定时刻的状态。 相反,镜像是保持随时跟上动态改变的源的活动的、动态的副本。当数据库的小部分被损坏时,从备份还原整个数据库的选择不是最佳的,因 为所执行的大多数工作是不必要的(数据库中的大部分是良好的)。还原过程缓慢, 需要处理外部介质(备份带或备份盘),且要求人工干预(数据库管理员要选择使 用哪些备份等,例如计算机操作员要找到并加载带子,或其它)。而且,在还原过 程进行时,数据库一般不可供用户使用。处理页损坏的另一方式是尝试修复该页。 修复页较快速,但几乎总是导致页数据的部分或完全丢失,引起数据库内的逻辑不 一致性。如果存在快速且不会导致数据丢失或数据不一致性的重新获得损坏的页(页是由DBMS识别为一单位的固定数目字节的数据,通常为8K字节)上存储的数 据的方式,将是有益的。使该过程在检测到数据损坏时自动启动而无需人工干预来 进行,不要求对带或其他可移动介质的管理和处理,将是有用的。概述一组服务器利用了镜像映射的数据库的现有数据冗余度来还原页损坏。页还 原可在没有从备份介质进行还原的时间和/或管理成本且没有与修复相关联的数据 丢失的情况下进行。而且,从数据库镜像进行在线页还原可由计算机系统在损坏检 测后自动启动和执行。该概念可被扩展来允许还原整个文件或数据库而非个别页或 一组页。该机制可用于从镜像还原主服务器上的损坏页,或从主服务器还原镜像上 的损坏页。从数据库镜像进行在线页还原允许几乎即时的页损坏修补而没有数据丢 失。它也允许在无需寻找/加载/扫描并应用数据和日志备份的情况下进行页数据恢 复,允许高效且可能自动地数据恢复。因此可在无需提供备份或甚至备份不存在的情况下执行还原。可向一个或多 个镜像请求一个或多个页,且可执行验证以确保所返回的页按时赶上主服务器在损 坏检测时的页(当页请求由镜像接收时,镜像上的"重做"操作可能未赶上主服务 器上的"做"操作)。可在崩溃恢复情形期间或正常操作期间检测到损坏时自动修 补页损坏。在崩溃恢复期间,延迟(原文deterring,错)事务巻回的被损坏的页可 在无需人工干预的情况下被自动还原,使得能够在无需个人干预的情况下进行延期 事务的巻回。当有多个镜像可用时,被选中来返回所请求页的镜像可基于哪一镜像 在历史上具有最快响应时间或基于哪一镜像在沿重新播放来自主服务器的日志中 前进最远(即,哪一镜像是最新的)来选择。可对多个镜像上的多页还原进行负载 平衡。可在损坏检测之后自动执行一个或多个页还原,或者页还原可以是用户驱动 的。可从镜像提供页来用于只读查询直到主服务器上的损坏被修补。可从镜像提供 页来用于读/写査询,直到主服务器上的损坏被修补。或者,镜像可变为主服务器。 主服务器上的损坏可从镜像还原,反之,镜像上的损坏可从主服务器还原。附图简述附图中

图1是示出可在其中实现本发明的各方面的示例性计算环境的框图;图2是示出如本领域中已知的用于还原数据库中的页的系统的框图; 图3是示出根据本发明的某些实施例用于从数据库镜像进行在线页还原的系 统的框图;图4是示出如本领域中己知的用于还原页的方法的流程图;以及 图5是示出根据本发明的某些实施例用于从数据库镜像进行在线页还原的方 法的流程图。详细描述概观图2是如本领域中已知的用于还原数据库中的页的系统200的框图。诸如单 机服务器202的计算机上的数据库服务器204,诸如Microsoft的SQL Server、 IBM 的DB2、 Oracle等可包括修复/还原软件216,该软件允许从图2中由备份带206 等表示的一个或多个备份介质中还原其中一部分被损坏(即,损坏页208)的数据 库210,这要求用户干预,如用户输入218 (例如,来自计算机操作员和/或数据库 管理员)所表示的。图4是如本领域中已知的用于还原数据库中的页的方法的流程 图。在402,检测到数据库页损坏。此时, 一般数据库变为不可用。在404,数据 库管理员或其他人必须决定如何继续。例如,假定DBA在406启动页修复。在408, 服务器上的软件通常尝试来修补页内容。通常,丢失数据和商业逻辑,且导致了数 据库内的不一致性。在418, 一旦修复完成,数据库再次变为可用。或者,在410, DBA决定从备份还原该数据库页。在412,可为所需页寻找、加载和扫描备份介 质,或者如果从备份介质重新加载整个数据库,则所有的备份介质必须被按顺序加 载以便应用于数据库。在414,找到该页并将其应用于数据库,或者将整个备份集 应用于数据库。在416,通过应用一个或多个日志来使页面保持最新,且在418, 一旦还原完成,数据库再次变为可用。可以理解,修复选择(步骤404-408和418) 可能导致数据丢失和数据库不一致性。还原选择(步骤404、 410-418)可能是漫 长的过程,且要求至少一个人的干预。在这两种选择中,数据库在修复或还原过程 期间一般不可用。根据本发明的实施例,以下将更全面地描述完全基于软件的灾难恢复解决方 案。简而言之, 一个简单情形可能是1. 检测到损坏页2. 数据库管理员执行还原功能(例如,"从镜像中对页x还原数据库")或还原功能由计算机自动启动(无需人工干预)3. 服务器在数据库中锁定损坏页4. 从主服务器向至少一个镜像发送要求该数据库页的请求。该请求包括一个 或多个被损坏页的页标识符和主服务器上当前时刻的日志序列号(LSN)。提供当 前时刻的日志序列号是因为不能够信任被损坏页上的LSN。LSN是重要的,因为SQL Server将对数据库进行的改变写入事务日志,使得 如果事务开始但无法完成,则来自该日志的改变可被检索并重新应用("巻回") 或被取消完成。当事务提交时,SQL Server将关于该事务的所有日志记录写入磁盘 上的持久存储。因此,即使系统在SQL Server将改变后的数据页写入磁盘之前发 生故障,日志记录也位于磁盘上。当SQL Server再次启动时,日志提供恢复或前 进(roll forward)已完成但其相应的数据页未写入磁盘的任何事务的足够信息。写 入事务日志的每一记录被分配(一般递增的)顺序日志序列号,提供了容易的方式 以跟踪任务被应用的次序。5. 镜像等待其"重做"操作以通过该请求中提供的LSN,以确保对所请求的 页的所有改变都从日志中被重新播放了,并将其应用于该页。6. 镜像从其缓冲池或其磁盘上取回该页。可保证现在由镜像持有的该页与主 服务器上的数据库一致,因为在这期间不能对该页进行更新(因为在步骤3中将其 锁定),且日志被重新播放以通过该锁定点(步骤5)。7. 使用数据库镜像映射通信基础架构,使用新消息类型将该页从镜像发送到 主服务器。8. 在接收该页之后,主服务器将该页写入磁盘以保存还原并释放锁定,使得 该被修补的页再次可用于查询。可提供与在镜像不可用时会发生什么、在镜像挂起时会发生什么、如果在还 原操作期间触发了数据库镜像映射故障转移则会发生什么等相关联的错误处理。在自动模式中,在崩溃恢复期间或常规操作期间检测到损坏页之后,可在无 需人工干预的情况下由计算机自动启动该过程。当检测到损坏页时,自动对于对该 页进行更新的事务保持锁定。延期事务是(异常中止或提交)直到某些外部事件发 生之前不能被解决的事务。在本上下文中,所指示的事件是恢复一致性页,这可被 自动生成。(传统上,所引起的"延期操作"需要管理员干预来解决底层问题。) 当调用从数据库镜像中进行在线页还原的机制的自动模式特征时,损坏页(由页id 标识)被锁定,从镜像完成页还原,然后可调用用于巻回延期事务的代码,得到对数据库页损坏的无缝修复。所述技术可被扩展来从镜像中还原整个文件(例如,在磁盘崩溃的情况中)。 或者,数据库可能故障而转移到所述镜像,所述镜像成为活动(主)数据库,而发 生故障的副本成为镜像。在此情况中,通过从新主服务器运送数据,镜像可变为自 动修复的目标。如果调用手动模式(需要人工干预),则对原始位置不可用的情况 下,可任选地指定文件位置。对于自动模式,可尝试默认位置,否则服务器可等待 手动操作被执行。如果自动模式被关闭或未被实现,则可使用底层页还原机制来从镜像提供用 于只读操作的页,直到损坏页被修复。在此选项中,上述方法仍被遵循,但从镜像 接收到的页不被写回到主服务器上的磁盘。这允许更大的数据可用性同时仍允许管 理员维持对还原的手动控制。优化包括1) 采用多个镜像,主服务器跟踪最快响应的镜像(较快响应时间可能由于多种 因素,包括网络差异、物理位置等),并从最快响应的镜像请求还原页。2) 如果多个镜像处于追逐从主服务器接收的日志的重做操作的不同阶段,则主 服务器可要求用于还原页的最新的(当前)镜像。3) 当还原多个页时,可通过向不同镜像要求页的块来对镜像进行负载平衡。示例性计算环境图1和以下讨论旨在提供对可在其中实现本发明的合适的计算环境的简要一 般描述。然而,应理解,构想了供结合本发明使用的手持、便携式和所有种类的其 他计算设备。尽管以下描述通用计算机,但这仅是一个示例,本发明仅要求具有网络服务器互操作性和交互能力的瘦客户机(thin client)。因此,本发明可在隐含很 少或最少客户机资源的网络托管服务的环境中实现本发明,例如其中客户机设备仅 用作万维网的浏览器或接口的联网环境。尽管不是必需的,但本发明可由应用程序编程接口 (API)实现,供用户使用 和/或包括在网络浏览软件中,它将在诸如程序模块等由诸如客户机工作站、服务 器或其他设备的一台或多台计算机执行的计算机可执行指令的一般上下文中描述。 一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任 务或实现特定抽象数据类型。 一般,程序模块的功能可在各个实施例中按需组合或 分布。而且,本领域的技术人员可以理解,本发明可以使用其它计算机系统配置来实现。适合于本发明使用的其他公知计算系统、环境和/或配置包括但不限于个 人计算机(PC)、自动柜员机、服务器计算机、手持或膝上型设备、多处理器系 统、基于微处理器的系统、可编程消费者电子产品、网络PC、小型机、大型计算 机等。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络或其他数 据传输介质连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于 包括存储器存储设备的本地和远程计算机存储介质中。图1示出了可在其中实现本发明的合适的计算系统环境100的示例,尽管如上已很清楚,计算系统环境ioo只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。参考图l,用于实现本发明的一个示例性系统包括计算机110形式的通用计算 设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和 将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统 总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制 器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限 制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA) 总线、扩展的ISA (EISA)总线、视频电子技术标准协会(VESA)局部总线和外 围部件互连(PCI)总线(也被称为Mezzanine总线)。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计 算机IIO访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动 介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。 计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。 计算机存储介质包括,但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技 术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存 储或其它磁性存储设备;或能用于存储所需信息且可以由计算机110访问的任何其 它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计 算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语 "已调制数据信号"指的是这样一种信号,其一个或多个特征以在信号中编码信息 的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线 连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸 如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统 133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程, 它通常被存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/ 或目前正在操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系 统134、应用程序135、其它程序模块136和程序数据137。计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介 质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬 盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151, 以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其 写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易 失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能 盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由诸如接口 140 的不可移动存储器接口连接至系统总线121,磁盘驱动器151和光盘驱动器155通 常由诸如接口 150的可移动存储器接口连接至系统总线121。以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机 110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在 图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块 146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程 序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序 模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的 副本。用户可以通过输入设备,诸如键盘162和定点设备161 (通常指鼠标器、跟 踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可以包括 话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常 由耦合至系统总线121的用户输入接口 160连接至处理单元120,但也可以由其它 接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口 190连接至系 统总线121。诸如北桥的图形接口 182也可连接至系统总线121。北桥是与CPU或 主机处理单元120通信的芯片组,并承担加速图形端口 (AGP)通信的责任。 一个 或多个图形处理单元(GPU) 184可与图形接口 182通信。就此而言,GPU184 —般包括片上存储器存储,诸如寄存器存储,且GPU 184与视频存储器186通信。 然而,GPU 184仅是协处理器的一个示例,因此可在计算机110中包括各种协处理 设备。监视器191或其它类型的显示设备也经由接口,诸如视频接口 190连接至系 统总线121,视频接口 190又与视频存储器186通信。除监视器181以外,计算机 也可以包括其它外围输出设备,诸如扬声器197和打印机196,它们可以通过输出 外围接口 195连接。计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连 接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网 络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机IIO描述的 许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接 包括局域网(LAN) 171和广域网(WAN) 173,但也可以包括其它网络。这样的 联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机IIO通过网络接口或适配器170连接至 LAN 171。当在WAN联网环境中使用时,计算机IIO通常包括调制解调器172或 用于与诸如因特网等WAN 173上建立通信的其它装置。调制解调器172可以是内 置或外置的,它可以通过用户输入接口 160或其它合适的机制连接至系统总线121。 在网络化环境中,相对于计算机IIO描述的程序模块或其部分可以存储在远程存储 器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器 设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建 立通信链路的其它手段。本领域的普通技术人员可以理解,计算机110或其他设备可被部署为计算机 网络的一部分。就此而言,本发明涉及具有任何数目的存储器或存储单元、以及跨 任何数目的存储单元或巻进行的任何数目的应用程序和进程的任何计算机系统。本 发明可适用于网络环境中部署了服务器计算机和客户机计算机并具有远程或本地 存储的环境。本发明也可适用于具有编程语言功能、解释和执行能力的单机计算设 备。从数据库镜像进行在线页还原图3和5描述了本发明的示例性实施例。系统300可驻留在诸如以上关于图1 所述的一个或多个计算机上。系统300可包括以下组件中的一个或多个主数据库 (在图3中,驻留在主服务器302上的数据库308)以一个或多个镜像数据库(由驻留在一个或多个镜像服务器320、 330等上的数据库328、 338等表示)。因此, 主服务器302可包括以下中的一个或多个诸如Microsoft的SQL Server、 IBM的 DB2、 Oracle等的主数据库服务器的实例304以及主数据库(在图3中由数据库 308表示)。主数据库服务器304可包括执行如此处所述的从数据库进行在线页还 原机制的功能的软件模块306。类似地, 一个或多个镜像数据库服务器320、 330 等可包括以下中的一个或多个诸如Microsoft的SQL Server、 IBM的DB2、 Oracle 等的镜像数据库服务器的实例324、334等以及镜像数据库(在图3中由数据库328、 338等表示)。镜像数据库服务器324、 334等可包括执行如此处所述的从数据库 进行在线页还原机制的功能的软件模块326、 336。在本发明的某些实施例中,从数据库进行在线页还原模块306、 326、 336等 包括完全是基于软件的灾难恢复解决方案,将如下更详细描述。在本发明的某些实 施例中,在线页还原模块检测主服务器上的一个或多个损坏页。在手动模式中,模 块306可接收执行还原功能的指令。例如,示例性、非限定性的指令可以是"从镜 像中对页x还原数据库"。或者,在自动模式中,当检测到损坏页后,还原软件 306可在没有人工干预的情况下由计算机自动调用。主服务器302然后可锁定主服 务器上的数据库中的一个或多个损坏页(在图3中由页309表示),并向至少一个 镜像发送要求镜像上对应于该被损坏页的页(如果所选镜像为镜像1 320则为页 329,如果所选镜像为镜像2 330则为页339,依此类推)的请求。在某些实施例中, 页由页标识符表示。可发送主服务器上当前时刻的日志序列号(LSN),因为被损 坏的页上的LSN不可信。镜像(320、 330等)等待其重做操作以通过请求中提供 的LSN,来确保从日志中重新播放了对所请求的页的所有改变并将其应用于镜像 上的该页(页329、 339等),使得最新(当前)页被发送到主服务器302。镜像 从其缓冲池或其磁盘上取回页(页329、 339等)。可保证现在由镜像持有的页与 主服务器上的数据库一致,因为不能对该页进行更新,因为它被锁定,且日志被重 新播放以通过该锁定时刻。使用数据库镜像映射通信基础架构,使用特殊消息类型 将该页从镜像发送到主服务器,以将该页标识为要用于还原损坏页的页。在接收该 页之后,主服务器将被还原的页写入磁盘以保存还原。锁定可被释放,使得该被修 补的页再次可用于查询。如果一个或多个镜像不可用、镜像被挂起、或如果在还原操作期间触发了数 据库镜像映射故障转移,则执行错误处理。在自动模式中,在崩溃恢复期间或常规操作期间检测到损坏页之后,可在无需人工干预的情况下由计算机自动启动该过程。当检测到损坏页时,对该页进行更 新的事务的锁定被自动地保持(传统上,所引起的"延期操作"需要管理员干预来 解决底层问题)。当调用从数据库镜像中进行在线页还原的机制的自动模式特征时, 损坏页(由页id标识)被锁定,从镜像完成页还原,然后可调用用于巻回延期事 务的代码,得到对数据库页损坏的无缝修复。所述技术可被扩展来从镜像中还原整个文件(例如,在磁盘崩溃的情况中)。 如果调用手动模式(需要人工干预),则对原始位置不可用的情况下,可任选地指 定文件位置。对于自动模式,可尝试默认位置,否则服务器可等待手动操作被执行。如果自动模式被关闭或未被实现,则可使用底层页还原机制来从镜像提供用 于只读操作的页,直到损坏页被修补。在此选项中,上述方法仍被遵循,但从镜像 接收到的页不被写回到主服务器上的磁盘。这允许更大的数据可用性,同时仍允许 管理员维持对还原的手动控制。优化包括1) 采用多个镜像,主服务器跟踪最快响应的镜像(较快响应时间可能由于多种 因素,包括网络差异、物理位置等),并从最快响应的镜像请求还原页。2) 如果多个镜像处于追逐来自从主服务器接收的日志的重做操作的不同阶段, 则主服务器可要求用于还原页的最新的(当前)镜像。3) 当还原多个页时,可通过向不同镜像要求页的块来对镜像进行负载平衡。图5是根据本发明的某些实施例,并如以上参考图3所述,示出用于从数据 库进行在线页还原的示例性方法的流程图。在502,检测到损坏。损坏可在崩溃恢 复或正常操作期间检测。损坏可被限于单个页或一组页,或可涉及整个文件或数据 库。如果在线页还原在手动模式中操作,则需要人工干预(506)。诸如数据库管 理员的某个人可执行指定要还原的指定页、要还原的一组页、整体要还原的文件(诸 如文件系统文件或数据库文件)的命令。另外,可指定这一个或多个所属的数据库 和从中接收相应的未被损坏的一个或多个页的一个或多个镜像。要被还原的一个或 一组页可由页id或页id范围来标识。也可指定与检测到损坏的时间相关联的LSN。 可以理解,与被损坏的页相关联的LSN是不可靠的,因为LSN可能被损坏。如果在线页还原在自动模式中操作,则在504处检测到损坏后,由运行在计 算机上的软件启动还原,且无需人工干预。在自动模式中,在前一段中描述的参数 由运行在计算机上的在线页还原软件设置。在508,不论是在手动还是自动模式中, 锁定主数据库中被损坏的一个或多个页。在锁定的时刻,被损坏的一个或多个页变为不可用,但数据库的其余部分仍可访问(例如,可用于用户查询和更新等)。向 至少一个镜像请求被损坏的一个或一组页。可基于历史上具有最快响应时间的镜 像、基于最新(当前)镜像或基于任何其他合适的准则来选择接收该页请求的一个 或多个镜像。如果要还原大量页或整个文件,则可通过向多个镜像发送对所需页的 子集的(可任选为非重叠)请求来执行负载平衡。为易于理解,假定单个页被损坏, 且选择了适当的镜像,例如镜像l来接收页请求。然而,可以理解,所构想的本发明并不如此限制。在508,主服务器可向镜像l发送对页idX的请求,以及如上所 述的LSN。在510,该镜像可接收该请求,且可等待直到其日志更新被应用于所接 收的LSN以确保该该页是最新的(在损坏检测之前对该页进行的所有改变己被应 用)。 一旦,所述日志被应用到至少所接收的LSN所指定的时刻之后,对应于被 损坏页的一个或多个镜像页就可从镜像上的缓冲池或从镜像盘中取回。可生成将消 息标识为在线页还原消息的指定类型的消息,并可将其发送到主服务器。在512, 可在主服务器接收该页,并将其应用于数据库。该页可被写入磁盘以保存还原后的 页。锁定可被释放(514),如由数据库的特性所确定地,使得还原后的页可用于 查询和更新。在本发明的某些实施例中,在损坏页正被还原时,可从镜像来对针对一个或 多个损坏页的查询进行服务,允许数据更大的可用性。此处所述的各种技术可结合硬件或软件或其适当组合来实现。因此,本发明 的方法和装置或其某些方面或部分,可采取体现为在现实介质中的程序代码(即, 指令)形式,这些现实介质诸如有软盘、CD-ROM、硬盘驱动器或任何其他机器可 读存储介质,其中当程序代码被加载到诸如计算机的机器中并由其执行时,该机器 成为用于实现本发明的装置。在程序代码在可编程计算机上执行的情况中,计算设 备一般包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和 /或存储元件)、至少一个输入设备以及至少一个输出设备。利用本发明的领域-专 用编程模型特征而创建和/或实现的一个或多个程序(例如通过使用数据处理API 等),优选地以高级过程或面向对象编程语言实现,以与计算机系统通信。然而, 如果需要,也可以使用汇编或机器语言来实现程序。在任何情况中,该语言可以是 编译或解释语言,且与硬件实现相结合。尽管结合各个附图的优选实施例描述了本发明,但可以理解,可使用其他类 似的实施例,或者可对所述实施例进行修改和添加以便于执行本发明的相同功能而 不与之背离。从而,本发明不应限于任何单个实施例,而应根据所附权利要求书的广度和范围来解释。
权利要求
1.一种用于还原信息的系统,包括适合于从第二数据库中相应的未被损坏的信息还原第一数据库中的被损坏信息的模块,包括检测所述第一数据库中的所述被损坏的信息,其中存储在所述第一数据库中除所述被损坏的信息以外的所有信息保持可访问;向所述第二数据库发送对于对应于所述第一数据库中的所述被损坏的信息的所述未被损坏的信息的请求;以及用来自所述第二数据库的所述未被损坏的信息更新所述第一数据库。
2. 如权利要求l所述的系统,其特征在于,所述第一数据库是镜像数据库,所述第二数据库是主数据库。
3. 如权利要求1所述的系统,其特征在于,所述第一数据库是主数据库,所述第二数据库是镜像数据库。
4. 如权利要求3所述的系统,其特征在于,所述镜像数据库是多个镜像数据 库中的第一镜像数据库。
5. 如权利要求4所述的系统,其特征在于,所述第一镜像数据库是基于当前 性来选择的。
6. 如权利要求l所述的系统,其特征在于,所述模块包括适合于在检测所述 被损坏的信息之后从所述第二数据库自动还原所述被损坏的信息的逻辑。
7. 如权利要求1所述的系统,其特征在于,所述第二数据库对查询进行服务, 该查询是针对所述第一数据库的被损坏的信息的査询。
8. 如权利要求1所述的系统,其特征在于,所述被损坏的信息包括所述第一 数据库的一页、所述第一数据库的一组页或所述第一数据库。
9. 一种用于还原存储在第一数据库中的被损坏的信息的方法,包括 响应于在所述第一数据库中检测到所述被损坏的信息,在无需人工干预的情况下启动对所述被损坏的信息的还原,所述第一数据库中除存储所述被损坏的信息 的所述第一数据库的部分以外仍保持可访问;向第二数据库发送对一个或一组页的请求,所述一个或一组页包括所述第二 数据库中对应于所述第一数据库中所述被损坏的信息的未被损坏的信息;从所述第二数据库接收所述相应的未被损坏的信息,并将相应的未被损坏的 信息应用于所述第一数据库。
10. 如权利要求9所述的方法,其特征在于,还包括向所述第二数据库发送页标识符或页标识符的范围以及与检测所述被损坏的 信息的时刻相关联的日志序列号。
11. 如权利要求9所述的方法,其特征在于,还包括从所述第二数据库对信 息的请求进行服务,该请求是针对所述第一数据库中所述被损坏的信息。
12. 如权利要求9所述的方法,其特征在于,还包括基于当前性或响应时间来选择所述第二数据库。
13. 如权利要求9所述的方法,其特征在于,还包括将所述未被损坏的信息 存到所述第一数据库中。
14. 如权利要求9所述的方法,其特征在于,所述第二数据库是多个镜像数 据库中的第一镜像数据库。
15. 如权利要求14所述的方法,其特征在于,负载平衡是通过向所述第一镜 像数据库发送对要被还原到所述第一数据库的第一页范围的第一请求,并向所述多 个镜像数据库中的第二镜像数据库发送对要被还原到所述第一数据库的第二页范 围的第二请求而实现的。
16. —种包括用于以下操作的计算机可执行指令的计算机可读介质 检测第一数据库中被损坏的信息,所述第一数据库包括主数据库; 接收包括以下至少其中之一的用户输入所述主数据库要还原的页的页标识符;包括所述第一数据库上存储所述被损坏的信息的部分的页、向其请求由所述用 户输入的所述页标识符标识的所述镜像数据库的相应页的镜像数据库;标识所述镜像数据库并在无需人工干预的情况下启动所述被损坏的信息的还 原,所述第一数据库除了所述第一数据库上存储所述被损坏的信息的所述页之外仍 保持可用;向第二数据库发送对一个或一组页的请求,所述一个或一组页包括所述第二 数据库中对应于所述第一数据库中所述被损坏的信息的未被损坏的信息;从所述第二数据库接收所述相应的未被损坏的信息,并将所述未被损坏的信 息应用于所述第一数据库。
17. 如权利要求16所述的计算机可读介质,其特征在于,还包括用于以下操 作的计算机可执行指令将所述未被损坏的信息存到所述第一数据库中。
18. 如权利要求16所述的计算机可读介质,其特征在于,还包括用于以下操 作的计算机可执行指令基于所述第二数据库的当前性来选择所述第二数据库,所述第二数据库包括 与所述第一数据库相关联的多个镜像数据库中的第一镜像数据库。
19. 如权利要求16所述的计算机可读介质,其特征在于,还包括用于以下操作的计算机可执行指令基于所述第二数据库的响应时间来选择所述第二数据库,所述第二数据库包 括与所述第一数据库相关联的多个镜像数据库中的第一数据库。
20. 如权利要求16所述的计算机可读介质,其特征在于,还包括用于以下操 作的计算机可执行指令通过向第一镜像发送页号的第一范围并向第二镜像发送页号的第二范围来对 所述被损坏的信息的还原进行负载平衡。
全文摘要
一组服务器利用镜像映射的数据库的现有数据冗余度来还原页损坏。页还原可在没有从备份介质进行还原的时间和/或管理成本且没有与修复相关联的数据丢失的情况下进行。从数据库镜像进行在线页还原可由计算机系统在损坏检测后自动启动和执行。可还原整个文件或数据库而非个别页或一组页。该机制可用于从镜像还原主服务器上的损坏页,或从主服务器还原镜像上的损坏页。从数据库镜像进行在线页还原允许在无需寻找/加载/扫描并应用数据和日志备份的情况下进行页数据恢复,允许高效且可能自动的数据恢复。
文档编号G06F17/30GK101243446SQ200680029596
公开日2008年8月13日 申请日期2006年6月20日 优先权日2005年8月15日
发明者J·库勒扎, R·B·拉詹, S·R·舒米特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1