CN111316245B - 使用完全水合备份还原数据库 - Google Patents

使用完全水合备份还原数据库 Download PDF

Info

Publication number
CN111316245B
CN111316245B CN201880071393.1A CN201880071393A CN111316245B CN 111316245 B CN111316245 B CN 111316245B CN 201880071393 A CN201880071393 A CN 201880071393A CN 111316245 B CN111316245 B CN 111316245B
Authority
CN
China
Prior art keywords
database
snapshot tree
file system
data
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880071393.1A
Other languages
English (en)
Other versions
CN111316245A (zh
Inventor
阿比吉特·查坎卡尔
辛格哈儿·马诺伊
瓦尔伦·什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cohesive Co
Original Assignee
Cohesive Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cohesive Co filed Critical Cohesive Co
Priority to CN202311011264.2A priority Critical patent/CN117130827A/zh
Publication of CN111316245A publication Critical patent/CN111316245A/zh
Application granted granted Critical
Publication of CN111316245B publication Critical patent/CN111316245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

确定要执行数据库的备份。执行对包括数据库的数据的存储卷的至少一部分内容的备份。备份包括创建新的元数据树根节点的步骤。创建新的元数据树根节点包括从对应于先前备份实例的树数据结构的另一元数据树根节点复制一个或多个对与先前备份实例对应的树数据结构相关联的一个或多个较低层元数据树节点的引用。

Description

使用完全水合备份还原数据库
背景技术
可以创建快照以捕获特定时间点的数据库状态。系统的全量快照可能由大量数据(例如,兆字节,拍字节等)组成。以频繁的间隔(例如,每小时,每天)执行数据库的全量快照需要大量的存储来存储快照。为了减少所需的存储量,可以在全量快照之间执行数据库的增量快照。增量快照包括自从上次(全量或增量)快照以来系统发生的更改。但是,使用全量快照和几个增量快照还原数据库可能需要大量的存储,并且会消耗大量计算资源和执行时间。
例如,假设在t=0时执行了包含1TB数据的数据库的全量快照,并且在从t=1到t=10的每个t时执行了100GB数据的增量快照。来自增量快照中的一些数据可能会覆盖来自全量快照和/或先前的增量快照中的数据。但是,要在t=10时恢复数据库,则需要从t=0时的全量快照开始,并将在每个增量快照处捕获的更改应用于系统,直到组合的快照重现t=10时的数据库状态为止。
尽管与连续捕获全量快照相比,上述过程减少了存储备份数据所需的存储量,但它增加了计算资源量和恢复数据所需的时间。不仅最小化存储数据所需的存储量,而且减少计算资源量和恢复数据所需的时间将是有用的。
附图说明
在下面的详细描述和附图中公开了本发明的各种实施例。
图1是示出用于生成完全水合备份的系统的实施例的框图。
图2是示出用于备份卷的过程的实施例的流程图。
图3A是示出文件系统元数据快照树的实施例的框图。
图3B是示出将根节点添加到现有树数据结构的实施例的框图。
图3C是示出修改树数据结构的实施例的框图。
图3D是示出修改的树数据结构的实施例的框图。
图3E是示出文件快照树的实施例的框图。
图4是示出用于创建文件系统元数据快照树的过程的实施例的流程图。
图5是示出用于将存储卷和/或数据库恢复到指定位置的过程的实施例的流程图。
图6是示出用于克隆数据库的过程的实施例的流程图。
图7是示出将存储卷和/或数据库还原到特定时间点的示例的框图。
图8是示出用于将整个虚拟机和数据库还原到任意时间点的过程的实施例的流程图。
图9A是示出将保留时间段应用于备份数据的实例的框图。
图9B是示出将保留时间段应用于备份数据的实例的框图。
图9C是示出备份数据的实例的树表示的框图。
图10是示出用于维护备份的过程的实施例的流程图。
具体实施方式
本发明可以多种方式实现,包括作为过程;设备;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,例如配置为执行存储在处理器上和/或由耦接到处理器的存储器提供的指令的处理器。在本说明书中,这些实现或本发明可能采取的任何其他形式可称为技术。通常,在本发明的范围内,可以改变所公开的过程的步骤顺序。除非另有说明,否则被描述为被配置为执行任务的诸如处理器或存储器之类的组件可以实现为临时配置为在给定时间执行任务的通用组件,也可以实现为制造为执行任务的特定组件。如本文所使用的,术语“处理器”是指被配置为处理诸如计算机程序指令之类的数据的一个或多个设备、电路和/或处理核。
以下提供了对本发明的一个或多个实施例的详细描述以及示出本发明原理的附图。结合这样的实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限制,并且本发明涵盖许多替代,修改和等同物。在下面的描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是出于示例的目的,并且可以根据权利要求来实践本发明,而无需某些或所有这些具体细节。为了清楚起见,没有详细描述与本发明有关的技术领域中已知的技术材料,从而不会不必要地使本发明晦涩难懂。
公开了完全水合备份。完全水合备份是几乎可以立即访问(例如几秒钟)且不需要重水合的备份。完全水合备份可以提供存储卷的完整视图,而不管备份是全量备份还是增量备份。典型的数据库备份包括链接到一个或多个增量备份的全量备份菊花链。随着越来越多的增量备份以菊花链方式链接到全量备份,恢复数据库需要大量的计算资源和时间。
主系统可用于实现数据库应用程序(例如SQL服务器)并将一个或多个数据库文件和一个或多个关联的事务日志文件段存储到主系统的一个或多个存储卷中。主系统可以将一个或多个存储卷备份到辅助存储系统。备份可以由主系统上运行的备份代理启动。并非仅备份与数据库应用程序关联的数据,可以备份与数据库应用程序关联的数据驻留在其上的完整存储卷。来自备份代理的备份命令可能导致数据库应用程序静默数据库并记录与数据库关联的元数据(例如,日志序列号(LSN),一个或多个文件名,创建日期,离线/联机状态等)。执行备份之前使数据库静默可确保备份之前数据库处于一致状态。
备份可以是全量备份或增量备份。主系统的每个存储卷均由数据组成。全量备份包括要备份保护的整个数据内容的副本(例如,要保护的存储卷的所有数据都被复制以创建全量备份)。与全量备份相比,增量备份通过标识和存储自上次备份以来的数据更改来节省存储空间(例如,在创建增量备份时,仅执行自上次备份以来新的或已更改的数据的副本)。在一些实施例中,通过使用文件系统元数据快照树,增量备份以完全水合的方式存储,该方式允许直接利用增量备份,就像全量备份一样,直接提供完整的视图和对受保护数据的访问,而无需水合增量备份或访问/结合先前的全量备份。例如,对于因为其与先前的备份没有变化而未在增量备份中捕获的所需数据,以存储指向可用于直接访问所需数据的先前备份的适当数据部分的链接的方式,创建对应于增量备份的文件系统元数据快照树。
可以在辅助存储系统处接收用于备份的数据。该备份可以包括与数据库关联的一个或多个文件的副本,与复制的存储卷的元数据关联的一个或多个文件的副本和/或一个或多个非数据库文件的副本。辅助存储系统可以为备份创建文件系统元数据快照树。用于备份的文件系统元数据快照树对应于特定时间的存储卷版本。辅助存储系统还可以为备份中包括的每个文件创建文件快照树。文件快照树可以存储文件的内容和/或特定于该文件的元数据。文件系统元数据快照树的叶节点可以包括指向文件快照树之一的指针,该指针将文件的内容链接到文件系统元数据快照树。与数据库和数据库元数据关联的多个文件表示特定时间点的数据库状态。
文件系统元数据快照树是树数据结构,并由根节点,一个或多个级别的中间节点以及一个或多个叶节点组成。在一些实施例中,文件系统元数据快照树由根节点和一个或多个叶节点组成。根节点是文件系统元数据快照树的起点,并且可以包含指向一个或多个其他节点的指针。根节点包括指示与根节点相关联的视图的标识符。中间节点是另一节点(例如,根节点、另一个中间节点)指向的节点,并且包括指向其他节点的一个或多个指针。叶节点是文件系统元数据快照树底部的节点。在一些实施例中,叶节点被配置为存储与存储卷相关联的文件系统元数据的键值对。在一些实施例中,叶节点被配置为存储与数据库相关联的数据的键值对。在一些实施例中,叶节点被配置为存储非数据库数据的键值对。在一些实施例中,叶节点包括指向文件快照树的指针。文件快照树可以是文件系统元数据快照树的子树。例如,存储与存储卷相关联的元数据的文件系统元数据快照树的叶节点可以包括指向存储与数据库相关联的数据的文件快照树的根节点的指针。在一些实施例中,文件系统元数据快照树的叶节点或文件快照树的叶节点包括指向存储数据的物理位置的指针。树结构的每个节点包括标识与节点相关联的快照树(文件系统元数据快照树或文件快照树)的快照树的标识符(例如,TreeID)。
树数据结构可用于捕获在不同的时间不同版本的存储卷。从主系统接收到的备份可以包括与在第一时间点的存储卷的第一版本相关联的数据,从主系统接收到的后续备份可以包括与在第二时间点的存储卷的第二版本相关联的数据。卷的每个版本可以在对应的文件系统元数据快照树中表示。通过允许与存储卷的较新版本相对应的文件系统元数据快照树的较新版本的节点引用与存储卷的较早版本相对应的文件系统元数据快照树的较早版本的节点,树数据结构允许将文件系统元数据快照树链(即,每个对应的文件系统元数据快照树)链接在一起。通过允许与文件的较新版本相对应的文件快照树的较新版本的节点引用与文件的较早版本相对应的文件快照树的较早版本的节点,树数据结构允许将文件快照树链(即,每个对应的文件快照树)链接在一起。
每次接收到用于存储卷增量备份的数据时,都会通过创建新的根节点将新的文件系统元数据快照树添加到相应的树数据结构中。新的根节点可以是与先前的文件系统元数据快照树关联的根节点的副本。最初在创建时,新的根节点包括前一个根节点中包含的一组指针,也就是说,新的根节点包括一个或多个指向中间节点或叶节点的指针,该中间节点或叶节点是在与先前备份相关联的先前文件系统元数据快照树的根节点中指定的。然而,除其他差异之外,新的根节点包括与先前的根节点的节点标识符和视图标识符不同的节点标识符和视图标识符。可以修改新的文件系统元数据快照树(例如,添加一个或多个中间节点,添加一个或多个叶节点,更新与节点相关联的指针)以反映包括在存储卷的备份中的数据。
文件系统元数据快照树表示完全水合备份,因为它提供了在特定时间的存储卷的完整视图。可以从文件系统元数据快照树中确定在特定时间存储在存储卷中的任何文件及文件的内容(对其存在关联备份),而不管关联备份是全量备份还是增量备份。创建增量备份可能仅包括复制先前未备份的存储卷的数据。但是,与增量备份相对应的文件系统元数据快照树提供了在特定时间的存储卷的完整视图,因为其包括对先前存储的存储卷的数据的引用。这样可以大大节省还原或恢复存储卷和/或数据库所需的时间。相比之下,传统的恢复/还原方法将安装全量备份以及一个或多个后续增量备份的整体,以创建特定版本的卷和/或数据库。文件系统元数据快照树还可以实现有效地检索数据值,因为每个叶节点都与文件系统元数据快照树的根节点相距相同数量的级别,也就是说,使用相同数量的计算机事务来访问文件系统元数据快照树的每个叶节点。
完全水合数据库备份使数据库还原、恢复和克隆工作流几乎立即(例如几秒钟)发生,而无需花费很长时间(例如几小时)来执行。例如,可以将数据库版本恢复到指定位置,可以克隆数据库版本以允许测试/开发系统进行一个或多个数据库查询和/或测试对数据库的一个或多个更改,或可以将整个虚拟机和数据库还原到任何特定时间点,然后将其复制到指定位置以进行灾难恢复或测试/开发目的。
数据库版本可以恢复到指定位置。指定位置可以是创建数据库版本的主系统,也可以是其他系统。标识与要恢复的数据库版本相对应的文件系统元数据快照树。与数据库相关联的元数据可以指示与要恢复的数据库版本相关联的一个或多个文件。与数据库关联的元数据可以指示与要恢复的数据库版本相对应的文件系统元数据快照树。创建与要恢复的数据库版本相对应的文件系统元数据快照树的副本。存储系统可以实施保留策略以在数据创建日期的特定时间段(例如30天)之后删除备份数据。这可能会导致用于执行数据库恢复的备份数据在数据库恢复过程中过期。如本文所公开的,创建文件系统元数据快照树的副本可以延长用于相关联的备份数据的保留时间段,使得在将备份数据恢复到指定位置时不删除备份数据。通过创建与要恢复的数据库版本相对应的文件系统元数据快照树的根节点的副本,创建文件系统元数据快照树的副本。根节点副本包含与复制的根节点相同的指针集,但包括不同的节点ID和视图ID。复制与要恢复的数据库版本相对应的文件系统元数据快照树的根节点几乎是瞬时的,这是应为要复制的数据量很小(例如,字节)。
文件系统元数据快照树副本提供了存储卷的完整视图,该存储卷存储了与特定数据库版本关联的文件。使用与数据库相关联的元数据,可以识别与数据库版本相关联的一个或多个文件。可以遍历文件系统元数据快照树以确定与要恢复的数据库版本相关联的文件的位置。与要恢复的数据库版本相关联的文件的数据可以被定位,被提供到指定位置并且被存储在指定位置。指定位置可以包括数据库应用程序。在接收并存储与要恢复的数据库版本关联的文件的所有数据后,数据库版本已恢复到指定位置。数据库版本成功恢复到指定位置后,可以删除复制的根节点。这可以允许存储系统释放存储空间。例如,删除文件系统元数据快照树的副本可能会撤消扩展并允许删除数据。
在其他实施例中,可以克隆数据库版本以允许测试/开发系统对数据库的克隆版本进行一个或多个更改。数据库的大小可能非常大(例如,太字节),而测试/开发系统可能具有有限的可用存储(例如,千兆字节)来存储数据库。测试/开发系统的用户可能希望在数据库上运行一些查询和/或对数据库进行一些测试修改。代替将整个数据库的内容迁移到测试/开发系统,可以在辅助存储系统上创建数据库备份的克隆,该辅助存储系统已经通过其备份副本存储了数据库的副本,并且测试/开发系统已被允许访问单独的辅助存储系统上的克隆副本。这使备份数据不仅可以用于备份目的,而且还可以作为实时数据用于其他目的(例如测试和开发),因为处于其他目的对备份数据所做的更改会被捕获到备份数据的克隆副本中。
为了以快速的方式克隆备份而不实际复制数据库的数据内容,创建了与数据库所需版本的备份相关联的文件系统元数据快照树的根节点的副本。根节点副本包含与复制的根节点相同的指针集,但包含不同的节点ID和视图ID。克隆的文件系统元数据快照树是完全水合备份的表示,因为它提供了在特定时间的存储卷的完整视图,并提供了特定数据库版本的完整视图。为测试/开发系统的用户提供对数据库的克隆版本的访问。用户可以对克隆的数据库进行一项或多项更改。当用户希望修改与克隆的文件系统元数据快照树关联的叶节点时,将执行写时复制过程。克隆的文件系统元数据快照树从根节点副本遍历到叶节点。检查与到叶节点的路径上的每个节点关联的视图标识符。如果与节点关联的视图标识符匹配与根节点副本关联的视图标识符,则克隆的文件系统元数据快照树将沿着路径遍历到下一个节点。如果与节点关联的视图标识符不匹配与根节点副本关联的视图标识符,则创建具有不匹配的视图标识符的节点的副本。具有不匹配的视图标识符的节点的副本包括与复制的节点相同的指针集,但包括根节点副本的不同的节点ID和视图标识符。将更新指向具有不匹配视图标识符的节点的节点指针。指针被更新以指向具有不匹配视图标识符的节点的副本,而不是具有不匹配视图标识符的节点。继续写时复制过程,直到复制且修改与克隆文件系统元数据快照树关联的叶节点为止。当用户结束使用克隆数据库时,根节点副本可被删除。
在一些实施例中,数据库元数据可以与对应的存储的备份实例相关联(例如,被记录),以允许有效地标识关于在存储的备份实例中的一个或多个数据库备份的信息。数据库元数据可以指示与数据库版本相关联的一个或多个文件。与数据库版本相关联的一个或多个文件可以是与备份相关联的文件,测试/开发系统的用户被授权访问该备份。备份的克隆可以为测试/开发系统的用户提供对与备份关联的任何文件的访问权限。与数据库版本相关联的一个或多个文件可以包括标志或其他指示符,以指示与测试/开发相关联的用户有权访问该文件。如果文件不包含标志或其他指示符,则用户可能无权访问该文件。例如,用户可能尝试访问非数据库文件且被拒绝访问该文件。
在其他实施例中,并非仅响应于对数据库的请求而恢复数据库的内容,可以将包括数据库内容的整个存储卷恢复到特定时间点。系统可能会离线(例如,该系统已感染病毒、感染了恶意软件、发生了硬件故障等)。可能希望使用与整个存储卷的备份实例相对应的文件系统元数据快照树将系统恢复到特定时间点。
在一些实施例中,数据库可以被恢复到与创建备份时不完全对准的特定时间点。识别所需的恢复点之前捕获的最接近的备份实例。通过应用在备份实例的创建和所需的恢复点之间发生的数据库事务,可以使用数据库事务日志来修改最近的备份实例(例如,备份实例的副本),以生成修改后的备份数据,其可用于将数据库恢复到所需恢复点。
图1是示出用于生成完全水合备份的系统的实施方式的框图。在所示示例中,系统100包括主系统102、辅助存储系统112和测试/开发系统122。
主系统102可以是运行数据库应用程序103(例如SQL Server)的虚拟机或物理机。数据库应用程序103可以创建一个或多个数据库文件,例如“.mdf”文件、“.ldf”件或“.ndf”文件。“.mdf”文件是主数据库文件。“.ldf”文件是事务日志文件。“.ndf”文件是辅助数据库文件。主系统102可以包括主存储卷106和一个或多个辅助存储卷107,它们存储与数据库应用程序103关联的数据库数据和与主系统102关联的非数据库数据。在一些在实施例中,主系统102可以由单个存储卷组成。
主系统102可以执行主存储卷106和/或一个或多个辅助存储卷107的备份。该备份提供在特定时间主系统102的快照。备份可以是存储卷的全量备份或增量备份。全量备份包括存储在主存储卷106和一个或多个辅助存储卷107中的所有数据。全量备份可以包括与数据库应用程序103相关联的数据库数据。全量备份可以包括与数据库相关联的元数据。与数据库关联的元数据可以包括日志序列号(LSN)、一个或多个文件名、创建日期、离线/联机状态。全量备份还可以包括主系统102的非数据库数据。
增量备份由存储在主存储卷106和一个或多个辅助存储卷107中的数据组成,这些数据先前未备份,即,它们不是先前的全量备份或先前的增量备份的一部分。增量备份可以包括与数据库关联的元数据,该元数据不是先前备份的一部分。增量备份可以包括与数据库应用程序103关联的新数据库文件或与数据库应用程序103关联的数据库的自上次备份以来已修改的部分。增量备份可以包括与数据库关联的元数据,该元数据不是先前备份的一部分。与不属于先前备份的数据库文件相关联的元数据可以包括日志序列号(LSN)、一个或多个文件名、创建日期、离线/联机状态。增量备份可包括不属于先前备份的一部分的非数据库数据。
主系统102可以包括变更块跟踪器105。变更块跟踪器105被配置为维护一个或多个存储卷的映射以跟踪对一个或多个存储卷的数据库文件和非数据库文件的更改。变更块跟踪器配置为确定自上次备份以来已更改的一个或多个存储卷的数据库文件和非数据库文件。变更块跟踪器可以在数据库文件和非数据库文件存储在一个或多个存储卷的途中接收。数据库文件和非数据库文件可以存储在主存储卷106,一个或多个辅助存储卷107中或主存储卷106和一个或多个辅助存储卷107的组合中。
主系统102可以包括备份代理104(例如,凝聚性代理)。备份代理104可以被配置为与和数据库应用程序103通信的一个或多个服务106(例如,卷快照服务(VSS),虚拟桌面基础结构(VDI))通信。备份代理104可以协调主系统102的备份。在一些实施例中,备份代理104可以根据一种或多种备份策略来发起备份。在一些实施例中,备份策略指示要定期(例如,每小时、每天、每周、每月等)备份主存储卷106和/或一个或多个辅助存储卷107。在其他实施例中,备份策略指示当数据的阈值大小已改变时要备份主存储卷106和/或一个或多个辅助存储卷107。在其他实施例中,备份策略指示将根据来自与主存储系统102相关联的用户的命令来备份主存储卷106和/或一个或多个辅助存储卷107。
备份代理104可以将命令发送到一个或多个服务106(例如VSS服务)中的一个,以静默数据库应用程序103以确保在执行主系统102备份之前数据库处于一致状态。在数据库应用程序103被静默的情况下,对数据库的任何后续操作请求将由主系统102排队并且不执行。可以记录与数据库关联的元数据。元数据可以包括日志序列号(LSN)、一个或多个文件名、创建日期、数据库应用程序处于静默状态时数据库的离线/联机状态。如果与数据库关联的元数据指示数据库处于离线状态,则由于与数据库关联的文件处于可疑状态,因此无法恢复该数据库。
主存储系统102可以被配置为将事务日志文件段发送到另一个存储系统,例如辅助存储系统112。事务日志文件段包括对数据库进行的一系列事务。事务日志文件可以是与数据库关联的所有事务的运行日志文件。事务日志文件段是事务日志文件的一部分。备份(完整或增量)包括与特定时间的数据库关联的数据。该特定时刻对应于与数据库相关联的特定事务。备份之间的事务中可能存在间隙。例如,数据库的第一备份可以对应于第100个事务处的数据库。数据库的第二备份可对应于第200事务处的数据库。事务日志文件段可以与数据库的50至200事务相关联。可以接收将数据库恢复到第100个事务和第200事务之间的任何事务的请求。事务日志文件段可以应用于数据库的第一备份,以将数据库恢复到第100事务和第200事务之间的任何事务。可以根据一个或多个事务日志文件策略将事务日志文件段发送到辅助存储系统112。在一些实施例中,事务日志文件策略指示将定期(例如,每小时、每天、每周、每月等)发送事务日志文件。在其他实施例中,事务日志文件策略指示要在一定数量的事务(例如,50个事务,100个事务等)之后发送事务日志文件段。在其他实施例中,事务日志文件策略指示将根据来自与主存储系统102相关联的用户的命令来发送事务日志文件。在一些实施例中,事务日志文件策略指示在事务日志文件成功存储在辅助存储系统112之后,将删除已发送到辅助存储系统112的事务日志文件的段。
主存储系统102可以由一个或多个服务器、一个或多个计算设备、一个或多个存储设备和/或它们的组合组成。
辅助存储系统112由111、113、115多个N节点组成。在一些实施例中,N是奇数。辅助存储系统112可以从主系统102接收备份(例如,全量备份或增量备份)。该备份表示特定时间的主系统102的状态。备份可以由包含主存储卷106和/或一个或多个辅助存储卷107的数据(例如,一个或多个文件)组成。数据可以包括与特定时间的数据库相对应的数据。备份可以包括与特定时间的数据库相关联的元数据。备份可能包括非数据库数据。辅助存储系统112可以跨多个节点111、113、115存储备份。
辅助存储系统112可以从主系统102接收事务日志文件段。事务日志文件段包括对数据库进行的一系列事务。事务日志文件段可以作为备份的一部分被接收,或者事务日志文件段可以从主系统102被单独接收。可以基于与事务日志文件相关联的一个或多个事务日志文件策略来接收事务日志文件段。
辅助存储系统112可以包括文件系统管理器117。文件系统管理器117被配置为维护文件系统元数据快照树结构中的文件系统元数据以及对应的数据库文件快照树中的数据库文件数据。数据库文件数据可以包括文件的内容和/或特定于该文件的元数据。文件系统管理器可以配置为存储数据库元数据。数据库元数据可以包括与数据库的不同版本相关联的信息,例如数据库版本中包括的一个或多个数据库文件。文件系统管理器117可以被配置为复原或恢复数据库的特定版本。文件系统管理器117可以被配置为检查数据库元数据以确定与数据库的特定版本相关联的一个或多个文件。文件系统管理器117可以被配置为执行文件系统元数据快照树的克隆。文件系统管理器可以配置为执行文件快照树的克隆。文件系统管理器117可以被配置为将卷和相关联的数据库复原到特定时间点。文件系统管理器117可以被配置为对文件系统元数据快照树或文件快照树执行如本文所公开的一个或多个修改。
树数据结构可以由一个或多个文件系统元数据快照树组成。文件系统元数据快照树可以包括根节点、一个或多个级别的中间节点以及一个或多个叶节点。根节点是文件系统元数据快照树的起点,并且可以包含指向一个或多个其他节点的指针。根节点包括指示与根节点相关联的视图的标识符。中间节点是另一节点(例如,根节点、另一个中间节点)指向的节点,并且包括指向其他节点的一个或多个指针。叶节点是文件系统元数据快照树底部的节点。叶节点可以配置为存储与文件系统关联的元数据的键值对。叶节点可以配置为存储与数据库关联的数据的键值对。叶节点可以配置为存储非数据库数据的键值对。在一些实施例中,叶节点包括指向文件快照树的指针。例如,存储与数据库相关联的文件系统元数据(例如,文件名)的树数据结构的叶节点可以包括指向存储与数据库相关联的数据(例如,文件内容)的树数据结构的根节点的指针。在一些实施例中,叶节点包括指向存储位置的指针。例如,存储与数据库相关联的数据的树数据结构的叶节点可以包括指向存储该数据的存储位置的指针。树结构的每个节点包括节点ID和标识与该节点相关联的快照树的快照树的标识符(例如,TreeID)。
树数据结构可用于捕获在不同的时间不同版本的数据库。从主系统102接收的备份可以包括与第一时间点的数据库的第一版本相关联的数据和与在第一时间点的数据库的第一版本相关联的数据库元数据。从主系统102接收到的后续备份可以包括与在第二时间点的数据库的第二版本相关联的数据和与在第二时间点的数据库的第二版本相关联的数据库元数据。数据库的每个版本可以表示为对应的文件系统元数据快照树的一部分。通过允许文件系统元数据快照树的较新版本的节点引用文件系统元数据快照树的较早版本的节点,树数据结构允许将文件系统元数据快照树链(即每个对应的文件系统元数据快照树)链接在一起。通过允许文件快照树的较新版本的节点引用文件快照树的较早版本的节点,树数据结构还允许将文件快照树链(即每个对应的文件快照树)链接在一起。可以通过检查与数据库的版本相关联的数据库元数据以确定与数据库版本关联的一个或多个文件来确定数据库的版本。可以通过将与数据库版本相关联的文件系统元数据快照树遍历到存储与该一个或多个文件相关联的元数据(例如,文件名)的叶节点,来找到与数据库版本相关联的一个或多个文件。存储与一个或多个文件相关联的元数据的叶节点可以包括指向存储与数据库文件相关联的数据的文件快照树的指针。与数据库文件相关联的数据可以包括文件的内容和/或特定于该文件的元数据。存储与数据库文件相关联的数据的文件快照树的叶节点可以包括指向存储与数据库文件相关联的数据的一部分的物理位置的指针。可以通过遍历存储与数据库文件相关联的数据的文件快照树来确定与数据库文件相关联的数据。
对于每个备份实例,通过将新的根节点添加到与文件系统元数据相对应的树数据结构中,将新的文件系统元数据快照树添加到相应的树数据结构中。新的根节点是先前根节点的副本,并且包括先前根节点中包含的一组指针,即,新的根节点包括一个或多个指向与先前文件系统元数据快照树关联的中间节点或叶节点的指针。然而,除其他差异外,新的根节点包括节点ID和与先前的根节点的标识符(例如,TreeID)不同的标识符(例如,TreeID)。与节点关联的标识符标识与该节点关联的快照树和视图。在一些实施例中,在执行快照之后删除先前的根节点。
文件系统元数据快照树捕获特定时间点的数据视图。该视图可以是当前视图或快照视图。当前视图可以表示数据的状态,该状态是最新的并且能够接收对文件系统元数据快照树的一个或多个修改,其对应于对该数据的修改。快照视图可以表示过去特定时间的数据状态,并且不会更新。当将后续文件系统元数据快照树添加到树数据结构时,快照的视图可能会从当前视图更改为快照视图。例如,t=1时的文件系统元数据快照树可以是当前视图,并接受对文件系统元数据快照树的一个或多个修改。当在t=2时将另一个文件系统元数据快照树添加到树数据结构中时,另一个根节点将添加到树数据结构中。在t=2时与t=1关联的快照变成快照视图,且在t=2时的快照是树数据结构的当前视图。
辅助存储系统112可以被配置为将特定版本的数据库复原到指定位置。指定位置可以是主系统102或另一个系统,例如测试/开发系统122或另一个系统(未显示)。存储在指定位置的数据库可能已损坏,并需要复原到特定时间点。辅助存储系统112可以识别与要恢复的数据库版本相对应的文件系统元数据快照树。创建与要恢复的数据库版本相对应的文件系统元数据快照树的副本。通过创建与要恢复的数据库版本相对应的文件系统元数据快照树的根节点的副本来创建文件系统元数据快照树的副本。根节点副本包含与复制的根节点相同的指针集,但包含不同的节点ID和视图ID。文件系统元数据快照树副本提供了存储卷的完整视图。数据库元数据可以存储在辅助存储系统中。数据库元数据可以标识与特定数据库版本相关联的一个或多个文件。可以遍历复制的文件系统元数据快照树以找到与特定数据库版本关联的一个或多个文件以及与和特定数据库版本关联的一个或多个文件的数据关联的存储位置。可以将与特定数据库版本相关联的一个或多个文件相关联的数据提供给指定位置并存储在指定位置。
辅助存储系统112可以被配置为针对指定位置克隆数据库的特定版本。数据库的大小可能非常大(例如,太字节),而测试/开发系统可能具有有限的可用存储(例如,千兆字节)来存储数据库。测试/开发系统的用户可能希望在数据库上运行一些查询和/或对数据库进行一些测试修改。代替将整个数据库的内容迁移到测试/开发系统,可以创建数据库的所需数据库版本的克隆,即测试版本。标识与要克隆的数据库版本相对应的文件系统元数据快照树。创建与要恢复的数据库版本相对应的文件系统元数据快照树的副本。克隆与要克隆的数据库版本相对应的文件系统元数据快照树可释放测试/开发系统的存储空间,以用于其他目的,并减少了在数据库上运行某些查询所需的时间,因为不需要将数据库数据从辅助存储系统迁移到测试/开发系统。由于测试/开发系统的用户无法修改数据库的任何实际版本,因此这也保护了存储在辅助存储系统中的数据的完整性。
为了创建期望版本的数据库的克隆,辅助存储系统112可以创建与数据库的期望版本相关联的文件系统元数据快照树的根节点的副本。根节点副本包含与复制的根节点相同的指针集,但包含不同的节点ID和视图ID。文件系统元数据快照树副本是完全水合备份的代表,因为它提供了在特定时间的存储卷的完整视图,并提供了特定数据库版本的完整视图。为测试/开发系统的用户提供对数据库的克隆版本的访问。用户可以对克隆的数据库进行一项或多项更改。当用户希望修改与克隆的文件系统元数据快照树关联的叶节点时,将执行写时复制过程。克隆的文件系统元数据快照树从根节点副本遍历到叶节点。检查与到叶节点的路径上的每个节点关联的视图标识符。如果与节点关联的视图标识符匹配与根节点副本关联的视图标识符,则克隆的文件系统元数据快照树将沿着路径遍历到下一个节点。如果与节点关联的视图标识符不匹配与根节点副本关联的视图标识符,则创建具有不匹配的视图标识符的节点的副本。具有不匹配的视图标识符的节点的副本包括与复制的节点相同的指针集,但包括根节点副本的不同的节点ID和视图标识符。将更新节点的指针,该指针指向具有不匹配视图标识符的节点。指针被更新以指向具有不匹配视图标识符的节点的副本,而不是指向具有不匹配视图标识符的节点。继续写时复制过程,直到复制且修改与克隆文件系统元数据快照树关联的叶节点为止。当用户结束使用克隆数据库时,辅助存储系统112可以删除根节点副本。
辅助存储系统112可以被配置为将整个存储卷还原到存储备份的特定时间点。系统可能会离线(例如,该系统已感染病毒、感染了恶意软件、发生了硬件故障等)。可能需要将系统还原到特定时间点。辅助存储系统112可以创建用于备份的对应的文件系统元数据快照树。备份对应于特定时间点的存储卷。响应于将整个存储卷还原到特定时间点的请求,标识了与特定时间点关联的文件系统元数据快照树。创建与要还原的整个存储卷相对应的文件系统元数据快照树的副本。存储系统可以实施保留策略,以在数据创建日期的一定时间段(例如30天)之后删除数据。当数据还原到指定位置时,保留时间段可能会过期。如本文所公开的,创建文件系统元数据快照树的副本可以延长数据的保留时间段,使得在将数据还原到指定位置时不删除数据。通过创建与要还原的整个存储卷相对应的文件系统元数据快照树的根节点的副本,来创建文件系统元数据快照树的副本。根节点副本包含与复制的根节点相同的指针集,但包含不同的节点ID和视图ID。文件系统元数据快照树副本提供了特定时间点的存储卷的完整视图。可以遍历文件系统元数据快照树以确定与要还原的存储卷关联的文件的位置。与要还原的存储卷相关联的文件的数据可以被定位,被提供给指定位置并被存储在指定位置。在接收并存储与要还原的存储卷关联的文件的所有数据后,该存储卷已还原到指定位置。将整个存储卷成功还原到指定位置后,可以删除复制的根节点。这可以允许存储系统释放存储空间。如上所述,创建文件系统元数据快照树的副本可以延长与数据关联的保留时间段。删除文件系统元数据快照树的副本可能会撤消扩展并允许删除数据。
辅助存储系统112可以被配置为将数据库恢复到备份之间的特定时间点。系统可能会离线(例如,系统已感染病毒、感染了恶意软件、发生了硬件故障等)。可能需要将系统及其关联的数据库还原到特定时间点。辅助存储系统可以从主系统接收与全量或增量备份相关的数据。备份表示主系统在特定时间点的状态,并对应于数据库版本。可以创建与备份相对应的文件系统元数据快照树。与数据库关联的元数据可以指示与要还原的数据库版本相对应的文件系统元数据快照树。与数据库相关联的元数据可以指示与要还原的数据库版本相关联的一个或多个文件。事务日志文件段包括有关数据库的一系列事务。事务日志文件段可以包括备份之间对数据库进行的事务。备份对应于事务日志文件的特定事务。辅助存储系统112可以存储一个或多个事务日志文件段。在一些实施例中,辅助存储系统112可以与备份分开地接收事务日志文件段。事务日志文件段可以应用于数据库,以将数据库修改为在辅助存储系统上存储有相关事务日志文件段的任何事务点。例如,第一备份可以表示第n个事务之后的数据库状态。第二备份可以表示n+100个事务之后数据库的状态。只要事务日志文件段包括事务n到n+100的记录,就可以将数据库还原到事务n和n+100之间的任何事务。
为了将数据库还原到备份之间的特定时间点,文件系统管理器117可以将在与备份相对应的事务日志文件段的特定事务之后发生的一个或多个事务应用于备份。文件系统管理器117可以应用一个或多个事务,直到对应于特定时间点的事务为止。事务可以对应于对文件系统元数据快照树的修改。文件系统元数据快照树的叶节点可以包括指向数据库文件快照树的指针。数据库文件快照树是文件系统元数据快照树的子树。数据库文件快照树可以存储数据库文件的内容和/或特定于数据库文件的元数据。数据库文件快照树的叶节点可以包括指向与数据库文件的一部分相关联的存储位置的指针。如果事务日志文件段的事务是查询请求,则文件系统元数据快照树不变。如果事务日志文件段的事务是数据库文件修改,则对文件系统元数据快照树和/或数据库文件快照树之一进行相应的修改。
例如,如果数据库的数据值已被修改,则执行写时复制过程。文件系统管理器117可以识别与特定时间点之前的最近备份相对应的文件系统元数据快照树。文件系统管理器117可以通过复制文件系统元数据快照树的根节点来创建文件系统元数据快照树的副本。文件系统元数据快照树的根节点副本包含与文件系统元数据快照树的根节点相同的指针集,但是包含不同的节点ID和视图标识符。文件系统管理器117还可创建与对应于数据库文件的数据库文件快照树相关联的根节点的副本。文件系统管理器117可以更新指向数据库文件快照树的根节点的文件系统元数据快照树的叶节点的指针,以指向与数据库文件对应的数据库文件快照树关联的根节点的根节点副本,而不是指向与数据库文件对应的数据库文件快照树关联的根节点。
与对应于数据库文件的数据库文件快照树相关联的根节点的根节点副本包括与对应于数据库文件的数据库文件快照树相关联的根节点相同的指针集。但是,除其他差异外,它还包括不同的节点ID和不同的视图标识符。文件系统管理器117可以将克隆的数据库文件快照树从与数据库文件相对应的数据库文件快照树的根节点副本遍历到要修改的叶节点。文件系统管理器117可以检查与沿着到叶节点的路径的每个节点相关联的视图标识符。如果与节点关联的视图标识符匹配与克隆的数据库文件快照树的根节点副本关联的视图标识符,则文件系统管理器117可以将克隆的数据库文件快照树遍历到沿路径的下一个节点。如果与节点相关联的视图标识符不匹配与根节点副本相关联的视图标识符,则文件系统管理器117可以创建具有不匹配的视图标识符的节点的副本。具有不匹配的视图标识符的节点的副本包括与复制的节点相同的指针集,但包括不同的根节点副本的视图标识符和不同的节点ID。文件系统管理器117可以使节点的指向具有不匹配的视图标识符的节点的指针更新。更新指针以指向具有不匹配视图标识符的节点的副本,而不是指向具有不匹配视图标识符的节点。继续写时复制过程,直到复制和修改与克隆文件系统元数据快照树关联的叶节点为止。文件系统管理器117可以修改叶节点以指向存储系统的不同位置。
修改克隆的文件系统元数据快照树和相应的克隆的数据库文件快照树之后,使克隆的文件系统元数据快照树和相应的克隆的数据库文件快照树与特定时间点的数据库相对应,文件系统管理器117可以将整个克隆的存储卷提供到指定位置。在一些实施例中,文件系统管理器117将更新的数据库文件提供给指定位置,而不提供整个克隆的存储卷。一旦接收并存储整个克隆的存储卷,指定位置已更新为包括与最接近的先前备份相对应的整个卷和与特定时刻相对应的已还原数据库。在将整个卷和数据库成功还原到指定位置之后,文件系统管理器117可以删除与特定时间点之前的最近备份相对应的文件系统元数据快照树的根节点的根节点副本,以及与该数据库文件对应的数据库文件快照树关联的根节点的根节点副本。在一些实施例中,删除根节点副本还将删除添加到克隆的快照树的任何节点。
辅助存储系统112可以在支持严格的商业要求(恢复时间目标(RTO)和恢复点目标(RPO))的同时保护大量应用程序。辅助存储系统112可以统一端到端保护基础结构-包括目标存储、提供备份、数据复制、灾难恢复和/或云分层。辅助存储系统1124可以提供横向扩展,全局重复数据删除、高可用性存储,以整合所有辅助数据,包括备份、文件和测试/开发副本。辅助存储系统112简化了备份基础结构,并且无需运行单独的备份软件、代理、媒体服务器和档案。辅助存储系统112可以与诸如vCenter的虚拟机(VM)集中式管理工具以及用于数据保护的应用编程接口(API)完全集成。辅助存储系统112可以通过创建备份VM的克隆并直接从辅助存储系统112运行VM来减少执行RPO和支持即时RTO的时间。辅助存储系统112可以与一个或多个云服务器本地集成。辅助存储系统112可将数据复制到一个或多个云群集,以在备份完成后立即通过复制数据来最大程度地减少潜在的数据丢失。这允许将云中的数据用于灾难恢复、应用程序迁移、测试/开发、或分析。
辅助存储系统112可以由一个或多个固态驱动器、一个或多个硬盘驱动器或其组合组成。辅助存储系统104可以包括一个或多个处理器,其耦接到存储驱动器并被配置为将存储在存储驱动器中的数据存档到云存储系统106、集群108和/或一个或多个其他存储介质(例如,磁带,可移除存储)。在一个实施例中,辅助存储系统由一个固态驱动器和三个硬盘驱动器组成。
测试/开发系统122可以被配置为对存储在辅助存储系统112上的备份数据执行一个或多个测试。测试/开发系统122可以包括数据库应用程序123、应用程序124、主存储卷126和一个或多个辅助存储卷127。
数据库应用程序123可以创建一个或多个数据库文件,例如“.mdf”文件”,“.ldf”文件或“.ndf'文件。测试/开发系统122可以包括主存储卷126和一个或多个辅助存储卷127,其配置为存储与数据库应用程序123相关联的数据库数据和与测试/开发系统122相关联的非数据库数据。
测试/开发系统122可以被配置为接收与数据库的克隆相关联的数据。测试/开发系统122可以被配置为创建一个或多个卷(例如,X:/,Y:)以存储所接收的数据。一旦存储接收到的数据,测试/开发系统122的用户可以通过数据库应用程序123对克隆的数据库进行一个或多个修改。
应用程序124可以向测试/开发系统122提供对存储在辅助存储系统122处的克隆数据库的访问。应用程序124可以为测试/开发系统122的用户提供对克隆数据库进行一个或多个修改的能力。
测试/开发系统122可以由一个或多个服务器、一个或多个计算设备、一个或多个存储设备和/或它们的组合组成。
图2是示出用于备份卷的过程的实施例的流程图。在一些实施例中,过程200可以由诸如主系统102的系统来实现。
在202,准备要备份的数据库。备份代理(例如,备份代理104)可以被配置为向系统上运行的一个或多个服务(例如,VSS,VDI)发送命令。作为响应,一个或多个服务可以被配置为发送命令以静默与数据库相关联的数据库应用程序。可以静默数据库应用程序以确保在执行卷备份之前数据库处于一致状态。如果数据库应用程序103被静默,则对数据库的任何后续操作请求将由主系统102排队,且直到数据库应用程序被取消静默时才执行。
在204处,记录与数据库相关联的数据库元数据。与数据库相关联的数据库元数据可以允许数据库被还原、克隆,恢复和/或重建。例如,尽管备份可以包括与数据库系统的一个或多个存储卷相关联的文件数据,即,存储在一个或多个存储卷中的文件,但是从数据库系统接收有关正在备份的一个或多个数据库的元数据信息很有帮助。所接收的数据库元数据可以与对应的所存储的备份实例相关联(例如,被记录),以允许有效地标识关于在所存储的备份实例中备份的一个或多个数据库的信息。数据库元数据可以包括日志序列号(LSN),一个或多个数据库文件名、创建日期、数据库应用程序处于静默状态时数据库的离线/联机状态。如果数据库元数据指示在执行备份时数据库处于离线状态,则无法从关联的存储备份实例还原数据库,因为与备份实例中的数据库关联的备份文件可能处于错误状态。
在206处,将数据库系统的一个或多个卷备份到辅助存储系统。通过备份整个存储卷而不是仅备份数据库内容,在整个数据库系统损坏的情况下,对一个或多个系统卷的备份允许将整个系统还原在存在备份的任何特定时刻。备份可以包括特定时间点的系统设置(例如,虚拟机数据)和/或配置的记录。使用一个或多个卷的备份重建系统时,系统配置有与特定时间段关联的设置和/或配置。卷可以包括与数据库相对应的数据,与数据库相关联的元数据相对应的数据,和/或与一个或多个卷所驻留的系统的非数据库数据相对应的数据。
图3A是示出文件系统元数据快照树的实施例的框图。在所示示例中,文件系统元数据快照树300可以由诸如辅助存储系统112的存储系统创建。在所示示例中,文件系统元数据快照树300包括根节点302,中间节点312、314,叶节点322、324、326、328和330。尽管快照树300在根节点302和叶节点322、324、326、328、330之间包括一个中间级别,但可以实现任何数量的中间级别。文件快照树可以具有与文件系统元数据快照树类似的树结构。同一快照树的任何叶节点和根节点之间的级别数相同。文件系统元数据快照树300可以是快照树,其包括在特定时间点t的数据库数据、文件系统元数据或非数据库数据。文件系统元数据快照树300可以包括与数据库版本相关联的叶节点。在一些实施例中,根节点302与在特定时间点t的文件系统元数据快照树相关联。在一些实施例中,根节点302与在特定时间点t的文件快照树相关联。文件快照树可以对应于数据库文件或非数据库文件。文件快照树可以存储文件的内容和/或特定于该文件的元数据。文件系统元数据可以包括诸如文件大小、文件名、目录结构、文件许可权、文件的物理存储位置等信息。
根节点是文件系统元数据快照树的根,并且可以包括指向一个或多个其他节点的指针。每个指针都包括数值和排序的数据键,可以通过跟随该特定指针来找到它们。中间节点是另一节点(例如,根节点,另一中间节点)指向的节点,并且包括指向一个或多个其他节点的一个或多个指针。叶节点是文件系统元数据快照树底部的节点。在一些实施例中,叶节点是另一个节点指向的节点,但是不包括指向任何其他节点的指针。在其他实施例中,叶节点是另一个节点指向的节点,并且包括指向另一个快照树的根节点的指针。例如,文件系统元数据快照树的叶节点可以包括指向文件快照树的指针。叶节点可以存储数据库数据的键值对,数据库元数据的键值对以及非数据库数据的键值对。数据键k是可以通过其访问特定叶节点的查找值。例如,“1”是可用于查找叶节点322的“DATA1”的数据键。叶节点存储的值的示例包括但不限于文件大小、目录结构、文件许可权、物理文件的存储位置、文件名等。叶节点可以存储数据键k和指向存储与该数据键相关联的值的位置的指针。叶节点可以存储与备份的存储卷的数据的一部分相对应的键值对。
根节点或中间节点可以包括一个或多个节点键。节点键可以是整数值或非整数值。每个节点键指示节点的分支之间的划分,并指示如何遍历树结构以找到叶节点,即,跟随哪个指针。例如,根节点302可以包括节点键“3”。小于或等于节点键的键值对的数据键k与节点的第一分支相关联,大于节点键的键值对的数据键k与节点的第二分支相关联。在上面的示例中,为了找到存储与数据键“1,”,“2”或“3”相关联的值的叶节点,根节点302的第一分支将遍历到中间节点312,因为数据键“1”、“2”和“3”小于或等于节点键“3”。为了找到存储与数据键“4”或“5”相关联的值的叶节点,根节点302的第二个分支将遍历到中间节点314,因为数据键“4”和“5”大于节点键“3”。
在一些实施例中,哈希函数可以确定节点的哪个分支与非数值数据键相关联。例如,哈希函数可以确定第一桶与节点的第一分支相关联,并且第二桶与节点的第二分支相关联。
键值对的数据键k不限于数值。在一些实施例中,非数值数据键可以用于数据键值对(例如,“名称”,“年龄”等),并且数值可以与非数值数据键相关联。例如,数据键“名称”可以对应于数值键“4”。按字母顺序排在单词“名称”之前或单词“名称”的数据键可以在与节点关联的左分支之后找到。按字母顺序排在单词“名称”之后的数据键可以通过跟随与该节点关联的右分支来找到。在一些实施例中,哈希函数可以与非数值数据键相关联。哈希函数可以确定非数值数据键与节点的哪个分支相关联。
在所示的示例中,根节点302包括指向中间节点312的指针和指向中间节点314的指针。根节点302包括NodeID“R1”和TreeID“1”。NodeID标识节点的名称。TreeID标识与节点关联的快照树/视图。如关于图3B,3C和3D所描述的,当对存储在叶节点中的数据进行改变时,TreeID用于确定是否要复制节点。
根节点302包括将一组指针划分为两个不同的子集的节点键。具有小于或等于节点键的数据键k的叶节点(例如“1至3”)与第一分支相关联,并且具有大于节点键的数据键k的叶节点(例如“4至5”)与第二分支相关联。通过从根节点302到中间节点312遍历文件系统元数据快照树300,可以找到数据键为“1”、“2”或“3”的叶节点,因为数据键的值小于或等于节点键。通过从根节点302到中间节点314遍历快照树300,可以找到数据键为“4”或“5”的叶节点,因为数据键的值大于节点键。
根节点302包括第一组指针。与小于节点键的数据键(例如“1”、“2”或“3”)相关联的第一组指针指示从根节点302到中间节点312遍历快照树300将引向具有数据键“1”、“2”或“3”的叶节点。中间节点314包括第二组指针。与大于节点键的数据键相关联的第二组指针指示从根节点302到中间节点314遍历快照树300将引向具有数据键“4”或“5”的叶节点。
中间节点312包括指向叶节点322的指针,指向叶节点324的指针和指向叶节点326的指针。中间节点312包括NodeID“I1”且TreeID“1”。中间节点312包括第一节点键“1”和第二节点键“2”。叶节点322的数据键k是小于或等于第一节点键的值。叶节点324的数据键k是大于第一节点键并且小于或等于第二节点键的值。叶节点326的数据键k是大于第二节点键的值。指向叶节点322的指针指示从中间节点312到叶节点322遍历文件系统元数据快照树300将引向具有数据键“1”的节点。指向叶节点324的指针指示从中间节点312到叶节点324遍历快照树302将引向具有数据键“2”的节点。指向叶节点326的指针指示从中间节点312到叶节点326遍历文件系统元数据快照树300将引向具有数据键“3”的节点。
中间节点314包括指向叶节点328的指针和指向叶节点330的指针。中间节点312包括NodeID“I2”和TreeID“1”。中间节点314包括节点键“4”。叶节点328的数据键k是小于或等于节点键的值。叶节点330的数据键k是大于节点键的值。指向叶节点328的指针指示从中间节点314到叶节点328遍历文件系统元数据快照树300将引向具有数据键“4”的节点。指向叶节点330的指针指示从中间节点314到叶节点330遍历文件系统元数据快照树300将引向具有数据键“5”的节点。
叶节点322包括数据键值对“1:DATA1”。叶节点322包括NodeID“L1”和TreeID“1”。为了查看与数据键“1”关联的值,从根节点302到中间节点312到叶节点322遍历文件系统元数据快照树300。
叶节点324包括数据键值对“2:DATA2”。叶节点324包括NodeID“L2”和TreeID“1”。为了查看与数据键“2”关联的值,从根节点302到中间节点312到叶节点324遍历文件系统元数据快照树300。
叶节点326包括数据键值对“3:DATA3”。叶节点326包括NodeID“L3”和TreeID“1”。为了查看与数据键“3”关联的值,从根节点302到中间节点312到叶节点326遍历文件系统元数据快照树300。
叶节点328包括数据键值对“4:DATA4”。叶节点328包括NodeID“L4”和TreeID“1”。为了查看与数据键“4”关联的值,从根节点302到中间节点314到叶节点328遍历文件系统元数据快照树300。
叶节点330包括数据键值对“5:DATA5”。叶节点330包括NodeID“L5”和TreeID“1”。为了查看与数据键“5”关联的值,从根节点302到中间节点314到叶节点330遍历文件系统元数据快照树300。
图3B是示出将根节点添加到现有树数据结构的实施例的框图。将根节点添加到现有树数据结构可以使多个备份能够链接在一起。向现有树数据结构添加根节点可以使多个数据库文件版本能够链接在一起。根节点添加到现有树数据结构可以使多个非数据库文件版本能够链接在一起。将根节点添加到现有树数据结构可以使快照树的克隆能够得以创建。将根节点添加到现有树数据结构可以使数据库能够得以恢复。将根节点添加到现有树数据结构可以允许恢复整个卷。
在所示的示例中,树数据结构350可以由诸如辅助存储系统112的存储系统创建。文件系统元数据快照树包括根节点304,中间节点312、314以及叶节点322、324、326、328、和330。文件系统元数据快照树可以是在特定时间点t+n处文件系统元数据的快照,数据库数据的快照和/或非数据库数据的快照。文件系统元数据快照树可以是先前快照树的克隆,例如文件系统元数据快照树300。树数据结构350允许将快照树链链接在一起。每当快照树链接到先前的快照树时,快照树的根节点可以链接到与先前的快照树相关联的一个或多个中间节点。
在所示示例中,位于t=t+n的文件系统元数据快照树链接到位于t=t的快照树。为了创建在时间t+n的数据库数据的快照,创建了先前的根节点的副本,即,新的元数据树根节点。根节点副本包含与先前根节点相同的指针集。根节点副本还包括不同的NodeID和不同的TreeID。TreeID是与快照树相关联的标识符。根节点304与在特定时间点t+n的数据库数据的快照关联。根节点302与特定时间点t的数据库数据的快照相关联。t=t+n处的文件系统元数据快照树可对应于快照树的版本。在一些实施例中,在t=t+n处的文件系统元数据快照树是文件系统元数据的当前视图。当前视图可能仍接受对于数据的一个或多个更改。文件系统元数据快照树的克隆可能是当前视图,因为测试/开发系统可能会访问与克隆的文件系统元数据快照树关联的数据,并对与克隆的文件系统元数据快照树关联的数据进行一项或多项修改,从而导致对克隆的文件系统元数据快照树进行一项或多项相应修改。根节点的TreeID指示根节点与其相关联的快照。例如,具有TreeID“1”的根节点302与第一快照树相关联,具有TreeID“2”的根节点304与第二快照树相关联。在其他实施例中,在t=t+n处的文件系统元数据快照树是文件系统元数据的快照视图。快照视图可能不接受对数据的任何更改。快照视图可用于将数据库还原或恢复到指定位置(例如,主系统或备用系统)。
在一些实施例中,为了创建在时间t+n的文件系统的快照,创建了两个根节点副本。提供两个新的根节点,每个根节点具有不同的TreeID,可防止对特定视图(例如,当前视图)进行的更新影响其他视图(例如,快照视图)的节点。新的根节点之一可以与当前视图关联(即,可修改),而另一新的根节点可以与快照视图关联(即,不可修改)。在一些实施例中,两个新的根节点都与当前视图相关联。在其他实施例中,两个新的根节点都与快照视图相关联。在一些实施例中,在执行快照之后删除与先前快照相关联的根节点,即,在创建根节点304之后删除根节点302。
在所示的示例中,根节点304是根节点302的副本。类似于根节点302,根节点304包括与根节点302相同的指针。然而,除其他差异外,根节点304包括不同的节点ID和不同的视图标识符。根节点304包括指向中间节点312的第一组指针。与小于或等于节点键的数据键k(例如,“1”、“2”或“3”)相关联的第一组指针指示从根节点304到中间节点312遍历树数据结构350将引向具有数据键“1”、“2”或“3的叶节点。根节点304包括指向中间节点314的第二组指针。与大于节点键的数据键k相关联的第二组指针指示从根节点304到中间节点314遍历树数据结构350将引向具有数据键“4”或“5”的叶节点。根节点304包括NodeID“R2”和TreeID“2”。NodeID标识节点的名称。TreeID标识与节点关联的快照树。
图3C是示出修改树数据结构的实施例的框图。在所示的示例中,树数据结构355可以由文件系统管理器(例如文件系统管理器117)修改。树数据结构355可以是在时间t+n的文件系统数据的当前视图。当前视图可能仍接受对于数据的一个或多个更改。快照树的克隆可能是当前视图。因为快照表示时间上“冻结”的文件系统元数据的透视图,所以将制作一个或多个受文件系统元数据更改影响的节点的一个或多个副本。树数据结构355可以对应于树数据结构350的修改版本。
在所示的示例中,值“DATA4”已修改为“DATA4'”。该值可以对应于文件系统元数据值。该值可以对应于文件数据值。在时间t+n,文件系统管理器从根节点304开始,因为它是与时间t+n的文件系统元数据快照树关联的根节点。值“DATA4”与数据键“4”相关联。文件系统管理器从根节点304遍历树数据结构355,直到它到达目标节点,在该示例中是叶节点328。文件系统管理器将每个中间节点和叶节点处的TreeID与根节点的TreeID进行比较。如果节点的TreeID与根节点的TreeID相匹配,则文件系统管理器将前进到下一个节点。如果节点的TreeID与根节点的TreeID不匹配,则生成具有不匹配TreeID的节点的浅副本。例如,为了到达具有数据键“4”的叶节点,文件系统管理器从根节点304开始并前进到中间节点314。文件系统管理器将中间节点314的TreeID与根节点304的TreeID(与时间t=t+n时的快照树关联的标识符)进行比较,确定中间节点314的TreeID与根节点304的TreeID不匹配,并创建中间节点314的副本。中间节点副本316包括与中间节点314相同的一组指针,但包括TreeID“2”以匹配根节点304的TreeID。文件系统管理器更新根节点304的一组指针以指向中间节点316,而不是指向中间节点314。文件系统管理器从中间节点316到叶节点328遍历树数据结构355,确定叶节点328的TreeID与根节点304的TreeID不匹配,并创建叶节点328的副本。叶节点副本332被更新以存储修改后的值“DATA4'”,并包括与根节点304相同的TreeID。文件系统管理器更新中间节点316的指针以指向叶节点332,而不是指向叶节点328。
图3D是示出修改的树数据结构的实施例的框图。图3D所示的文件系统元数据快照树示出了如图3C所示的对t=t+n时的文件系统元数据快照树进行修改的结果。
图3E是示出文件快照树的实施例的框图。在所示的示例中,文件系统元数据快照树的叶节点,例如叶节点322、324、326、328、330,可以包括指向文件快照树(例如文件快照树360)的指针。树数据结构可以用于存储与叶节点相关联的值有关的数据。文件快照树可以存储文件的内容和/或特定于该文件的元数据。可以以与关于图3B,3C和3D描绘的类似方式修改文件快照树。
在所示的示例中,文件快照树360包括数据根节点370和数据叶节点372、374、376、378和380。文件快照树节点可以包括一个或多个中间节点,类似于图3A所示的树结构。数据根节点370包括NodeID和TreeID。数据根节点370还包括一组节点键。数据根节点370包括第一节点键“1”,第二节点键“2”,第三节点键“3”和第四节点键“4”。用于数据叶节点372的数据键k是小于或等于第一节点键的值。数据叶节点372可以包括存储1和0的位的数据块382。尽管数据块382被描述为存储位模式“1001”,但是数据块可以存储任何位模式。数据叶节点372可以包括指向存储数据的物理位置的指针。
用于数据叶节点374的数据键k是大于第一节点键并且小于或等于第二节点键的值。数据叶节点374包括存储1和0的位的数据块384。尽管数据块384被描述为存储位模式“1011”,但是数据块可以存储任何位模式。数据叶节点374可以包括指向存储数据的物理位置的指针。
用于数据叶节点376的数据键k是大于第二节点键并且小于或等于第三节点键的值。数据叶节点376包括存储1和0的位的数据块386。尽管数据块386被描述为存储位模式“0011”,但是数据块可以存储任何位模式。数据叶节点376可以包括指向存储数据的物理位置的指针。
用于数据叶节点378的数据键k是大于第三节点键并且小于或等于第四节点键的值。数据叶节点378包括存储1和0的位的数据块388。尽管数据块388被描述为存储位模式“1010”,但是数据块可以存储任何位模式。数据叶节点378可以包括指向存储数据的物理位置的指针。
用于数据叶节点380的数据键k是大于第四节点键的值。数据叶节点380包括存储1和0的位的数据块390。尽管数据块390被描述为存储位模式“1111”,但是数据块可以存储任何位模式。数据叶节点390可以包括指向存储数据的物理位置的指针。
图4是示出用于创建文件系统元数据快照树的过程的实施例的流程图。在所示的示例中,过程400可以由诸如辅助存储系统112的存储系统来实现。
在402处,从主系统接收将用于创建新的备份实例的数据。在主系统上的备份代理(例如,备份代理104)启动新备份实例的创建之后,可以接收数据。与备份相关联的数据包括存储在主系统的一个或多个存储卷中的数据。备份可以是主系统的一个或多个存储卷的全量备份或增量备份。全量备份包括主系统的一个或多个存储卷中包含的所有数据。增量备份包括一个或多个存储卷中包含的数据,这些数据自上次备份以来尚未备份。
备份中包含的某些数据可能对应于与数据库备份关联的元数据。备份中包含的某些数据可能对应于与数据库关联的数据。备份中包含的某些数据可能对应于非数据库数据。
在404处,创建对应于新的备份实例的新的根节点。新的根节点,即,新的元数据树根节点,可以对应于文件系统元数据快照树的新的根节点。新的根节点允许标识与备份实例关联的文件系统元数据快照树。文件系统元数据树数据结构与备份实例相对应,也就是说,文件系统元数据快照树是与备份实例中包含的一个或多个存储卷关联的数据的树形表示。新的根节点可以链接到与先前的文件系统元数据快照树相关联的一个或多个节点。例如,如图3B所示,新的根节点被添加到快照树。
在一些实施例中,与新备份实例相关联的数据对应于全量备份。与新备份实例关联的数据表示特定时间的主系统的一个或多个卷的完整状态。与新备份实例关联的数据可以表示在文件系统元数据快照树中。文件系统元数据快照树可以由根节点、一个或多个级别的一个或多个中间节点以及一个或多个叶节点组成。
在一些实施例中,与新的备份实例相关联的数据对应于增量备份,并且包括先前未备份的数据库数据。例如,可能已经在主系统上创建了新数据库,并且与新备份实例关联的数据包括与新数据库相对应的数据。在这种情况下,可以修改文件系统元数据快照树以反映新数据库,并且可以创建与新数据库关联的数据库文件相对应的一个或多个数据库文件快照树。可以将文件系统元数据快照树修改为包括一个或多个叶节点,以使每个叶节点包括指向一个或多个数据库文件快照树中的一个的指针。
在一些实施例中,与新备份实例相关联的数据对应于增量备份并且包括先前已经备份的数据库数据,但是数据库数据对应于已经被修改的先前存储的数据库数据。在这种情况下,可以修改文件系统元数据树以反映修改后的数据库数据,并且可以修改一个或多个关联数据库文件以反映修改后的数据库数据。
在一些实施例中,图2的204中的数据库元数据的至少一部分与新的根节点相关联。例如,数据库元数据的至少一部分存储在新的根节点中和/或存储在与新的根节点链接/关联的单独的数据结构中。
在406处,基于接收到的数据来更新存储与数据库相关联的元数据的文件系统元数据快照树。例如,文件系统元数据快照树可以被修改为包括一个或多个新的中间节点和/或一个或多个叶节点。与新的根节点和对应的新的中间节点相关联的指针可以被修改。与文件系统元数据快照树的叶节点相关联的值可以被修改以反映更新的值。
当备份实例包括新数据或修改后的数据时,将执行写时复制过程。创建文件系统元数据快照树的新根节点将创建文件系统元数据快照树的副本,即,克隆的文件系统元数据快照树。从根节点副本到叶节点遍历克隆的文件系统元数据快照树。检查与到叶节点的路径上的每个节点关联的视图标识符。如果与节点关联的视图标识符匹配与根节点副本关联的视图标识符,则克隆的文件系统元数据快照树将沿着路径遍历到下一个节点。如果与节点关联的视图标识符不匹配与根节点副本关联的视图标识符,则创建具有不匹配的视图标识符的节点的副本。具有不匹配的视图标识符的节点的副本包括与复制的节点相同的指针集,但包括新的根节点的视图标识符和不同的节点ID。将更新指向具有不匹配的视图标识符的节点的节点指针。指针被更新以指向具有不匹配的视图标识符的节点的副本,而不是指向具有不匹配的视图标识符的节点。继续写时复制过程,直到复制且修改与克隆文件系统元数据快照树关联的叶节点为止。
例如,如图3C所示,为了将数据键“4”的值“DATA4”修改为值“DATA4'”,将新的中间节点316和新的叶节点332添加到快照树。创建时,中间节点316是中间节点314的副本。但是,除其他差异外,中间节点316包括根节点304的TreeID和不同的NodeID。创建时,新叶节点332是叶节点328的副本。然而,除其他差异外,叶节点332包括根节点304的TreeID和不同的NodeID。与根节点304相关联的指针已被更新以指向新的中间节点316,而不是指向中间节点314。与中间节点316相关联的指针已更新为指向新的叶节点332,而不是指向叶节点328。与叶节点332相关联的值已从值“DATA4”修改为值“DATA4'”。写时复制过程允许将新的叶节点与特定的根节点相关联,该特定的根节点与特定的备份实例相关联。
在408处,为备份实例存储接收到的数据的数据库内容。可以使用一个或多个对应的数据库文件快照树来存储数据库内容。在一些实施例中,如图3E所示,数据库文件快照树由根节点和一个或多个叶节点组成。在其他实施例中,如图3A所示,数据库文件快照树由根节点、一个或多个级别的中间节点以及一个或多个叶节点组成。数据库文件快照树的叶节点可以存储数据库内容。在一些实施例中,数据库文件快照树的叶节点还存储特定于数据库文件的元数据。数据库文件快照树的叶节点可以存储指向存储了数据库内容的存储位置的指针。文件系统元数据快照树的叶节点可以包括指向数据库文件快照树的根节点的指针。
当备份实例包括新的或更新的数据库内容时,新的根节点将添加到与数据库相对应的数据库文件快照树中。新的根节点是数据库文件快照树的先前根节点的副本,并包含与复制的根节点相同的指针集,但包含不同的节点ID和不同的视图标识符。新的根节点创建链接到先前的数据库文件快照树的新的数据库文件快照树。数据库文件快照树的新根节点对应于与备份实例关联的数据库版本。
当备份实例中包含新的数据库内容时,需要将新的叶节点添加到新的数据库文件快照树中。实现了写时复制过程。从根节点副本到最低层的中间节点遍历新的数据库文件快照树。检查与到叶节点的路径上的每个节点关联的视图标识符。如果与节点关联的视图标识符匹配与根节点副本关联的视图标识符,则遍历新的数据库文件快照树到沿着路径的下一个节点。如果与节点关联的视图标识符不匹配与根节点副本关联的视图标识符,则创建具有不匹配的视图标识符的节点的副本。具有不匹配的视图标识符的节点的副本包括与复制的节点相同的指针集,但包括新的根节点的视图标识符和不同的节点ID。将更新指向具有不匹配的视图标识符的节点的节点指针。指针被更新以指向具有不匹配的视图标识符的节点的副本,而不是指向具有不匹配的视图标识符的节点。继续进行写时复制过程,直到到达最低层中间节点为止。最低层的中间节点被修改为包括指向对应于新数据库内容的新叶节点的指针。在一些实施例中,新叶节点存储数据库内容。在其他实施例中,新叶节点存储指向存储数据库内容的存储位置的指针。
当修改后的数据库内容包含在备份实例中时,将实现写时复制过程。从根节点副本到要修改的叶节点遍历新的数据库文件快照树。检查与到叶节点的路径上的每个节点关联的视图标识符。如果与节点关联的视图标识符匹配与根节点副本关联的视图标识符,则新的数据库文件快照树将沿着路径遍历到下一个节点。如果与节点关联的视图标识符不匹配与根节点副本关联的视图标识符,则创建具有不匹配的视图标识符的节点的副本。具有不匹配的视图标识符的节点的副本包括与复制的节点相同的指针集,但包括新的根节点的视图标识符和不同的节点ID。将更新指向具有不匹配视图标识符的节点的节点指针。指针被更新以指向具有不匹配的视图标识符的节点的副本,而不是指向具有不匹配的视图标识符的节点。继续写时复制过程,直到复制和修改与数据库文件快照树关联的叶节点为止。在一些实施例中,叶节点存储数据库内容。在其他实施例中,叶节点存储指向存储了数据库内容的存储位置的指针。
图5是示出用于将存储卷和/或数据库还原到指定位置的过程的实施例的流程图。在所示的示例中,过程500可以由诸如辅助存储系统112的存储系统来实现。存储在指定位置处的存储卷和/或数据库可能被损坏并且需要还原到特定时间点。存储系统可以在指定位置为系统提供灾难恢复。
在502处,接收到将存储卷和/或数据库的特定版本还原到指定位置的请求。在一些实施例中,该请求包括还原虚拟机的请求。例如,将通过还原虚拟机的存储卷来还原虚拟机及其数据库。指定位置可以是创建数据库特定版本的原始位置,也可以是替代位置。该存储系统可以存储存储卷和/或数据库的一不同版本。数据库的每个版本都可以在存储系统上建立索引。例如,还原“foo”数据库的请求将返回“foo”数据库的每个版本。每个备份实例,例如图4中收到的备份实例,都对应于存储卷的特定版本。
在504处,识别与存储卷和/或数据库的特定版本相对应的文件系统元数据快照树。可以通过与特定存储卷相关联的时间戳来标识特定存储卷。可以基于存储在存储系统中的数据库元数据来识别数据库的特定版本。数据库元数据可以指示与数据库的特定版本相关联的一个或多个要还原的数据库文件。每个版本的存储卷都存储在相应的文件系统元数据快照树中。
在506处,创建对应于存储卷和/或数据库的特定版本的文件系统元数据快照树的根节点的副本。例如,如图3B所示,将与新快照树相对应的新根节点添加到树数据结构中。新的根节点包括指向与先前快照树关联的节点的指针。创建快照树的根节点的副本防止在将数据库恢复到指定位置时删除与复制的根节点的快照树关联的数据。
例如,快照树(文件系统元数据快照树或文件快照树)可能具有关联的保留时间策略,该策略与快照树相关联。例如,保留时间策略可以指示在特定时间段(例如,天、周、月、年等)之后删除快照树。保留时间策略减少了系统需要维护和存储在存储器中的快照树的数量。在一些实施例中,满足保留时间策略条件(例如,快照树已经在存储器中存储了特定的时间量),并且确定从存储器中移除快照树。在经过特定时间量的情况下,文件系统管理器可以确定要从存储器和/或存储中移除具有特定TreeID的快照树。每个中间节点或叶节点具有相关联的计数值。计数值指示指向特定节点的节点数量。例如,因为根节点302包括指向中间节点312的指针,所以图3A的中间节点312具有计数值“1”。为了从内存中移除快照树,将删除快照树的根节点。这可能导致与一个或多个节点关联的计数值递减。如果与节点关联的计数值为“0”,则该节点将被删除。如果计数节点大于或等于“1”,则将保留该节点。通过复制根节点来创建新的根节点会增加由复制的根节点指向的中间节点的计数值,因为新的根节点包括指向由复制的根节点指向的中间节点的指针。当满足策略条件时,将删除与要删除的快照树关联的根节点。这将导致与中间节点关联的计数值递减“1”,但是由于新的根节点包括指向中间节点的指针,因此与中间节点关联的计数值将大于或等于“1”。”这将防止与删除的快照树相关联的数据被删除。
在508处,将与复制的根节点关联的数据复制到指定位置。与复制的根节点关联的数据可以对应于与整个存储卷关联的数据。通过从复制的根节点到叶节点遍历复制的文件系统元数据快照树,并读取复制的文件系统元数据快照树的叶节点,可以找到与整个存储卷关联的数据。复制的文件系统元数据快照树的叶节点可以包括指向一个或多个文件快照树的指针。如果复制的文件系统元数据的叶节点包括指向一个或多个文件快照树的指针,则遍历一个或多个文件快照树以确定与一个或多个文件相关联的数据。可将与复制的文件系统元数据快照树的叶节点相关联的数据以及与一个或多个文件快照树的叶节点相关联的数据提供至指定位置。
与复制的根节点关联的数据可以对应于数据库数据。可以通过遍历与数据库的特定版本关联的文件快照树来找到数据库数据。文件快照树可以对应于特定的数据库文件。文件快照树可以存储对应文件的内容和/或特定于对应文件的元数据。可以从辅助存储系统中存储的数据库元数据中识别数据库的特定版本中包括的一个或多个数据库文件。与包括在数据库的特定版本中的数据库文件相对应的文件快照树的叶节点可以存储数据或指向存储该数据的存储位置的指针。在识别并定位了数据库数据之后,可以将数据库数据复制到与指定位置关联的卷。在一些实施例中,数据库是在指定位置的系统上建立的。例如,复制的数据库数据可以包括设置代理,以在指定位置在系统上设置数据库。
在510处,在将与所复制的根节点相关联的数据成功复制到指定位置之后,删除根节点副本。这将减少与根节点副本引用的节点关联的计数值,并允许正确实施保留策略。
图6是示出用于克隆数据库的过程的实施例的流程图。在所示的示例中,过程600可以由诸如辅助存储系统112的存储系统来实现。
数据库的大小可能非常大(例如,太字节),而测试/开发系统可能具有有限的可用存储(例如,千兆字节)来存储数据库。测试/开发系统的用户可能希望在数据库上运行一些查询。代替将整个数据库的内容迁移到测试/开发系统,可以在辅助存储系统上创建数据库备份的克隆,该辅助存储系统已经通过其备份副本存储了数据库的副本,并且测试/开发系统已允许访问单独的辅助存储系统上的克隆副本。这使备份数据不仅可以用于备份目的,而且还可以作为实时数据用于其他目的(例如测试和开发),因为处于其他目的对备份数据所做的更改会被捕获到备份数据的克隆副本中。这将释放测试/开发系统的存储空间,以用于其他目的,并减少了在数据库上运行某些查询所需的时间,因为不需要将数据库数据从辅助存储系统迁移到测试/开发系统。由于测试/开发系统的用户无法修改数据库的任何实际版本,因此这也保护了存储在辅助存储系统中的数据的完整性。克隆数据库可以允许将该数据库用作备份和/或实时测试数据库。
在602处,接收将与特定时间相关联的数据库克隆到指定位置的请求。可以从测试/开发系统接收该请求。
在604处,识别与要克隆的数据库的特定版本相对应的文件系统元数据快照树。可以基于存储在存储系统中的数据库元数据来识别数据库的特定版本。数据库元数据可以指示与数据库的特定版本相关联的一个或多个数据库文件。数据库元数据可以指示与数据库的特定版本相关联的文件系统元数据快照树。
在606,创建与要克隆的数据库的特定版本对应的文件系统元数据快照树的根节点的副本。复制的根节点包括在先前的根节点中包括的一组指针,即,复制的根节点包括一个或多个指向与先前的文件系统元数据快照树相关联的中间节点或叶节点的指针。然而,除其他差异外,所复制的根节点包括与先前的根节点的节点标识符和视图标识符不同的节点标识符和视图标识符。例如,如图3B所示,将与新快照树相对应的新根节点添加到树数据结构中。新的根节点包括指向与先前快照树关联的节点的指针。复制文件系统元数据快照树的根节点可防止与复制的根节点的文件系统元数据快照树关联的数据被修改,而不必担心数据被意外修改和/或删除。在一些实施例中,根节点的副本是先前快照树的多个副本之一。例如,在快照树的瓷器(chian)中创建了一个分叉,其中一个分支用于克隆,另一个分支用于后续的备份实例。
在608处,为克隆的数据库生成数据库应用程序的实例。数据库应用程序的实例被配置为访问数据库元数据以及与克隆的数据库关联的一个或多个数据库文件。
在610处,将克隆数据库的访问提供给指定位置。测试/开发系统可以通过在测试/开发系统上运行的数据库应用程序的实例来访问克隆的数据库。测试/开发系统可以对克隆的数据库执行一系列查询。在辅助存储系统上为克隆的数据库设置和配置数据库应用程序的实例比将数据库数据迁移到测试/开发系统并且在测试/开发系统上设置数据库的速度要快,因为测试/开发系统的用户不需要在使用数据库克隆之前等待数据库数据的迁移和复制。可以向用户提供对数据库克隆的近乎即时的访问(例如,毫秒、秒等)。
克隆的数据库可以是数据库的当前视图,并且可以被修改。例如,与克隆的数据库相关联的文件系统元数据快照树可经历类似于图3C所示的更改。
在612处,克隆数据库的实例在预期使用后将被删除。在一些实施例中,可选地执行612(例如,克隆将是持久的)。用户可能已对数据库进行了一个或多个修改,以使一个或多个节点已添加到克隆的文件系统元数据快照树。为了删除克隆的数据库,将删除克隆的文件系统元数据快照树的根节点。结果,与由于用户修改而创建的任何节点关联的计数值递减。计数值指示指向特定节点的节点数。删除克隆的文件系统元数据快照树的根节点将递减与由于用户对数据库的修改而创建的节点关联的计数值。如果由于用户对数据库的修改而创建的节点的计数值为“0”,则删除这些节点。在一些实施例中,当拆卸克隆的数据库时,删除由于用户的修改而具有计数值“0”的创建节点。在其他实施例中,当与这些节点相关联的保留时间段到期时,删除由于用户的修改而具有计数值“0”的创建的节点。
图7是示出将存储卷和/或数据库还原到特定时间点的示例的框图。示例700示出了相对于时间线的数据库事务的数量和多个备份。诸如辅助存储系统的存储系统可以接收将存储卷和/或数据库还原到任何特定时间点的请求。只要存储系统存储必要的备份,就可以将存储卷还原到任何特定时间点。例如,由于存储系统存储全量备份F1和增量备份I1,因此可以将存储卷还原到t1或t2处的状态。只要存储系统存储必要的备份和一个或多个关联的事务日志文件段,数据库就可以还原到任何特定时间点。备份包括特定时间点的数据库快照。备份表示特定时间点的数据库状态。事务日志文件段存储对于数据库的一个或多个修改(例如,添加节点、复制节点、删除节点、修改节点)。每个修改都是事务日志文件中的事务。
在所示的示例中,时间t1对应于数据库的第100事务。在时间t1,将数据库的全量备份F1存储到存储系统。全量备份F1表示第100事务后的数据库状态。存储系统可以仅使用全量备份F1将数据库还原到第100事务处的数据库状态。
存储卷的全量备份由与特定时间点的存储卷相对应的数据组成。可以在快照树中表示与特定时间点的存储卷相对应的数据,例如图3A中所示的文件系统元数据快照树。对应于存储卷的数据包括对应于特定时间点的数据库的数据。可以在快照树中表示与数据库相对应的数据,诸如在图3E中描绘的文件快照树。
时间t2对应于数据库的第150事务。在时间t2,事务日志文件段L2被存储到存储系统。事务日志文件段L2包含事务0至150的记录。存储系统可以使用全量备份F1和事务日志文件段L2的组合将数据库还原到第101事务和第150事务之间的任何事务处的数据库状态。数据库的状态通过全量备份F1从第100事务开始,并且存储在事务日志文件段L2中的每个顺序修改都将应用到数据库,直到将数据库还原到指定的时间点为止。当将事务应用于数据库状态时,可以对与数据库相对应的文件快照树进行相应的修改,以反映特定事务处的数据库。
时间t3对应于数据库的第200事务。在时间t3,事务日志文件段L3被存储到存储系统。事务日志文件段L3包括事务151至200的记录。存储系统可以使用全量备份F1,事务日志文件段L2和事务日志文件段L3的组合,将数据库还原到第151事务和第200事务之间的任何事务处的数据库状态。数据库状态通过全量备份F1从第100事务开始,存储在事务日志文件段L2中的每个顺序修改都应用于数据库,且存储在事务日志文件段L3中的每个顺序修改都应用于数据库,直到数据库被还原到指定的时间点。当将事务应用于数据库状态时,可以对与数据库相对应的文件快照树进行相应的修改,以反映特定事务处的数据库。
时间t4对应于数据库的第250事务。在时间t4,将数据库的增量备份存储到存储系统。增量备份L4表示250个事务后的数据库的状态。存储系统可以仅使用增量备份I4将数据库还原到第250事务处的数据库状态。
由于上述树数据结构,与增量备份相对应的文件系统元数据快照树是完全水合备份,因为它提供了存储卷的完整视图,其中包括与数据库关联的文件。如上所述,存储卷的全量备份由对应于数据库的数据组成。可以使用文件系统元数据快照树(例如图3A中所示的快照树)表示与数据库相对应的数据。文件系统元数据快照树的叶节点可以包括指向与数据库相关联的文件快照树的指针。数据库的增量备份由与先前未备份的存储卷的数据相对应的数据组成。先前未备份的存储卷的数据可以表示在文件系统元数据快照树中,例如图3D中描绘的快照树中。与增量备份相对应的文件系统元数据快照树可以引用先前快照树的一个或多个节点。例如,图3D中描绘的快照树引用图3A中描绘的快照树的一个或多个节点。可以通过将文件系统元数据快照树遍历到包括指向数据库文件快照树的指针的叶节点来确定数据库数据并遍历数据库文件快照树以确定数据库数据。
时间t5对应于数据库的第300事务。在时间t5,将事务日志文件段L5存储到存储系统。事务日志文件段L5包括事务201至300的记录。存储系统可以使用增量备份L4和事务日志文件段L5的组合将数据库还原到在第251事务和第300事务之间的任何事务处的数据库状态。数据库的状态通过增量备份L4从第250事务开始,并且存储在事务日志文件段L5中的每个顺序修改都将应用到数据库,直到数据库还原到指定的时间点为止。当将事务应用于数据库状态时,可以对与数据库相对应的文件快照树进行相应的修改,以反映特定事务处的数据库。
假设接收到将数据库还原到由星号702表示的特定时间的请求。由于增量备份L4是完全水合备份,并且在第250事务处提供了数据库的完整视图,因此通过将与存储在事务日志文件段L5中的事务相对应的相应修改应用于与事务250处的增量备份相对应的文件快照树,可以将数据库还原到由星号702表示的特定时间。数据库的状态不需要通过全量备份F1从第100事务开始然后随后应用存储在事务日志文件段L2、L3、L4中的修改,以将数据库还原到星号702表示的指定时间。
图8是示出用于将整个虚拟机和数据库还原到任何时间点的过程的实施例的流程图。在所示的示例中,过程800可以由诸如辅助存储系统112的存储系统来实现。主系统可以实现虚拟机和多个数据库。过程800可以由诸如辅助存储系统112的存储系统来实现,以将主系统还原为包括虚拟机和多个数据库中的每个数据库到特定时间点。
在802处,接收到将虚拟机和数据库还原到特定时间点的请求。系统可能会离线(例如,该系统已感染病毒、感染了恶意软件、发生了硬件故障等)。可能需要将系统及其关联的数据库还原到已知的一致状态的特定时间点。
辅助存储系统可以从主系统接收全量或增量备份。备份表示主系统在特定时间点的状态。主系统可以还原到主系统的任何状态,在该状态下相应的备份存储在辅助存储系统上。可以将数据库还原到备份和相应的事务日志文件存储在辅助存储系统上的任何时间点。事务日志文件包括相对于数据库进行的一系列事务。备份可以包括一个或多个事务日志文件段。在一些实施例中,辅助存储系统可以与备份分开地接收一个或多个事务日志文件段。可以将事务日志文件段应用于备份,以将数据库修改为在辅助存储系统上存储相关事务日志文件段的任何事务点。这允许将数据库还原到与创建备份时不完全一致的特定时间点。先前的系统可能能够将存储卷还原到存储备份的特定时间点,但是无法将关联的数据库还原到两次备份之间的时间点。系统的用户将手动执行数据库的事务,以将数据库更新到两次备份之间的特定时间点。如本文所公开的,在提供还原的存储卷和数据库之前对数据库执行事务减少了将数据库还原到备份之间的特定时间点的时间量。
在804处,确定与特定时间点相关联的最接近的先前的全量或增量备份。最接近的先前全量或增量备份包括文件系统元数据,与非数据库数据关联的数据,与数据库关联的数据和/或数据库元数据。最接近的先前全量或增量备份对应于备份时数据库的特定事务。存储系统存储:与对应于特定时间点关联的最近备份的文件系统元数据快照树;以及与和最接近的先前全量/增量备份的数据库相关联的数据相对应的数据库文件快照树。存储系统还存储与最接近的先前全量/增量备份相关联的数据库元数据。与数据库相关联的元数据可以指示与要恢复的数据库版本相关联的一个或多个文件。与数据库关联的元数据可以指示与要恢复的数据库版本相对应的文件系统元数据快照树。对应于特定时间点的文件系统元数据快照树是完全水合备份的表示,因为它提供了特定时间点的存储卷和数据库数据的完整视图。在一些实施例中,整个虚拟机和数据库被还原到多个系统的任何时间点。为了将多个系统还原到共同状态,确定与在多个系统之间共享的特定时间点相关联的最接近的全量或增量备份。
在806处,识别数据库的一个或多个相关联的事务日志文件段。一个或多个相关的事务日志文件段包括对数据库执行的事务的记录,其发生在与最接近的先前备份相关联的数据库的特定事务之后。例如,如图7所示,事务日志文件段是关联的事务日志文件段,用于将数据库还原到由星号702表示的特定时间,因为需要将存储在事务日志文件段L5中的事务应用于增量备份I4,以将数据库还原到星号702表示的特定时间点。相反,不需要事务日志文件段L2、L3来将数据库还原到星号702表示的特定时间,因为存储事务在与增量备份关联的事务之前发生。
在808处,由辅助存储系统的文件系统管理器将所标识的一个或多个事务日志文件中的一个或多个事务应用于最接近的先前备份。为了将数据库还原到备份之间的特定时间点,将与备份相对应的事务日志文件段的特定事务之后发生的一个或多个事务应用于备份。应用一个或多个事务,直到对应于特定时间点的事务为止。事务可以对应于对文件系统元数据快照树的修改。文件系统元数据快照树的叶节点可以包括指向数据库文件快照树的指针。数据库文件快照树是文件系统元数据快照树的子树。数据库文件快照树的叶节点可以包括指向与数据库文件的一部分相关联的存储位置的指针。如果事务日志文件的事务是查询请求,则文件系统元数据快照树不变。如果事务日志文件的事务是数据库文件修改,则对文件系统元数据快照树和/或一个数据库文件快照树进行相应的修改。
例如,如果数据库的数据值已被修改,则执行写时复制过程。标识与特定时间点之前最接近的备份相对应的文件系统元数据快照树。通过复制文件系统元数据快照树的根节点来创建文件系统元数据快照树的副本。文件系统元数据快照树的根节点副本包含与文件系统元数据快照树的根节点相同的指针集,但是包含不同的节点ID和视图标识符。还创建与对应于数据库文件的数据库文件快照树关联的根节点的副本。更新指向数据库文件快照树的根节点的文件系统元数据快照树的叶节点的指针,以指向与数据库文件对应的数据库文件快照树关联的根节点的根节点副本,而不是指向与数据库文件对应的数据库文件快照树关联的根节点。
与对应于数据库文件的数据库文件快照树相关联的根节点的根节点副本包括与和对应于数据库文件的数据库文件快照树相关联的根节点相同的指针集。但是,除其他差异外,它还包括不同的节点ID和不同的视图标识符。将克隆的数据库文件快照树从与数据库文件相对应的数据库文件快照树的根节点副本遍历到要修改的叶节点。检查与到叶节点的路径上的每个节点关联的视图标识符。如果与节点关联的视图标识符匹配与克隆的数据库文件快照树的根节点副本关联的视图标识符,则克隆的数据库文件快照树将沿着路径遍历到下一个节点。如果与节点关联的视图标识符不匹配与根节点副本关联的视图标识符,则创建具有不匹配的视图标识符的节点的副本。具有不匹配的视图标识符的节点的副本包括与复制的节点相同的指针集,但包括复制的节点的视图标识符和不同的节点ID。将更新指向具有不匹配的视图标识符的节点的节点指针。指针被更新以指向具有不匹配的视图标识符的节点的副本,而不是指向具有不匹配的视图标识符的节点。继续写时复制过程,直到复制且修改与克隆文件系统元数据快照树关联的叶节点为止。可以修改叶节点以指向存储系统的一不同位置。
在810处,提供可用于将整个虚拟机和更新的数据库还原到特定时间点的数据。修改克隆的文件系统元数据快照树和相应的克隆的数据库文件快照树之后,使得克隆的文件系统元数据快照树和相应的克隆的数据库文件快照树与特定时间点的数据库相对应,将整个克隆的存储卷提供到指定位置。一旦接收并存储整个克隆的存储卷,指定位置已更新为包括与最接近的先前备份相对应的整个卷和与特定时刻相对应的已还原数据库。在将整个卷和数据库成功恢复到指定位置之后,删除与特定时间点之前的最近备份相对应的文件系统元数据快照树的根节点的根节点副本,以及与该数据库文件对应的数据库文件快照树关联的根节点的根节点副本。在一些实施例中,删除根节点副本还将删除添加到克隆的快照树的任何节点。
图9A是示出将保留时间段应用于备份数据的实例的框图。备份数据可以包括全量备份、增量备份或事务日志文件段。备份数据的每个实例都有对应的创建日期和对应的保留时间。如果经过了相应的保留时间,则在正常情况下,将删除备份数据实例。但是,在某些实施例中,删除备份数据的实例会阻止将数据库还原到保留时间段内的特定时间点。
在所示的示例中,将保留时间段903应用于数据库。例如,保留时间段可以是30天。保留时间段903左侧的备份数据的任何实例指示备份数据的实例已超过保留时间段。例如,从当前时间开始超过30天创建的任何数据实例都超过了保留时间段。保留时间段903右侧的备份数据的任何实例指示备份数据的实例在保留时间段内。例如,过去30天内创建的任何数据实例都在保留时间内。在所示示例中,增量备份902超过了保留时间段。事务日志文件段904、906、908、912和增量备份910在保留时间段内。
增量备份902表示第100事务处的数据库的状态。事务日志文件段904存储已应用于数据库的事务0至150的记录。通过将事务日志文件段904应用于增量备份902,可以将数据库还原到事务100至150之间的任何事务。事务日志文件段906存储已应用于数据库的事务151至200的记录。通过将事务日志文件段904和事务日志文件段906应用于增量备份902,可以将数据库还原到事务151至200之间的任何事务。事务日志文件段908存储已应用于数据库的事务201至250的记录。通过将事务日志文件段904、事务日志文件段906和事务日志文件段908应用于增量备份902,可以将数据库还原到事务151至200之间的任何事务。事务日志文件段912存储已应用于数据库的事务251至350的记录。通过将事务日志文件段904、事务日志文件段906和事务日志文件段908应用于增量备份902,可以将数据库还原到事务251至350之间的任何事务。增量备份910表示在第300事务处数据库的状态。事务日志文件段912存储已应用于数据库的事务251至350的记录。通过将事务日志文件段912应用于增量备份910,可以将数据库还原到事务301至350之间的任何事务。
在所示的示例中,接收到将数据库还原到星号909表示的特定时间的请求。在一些实施例中,星号909对应于数据库的第225事务。为了将数据库还原到第225事务,经由增量备份902的数据库状态是第100事务的数据库的状态。事务日志文件段904可以应用于增量备份902,以将数据库还原到第150事务。事务日志文件段906可以应用于修改后的数据库,以将数据库还原到第200事务。事务日志文件段908的事务201至225可以应用于修改后的数据库,以将数据库还原到第225事务。如果从存储系统中删除了增量备份902,则存储系统将无法将数据库还原到星号909表示的特定时间。
图9B是示出将保留时间段应用于备份数据的实例的框图。备份数据可以包括全量备份,增量备份或事务日志文件段。备份数据的每个实例都有对应的创建日期和对应的保留时间段。如果经过了相应的保留时间段,则在正常情况下,将删除备份数据实例。但是,在某些实施例中,删除备份数据的实例会阻止将数据库还原到保留时间段内的特定时间点。
在所示的示例中,将保留时间段911应用于数据库。例如,保留时间段可以是30天。保留时间段911左侧的备份数据的任何实例都表明备份数据的实例已超过保留时间段911。例如,从当前时间开始超过30天创建的任何数据实例均已超过保留时间时间段。保留时间段911右侧的备份数据的任何实例都表明备份数据的实例在保留时间段911之内。例如,过去30天之内创建的任何数据实例都在保留时间段911内。在所示示例中,增量备份902、910和事务日志文件段904、906、908、912超过保留时间段911。事务日志文件段914和增量备份910在保留时间911内。
增量备份902表示在第100事务处数据库的状态。事务日志文件段904存储已应用于数据库的事务0至150的记录。通过将事务日志文件段904应用于增量备份902,可以将数据库还原到事务100至150之间的任何事务。事务日志文件段906存储已应用于数据库的事务151至200的记录。通过将事务日志文件段904和事务日志文件段906应用于增量备份902,可以将数据库还原到事务151至200之间的任何事务。事务日志文件段908存储已应用于数据库的事务201至250的记录。通过将事务日志文件段904、事务日志文件段906和事务日志文件段908应用于增量备份902,可以将数据库还原到事务151至200之间的任何事务。事务日志文件段912存储已应用于数据库的事务251至350的记录。通过将事务日志文件段904、事务日志文件段906和事务日志文件段908应用于增量备份902,可以将数据库还原到事务251至350之间的任何事务。增量备份910表示在第300事务处数据库的状态。事务日志文件段912存储已应用于数据库的事务251至350的记录。通过将事务日志文件段912应用于增量备份910,可以将数据库还原到事务301至350之间的任何事务。
星号913表示数据库还原到了由星号909表示的特定时间点后的数据库。在一些实施例中,星号913和星号909对应于数据库的第225事务。事务日志文件段914对应于数据库还原到了由星号909表示的特定时间点后进行的数据库事务。事务日志文件段914包括对数据库进行的事务226至325的记录。事务日志文件段908包括事务201至250的记录,事务日志文件段912包括事务251至350的记录。在事务日志文件段914和事务日志文件908、912之间重叠的事务编号是事务226至325。虽然事务编号可能会重叠,但是实际事务可能会有所不同。星号915表示特定事务处数据库的状态。例如,星号915可以表示在第310事务处数据库的状态。可以经由增量备份902并应用事务日志文件段904、事务日志文件段906、事务日志文件段908的一部分(例如事务201至225)和事务日志文件段914的一部分(例如,事务226至310),将数据库还原到由星号915表示的时间点。与通过增量备份910和事务日志文件段912或通过增量备份902和日志增量文件904、906、908、912将数据库还原到第310事务相比,将数据库还原到星号915表示的特定时间点(即第310事务)将把数据库还原到一不同状态,因为事务日志文件段914和事务日志文件908、912之间的重叠事务226至310不必相同。因此,在第310事务处存在两个不同版本的数据库。
在所示的示例中,接收到将数据库还原到星号915表示的特定时间的请求。在一些实施例中,星号915对应于数据库的第310事务。为了将数据库还原到第310事务,经由增量备份902的数据库状态是第100事务处数据库的状态。事务日志文件段904可以应用于增量备份902,以将数据库还原到第150事务。事务日志文件段906可以应用于修改后的数据库,以将数据库还原到第200事务。事务日志文件段908的事务201至225可以应用于修改后的数据库,以将数据库还原到第225事务。事务日志文件段914的事务226至310可以应用于修改后的数据库,以将数据库还原到第310事务。如图9B所示,增量备份902、910和事务日志文件段904、906、908、912超过了保留时间段911。可以通过增量备份910和事务日志文件段912将数据库还原到第310事务,但是,该数据库版本不是数据库的当前版本。如果从存储系统中删除了增量备份902和事务日志文件段904、906、908,则存储系统将无法将数据库还原到由星号915表示的特定时间。增量备份910和912可能是因为那些备份数据实例超过了保留时间段并且不被需要将数据库还原到保留时间段内的备份数据实例,所以将它们从存储系统中删除。但是,增量备份902和事务日志文件段904、906、908可能不会从存储系统中删除,因为即使那些备份数据实例超过了保留时间段,也需要它们以将数据库还原到保留时间内的备份数据实例。
图9C是示出备份数据实例的树表示的框图。在所示示例中,树表示980是来自图9B的备份数据实例的表示。树表示980包括增量备份902、事务日志文件段904、事务日志文件段906、事务日志文件段908、增量备份910、事务日志文件段912、事务日志文件段914和增量备份916。
增量备份902表示在第100事务处数据库的状态。事务日志文件段904对应于数据库事务0至150。事务日志文件段906对应于数据库事务151至200。事务日志文件段906对应于数据库事务151至200。事务日志文件段908对应于数据库事务201至250。增量备份910表示在第300事务处数据库的状态。事务日志文件段912对应于数据库事务251至350。事务日志文件段914对应于在数据库还原到了第225事务后的数据库事务226至325。增量备份916表示数据库还原到了第225事务后在第400事务处数据库的状态。
如在树表示980中所见,在数据库还原到特定时间点之后,数据库的不同版本可能存在。在一些实施例中,如果数据实例超过保留时间段,则备份数据实例可以被标记为“删除”。例如,关于保留时间段911,增量备份902、910和事务日志文件段904、906、908、912可以被标记为已删除。事务日志文件段914和增量备份916在保留时间段内。由于需要增量备份902和事务日志文件段904、906、908以将数据库还原到与事务日志文件段914相关的任何事务,因此增量备份902和事务日志文件段904、906、908可以不标记为“删除”而标记为“保留”。由于不需要增量备份910和事务日志文件段912以将数据库还原到与事务日志文件段914相关的任何事务,因此可以删除那些备份数据实例。
图10是示出用于维护备份的过程的实施例的流程图。在所示的示例中,过程1000可以由诸如辅助存储系统112的存储系统执行。可以在与节点相关联的保留时间段期满时执行过程1000。
在1002处,备份数据实例被标识为已超过保留时间段。备份数据实例可以是全量备份、增量备份或事务日志文件段。备份数据的每个实例都有对应的创建日期和对应的保留时间段。例如,相应的保留时间段可以指示在自对应的创建日期起经过一定时间段之后将要删除备份数据实例(例如,在创建日期后30天删除数据实例)。
例如,如图9A所示,增量备份902被标识为已超过保留时间段903。如图9B所示,增量备份902、910和事务日志文件段904、906、908、912被标识为已超过保留时间段911。
在1004处,确定是否需要所标识的备份数据实例以将数据库还原到保留时间段内的特定时间点。如果保留时间段内的数据实例直接或间接引用了超过保留时间段的数据实例,则可能需要数据实例以将数据库还原到保留时间段内的特定时间点。例如,如果数据实例是保留期之外和/或还原点之前的第一个备份实例,则可能需要数据实例以将数据库还原到特定时间。如果数据实例被保留时间段内的数据实例直接或间接引用,则可能需要数据实例以将数据库还原到特定时间。如图9A所示,需要增量备份902以将数据库还原到星号909表示的特定时间点。如图9B和9C所示,备份数据实例,事务日志文件段914直接引用事务日志文件段908并间接引用增量备份902和事务日志文件904和906。备份数据实例,事务日志文件段914不引用增量备份910和事务日志文件段912。
如果需要所标识的备份数据实例,则过程1000进行到1006,并且保留备份数据实例。如果不需要所标识的备份数据实例,则过程1000进行到1008,并且删除备份数据实例。
尽管出于清楚理解的目的已经详细地描述了前述实施例,但是本发明不限于所提供的细节。有许多实施本发明的替代方式。所公开的实施例是说明性的而非限制性的。

Claims (19)

1.一种由辅助存储系统执行的方法,所述方法包括:
通过创建与存储卷的版本相关联的文件系统元数据快照树,执行对包括数据库的数据的所述存储卷的至少一部分内容的备份,其中,所述版本与第一时间点相关联;
识别(504,604)与特定版本相关联的文件系统元数据快照树,其中,所述特定版本与特定时间点相关联,所述特定时间点晚于所述第一时间点;
创建与所述特定版本相关联的文件系统元数据快照树的副本,其中,创建所述文件系统元数据快照树的所述副本包括:创建所述文件系统元数据快照树的根节点的副本并且复制一个或多个对与所述特定版本相关联的所述文件系统元数据快照树的一个或多个较低层节点的引用(506,606);
基于与所述数据库相关联的一个或多个事物日志文件,修改所复制的与所述特定版本相关联的文件系统元数据快照树,以创建经修改的文件系统元数据快照树(808),其中,经修改的所述文件系统元数据快照树与指定的时间点相关联,所述指定的时间点晚于所述特定时间点;以及
将与所修改的文件系统元数据快照树相关联的数据复制到指定位置(508)。
2.根据权利要求1所述的方法,进一步包括:从所述文件系统元数据快照树的所述根节点的副本遍历所述文件系统元数据快照树,以提供对于版本的所述文件系统元数据的完整视图。
3.根据权利要求1所述的方法,其中,响应于接收到包括所述数据库的所述数据的所述存储卷,确定要执行所述备份。
4.根据权利要求1所述的方法,其中,至少部分地通过使与所述数据库相关联的数据库应用程序静默,准备要被备份的所述数据库。
5.根据权利要求1所述的方法,其中,所述存储卷的所述至少一部分内容包括与所述数据库相关联的元数据。
6.根据权利要求1所述的方法,其中,执行对包括所述数据库的数据的存储卷的至少一部分内容的所述备份包括:通过添加一个或多个新的叶节点和一个或多个新的中间节点来跟踪一个或多个更改,其中,所述一个或多个新的叶节点和一个或多个新的中间节点链接到所述文件系统元数据快照树的所述根节点的副本。
7.根据权利要求1所述的方法,还包含:删除所述文件系统元数据快照树的所述根节点的副本。
8.根据权利要求1所述的方法,还包括:提供对与所述文件系统元数据快照树的所述根节点的副本相关联的所述数据的访问。
9.根据权利要求1所述的方法,其中,基于一个或多个事物日志文件,修改所述文件系统元数据快照树包括:应用在所述事物日志文件的特定日志之后发生的一系列日志中的一个或多个日志,其中,所述事物日志文件的所述特定日志对应于与所述特定时间点相关联的所述文件系统元数据快照树的创建。
10.根据权利要求9所述的方法,其中,所修改的文件系统元数据快照树与所述指定的时间点的所述数据库相关联。
11.根据权利要求1所述的方法,其中,所述一个或多个事物日志文件的每个事物日志文件包括相对于数据库进行的一系列事务,并且每个事物与对于所述文件系统元数据快照树的修改相对应。
12.根据权利要求11所述的方法,进一步包括:应用所述一系列事务中的一个或多个事务直至与所述指定的时间点对应的事物,所述指定的时间点晚于所述特定时间点。
13.根据权利要求12所述的方法,还包括:提供与所修改的文件系统元数据快照树相关联的数据以及与所述指定的时间点相关联的所述存储卷的内容。
14.根据权利要求1所述的方法,其中,所述存储卷的所述内容与所述存储卷内容的源的全量备份或增量备份相关联。
15.根据权利要求14所述的方法,还包括:确定所述存储卷的所述内容超过了保留时间段(1004)。
16.根据权利要求15所述的方法,还包括:确定是否需要所述存储卷的所述内容以将所述数据库还原到所述保留时间段内的特定时间点。
17.根据权利要求16所述的方法,还包括:基于是否需要所述存储卷的所述内容以将所述数据库还原到所述特定时间点,删除所述存储卷的所述内容。
18.一种辅助存储系统,包括:
处理器,以及
存储器,耦接到所述处理器并且所述存储器被配置为向所述处理器提供指令,
所述处理器被配置为:
通过创建与存储卷的版本相关联的文件系统元数据快照树,执行对包括数据库的数据的所述存储卷的至少一部分内容的备份,其中,所述版本与第一时间点相关联;
识别(504,604)与特定版本相关联的文件系统元数据快照树,其中,所述特定版本与特定时间点相关联,所述特定时间点晚于所述第一时间点;
创建与所述特定版本相关联的文件系统元数据快照树的副本,其中,创建所述文件系统元数据快照树的所述副本包括:创建所述文件系统元数据快照树的根节点的副本并且复制一个或多个对与特定版本的树数据结构相关联的所述文件系统元数据快照树的一个或多个较低层节点的引用(506,606);
基于与所述数据库相关联的一个或多个事物日志文件,修改所复制的与所述特定版本相关联的文件系统元数据快照树,以创建经修改的文件系统元数据快照树(808),其中,经修改的所述文件系统元数据快照树与指定的时间点相关联,所述指定的时间点晚于所述特定时间点;以及
将与所修改的文件系统元数据快照树相关联的数据复制到指定位置(508)。
19.一种非暂时性计算机可读存储介质,存储计算机指令,当所述计算机指令在计算机上执行时,使所述计算机:
通过创建与存储卷的版本相关联的文件系统元数据快照树,执行对包括数据库的数据的所述存储卷的至少一部分内容的备份,其中,所述版本与第一时间点相关联;
识别(504,604)与特定版本相关联的文件系统元数据快照树,其中,所述特定版本与特定时间点相关联,所述特定时间点晚于所述第一时间点;
创建与所述特定版本相关联的文件系统元数据快照树的副本,其中,创建所述文件系统元数据快照树的所述副本包括:创建所述文件系统元数据快照树的根节点的副本并且复制一个或多个对与所述特定版本相关联的所述文件系统元数据快照树的一个或多个较低层节点的引用(506,606);
基于与所述数据库相关联的一个或多个事物日志文件,修改所复制的与所述特定版本相关联的文件系统元数据快照树,以创建经修改的文件系统元数据快照树(808),其中,经修改的所述文件系统元数据快照树与指定的时间点相关联,所述指定的时间点晚于所述特定时间点;以及
将与所修改的文件系统元数据快照树相关联的数据复制到指定位置(508)。
CN201880071393.1A 2017-08-31 2018-08-09 使用完全水合备份还原数据库 Active CN111316245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311011264.2A CN117130827A (zh) 2017-08-31 2018-08-09 使用完全水合备份还原数据库

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/693,013 2017-08-31
US15/693,013 US10776213B2 (en) 2017-08-31 2017-08-31 Restoring a database using a fully hydrated backup
PCT/US2018/045997 WO2019045987A1 (en) 2017-08-31 2018-08-09 RESTORING A DATABASE USING A FULLY MOISTURIZED SAFEGUARD

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311011264.2A Division CN117130827A (zh) 2017-08-31 2018-08-09 使用完全水合备份还原数据库

Publications (2)

Publication Number Publication Date
CN111316245A CN111316245A (zh) 2020-06-19
CN111316245B true CN111316245B (zh) 2023-08-08

Family

ID=65437380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880071393.1A Active CN111316245B (zh) 2017-08-31 2018-08-09 使用完全水合备份还原数据库

Country Status (4)

Country Link
US (3) US10776213B2 (zh)
CN (1) CN111316245B (zh)
AU (1) AU2018324425B2 (zh)
WO (1) WO2019045987A1 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160210306A1 (en) 2015-01-15 2016-07-21 Commvault Systems, Inc. Managing structured data in a data storage system
US10108687B2 (en) 2015-01-21 2018-10-23 Commvault Systems, Inc. Database protection using block-level mapping
US9904598B2 (en) 2015-04-21 2018-02-27 Commvault Systems, Inc. Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology
US20180321981A1 (en) * 2017-05-04 2018-11-08 Huawei Technologies Co., Ltd. System and method for self organizing data center
US11347600B2 (en) * 2017-09-12 2022-05-31 Western Digital Technologies, Inc. Database transaction log migration
US11210176B1 (en) * 2017-10-31 2021-12-28 EMC IP Holding Company, LLC Storage management system and method
US11210175B1 (en) * 2017-10-31 2021-12-28 EMC IP Holding Company, LLC Storage management system and method
US10802747B2 (en) * 2017-11-30 2020-10-13 Veritas Technologies Llc Performing backup operations using replicas
US11108694B2 (en) * 2018-03-30 2021-08-31 Ricoh Company, Ltd. Communication system and upload method
US10963356B2 (en) 2018-04-18 2021-03-30 Nutanix, Inc. Dynamic allocation of compute resources at a recovery site
US10896085B2 (en) * 2018-05-08 2021-01-19 Hewlett-Packard Development Company, L.P. Mitigating actions
US11663085B2 (en) * 2018-06-25 2023-05-30 Rubrik, Inc. Application backup and management
US10503612B1 (en) 2018-06-25 2019-12-10 Rubrik, Inc. Application migration between environments
US11194670B2 (en) 2018-08-03 2021-12-07 EMC IP Holding Company LLC Synthesizing fully hydrated cloud snapshots
US11126505B1 (en) * 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US10416919B1 (en) 2018-08-28 2019-09-17 Cohesity, Inc. Integrated hierarchical storage movement
US10817387B2 (en) * 2018-08-29 2020-10-27 Servicenow, Inc. Auto point in time data restore for instance copy
US11221983B1 (en) * 2018-08-29 2022-01-11 EMC IP Holding Company LLC Multi-level indexing of backup files
USD886143S1 (en) 2018-12-14 2020-06-02 Nutanix, Inc. Display screen or portion thereof with a user interface for database time-machine
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11010336B2 (en) 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US10649952B1 (en) * 2019-01-23 2020-05-12 Cohesity, Inc. Using a secondary storage system to maintain functionality of a database during database migration
US11269732B2 (en) 2019-03-12 2022-03-08 Commvault Systems, Inc. Managing structured data in a data storage system
CN111858145B (zh) * 2019-04-25 2024-07-09 伊姆西Ip控股有限责任公司 数据备份与恢复的方法、设备和计算机程序产品
US11347881B2 (en) * 2020-04-06 2022-05-31 Datto, Inc. Methods and systems for detecting ransomware attack in incremental backup
US11210319B2 (en) * 2019-06-28 2021-12-28 EMC IP Holding Company LLC Replication progress for UPIT snapshots
US11601443B2 (en) * 2019-09-25 2023-03-07 Acronis International Gmbh System and method for generating and storing forensics-specific metadata
CN110704412A (zh) * 2019-09-29 2020-01-17 苏州浪潮智能科技有限公司 一种元数据修复方法、装置、设备及存储介质
US11429559B2 (en) * 2020-05-29 2022-08-30 EMC IP Holding Company LLC Compliance recycling algorithm for scheduled targetless snapshots
US11354268B2 (en) * 2020-01-08 2022-06-07 EMC IP Holding Company LLC Optimizing snapshot creation
US11467925B2 (en) 2020-01-30 2022-10-11 Rubrik, Inc. Exporting a database to a native database recovery environment
US11604761B2 (en) 2020-01-30 2023-03-14 Rubrik, Inc. Utilizing a tablespace to export from a foreign database recovery environment
US11360860B2 (en) 2020-01-30 2022-06-14 Rubrik, Inc. Exporting a database from a foreign database recovery environment
US11609828B2 (en) 2020-01-30 2023-03-21 Rubrik, Inc. Utilizing a tablespace to export to a native database recovery environment
US11175997B2 (en) * 2020-02-07 2021-11-16 EMC IP Holding Company LLC Using business continuity and disaster recovery for any point in time backup
US11630597B2 (en) 2020-02-27 2023-04-18 EMC IP Holding Company LLC Any point in time backups and tier one storage replication
US11372811B1 (en) * 2020-03-31 2022-06-28 Amazon Technologies, Inc. Optimizing disk volume scanning using snapshot metadata
US11494105B2 (en) * 2020-05-01 2022-11-08 Cohesity, Inc. Using a secondary storage system to implement a hierarchical storage management plan
US11422727B2 (en) 2020-05-13 2022-08-23 Cohesity, Inc. Restoring a storage system using file relocation metadata
US11921589B2 (en) 2020-06-23 2024-03-05 EMC IP Holding Company LLC Any point in time backup on secondary storage for distributed consistency groups
CN114065724A (zh) * 2020-08-07 2022-02-18 伊姆西Ip控股有限责任公司 用于元数据比较的方法、设备和计算机程序产品
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
CN112114999A (zh) * 2020-09-01 2020-12-22 阿里云计算有限公司 一种数据备份方法、数据恢复方法、装置及电子设备
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11698743B2 (en) 2020-11-13 2023-07-11 Cohesity, Inc. Efficient backup after a restore operation
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11579983B2 (en) * 2021-01-19 2023-02-14 EMC IP Holding Company LLC Snapshot performance optimizations
US11748327B2 (en) * 2021-01-29 2023-09-05 Snowflake Inc. Streams using persistent tables
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
US11669404B2 (en) * 2021-05-28 2023-06-06 EMC IP Holding Company LLC Efficient access-based reallocation of backup data within an object storage
US20230029677A1 (en) * 2021-07-29 2023-02-02 Nutanix, Inc. Technique for efficiently indexing data of an archival storage system
US11841774B2 (en) * 2021-09-27 2023-12-12 Rubrik, Inc. Integration of database with distributed storage system
US11803368B2 (en) 2021-10-01 2023-10-31 Nutanix, Inc. Network learning to control delivery of updates
US20240061756A1 (en) * 2021-10-14 2024-02-22 Jpmorgan Chase Bank, N.A. Data restore testing
US20230177069A1 (en) * 2021-12-08 2023-06-08 Vmware, Inc. Efficient journal log record for copy-on-write b+ tree operation
US11829354B2 (en) * 2021-12-28 2023-11-28 Vast Data Ltd. Managing a read statement of a transaction
CN117873955A (zh) * 2022-10-11 2024-04-12 成都华为技术有限公司 文件系统管理方法、装置和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093443A1 (en) * 2001-11-15 2003-05-15 Huxoll Vernon F. System and method for creating online snapshots
US7373364B1 (en) * 2002-03-05 2008-05-13 Network Appliance, Inc. System and method for creating a point-in-time restoration of a database file
CN101326497A (zh) * 2005-12-13 2008-12-17 国际商业机器公司 产生到特定时间点的备份集
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
US8943282B1 (en) * 2012-03-29 2015-01-27 Emc Corporation Managing snapshots in cache-based storage systems
US8990162B1 (en) * 2011-09-30 2015-03-24 Emc Corporation Metadata generation for incremental backup
US20150370502A1 (en) * 2014-06-19 2015-12-24 Cohesity, Inc. Making more active use of a secondary storage system
US20160034356A1 (en) * 2014-08-04 2016-02-04 Cohesity, Inc. Backup operations in a tree-based distributed file system
US20160147614A1 (en) * 2014-11-25 2016-05-26 Kaushal MITTAL Synchronized Backup and Recovery of Database Systems
US20170060449A1 (en) * 2015-08-28 2017-03-02 Vmware, Inc. Multiple hierarchies of snapshots

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823436B2 (en) * 2001-10-02 2004-11-23 International Business Machines Corporation System for conserving metadata about data snapshots
US7523277B1 (en) * 2005-03-30 2009-04-21 Symantec Operating Corporation Transient point-in-time images for continuous data protection
US8150810B1 (en) * 2006-12-21 2012-04-03 Symantec Corporation Method and apparatus for file sharing between continuous and scheduled backups
US8818951B1 (en) * 2011-12-29 2014-08-26 Emc Corporation Distributed file system having separate data and metadata and providing a consistent snapshot thereof
US9311014B2 (en) * 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
US9015123B1 (en) * 2013-01-16 2015-04-21 Netapp, Inc. Methods and systems for identifying changed data in an expandable storage volume
US9811542B1 (en) * 2013-06-30 2017-11-07 Veritas Technologies Llc Method for performing targeted backup
WO2015074033A1 (en) * 2013-11-18 2015-05-21 Madhav Mutalik Copy data techniques
US10140189B2 (en) * 2015-04-28 2018-11-27 International Business Machines Corporation Database recovery and index rebuilds
US10049020B2 (en) * 2015-05-23 2018-08-14 Sybase, Inc. Point in time recovery on a database
US10394660B2 (en) * 2015-07-31 2019-08-27 Netapp, Inc. Snapshot restore workflow
US9892276B2 (en) * 2015-11-11 2018-02-13 International Business Machines Corporation Verifiable data destruction in a database
US9928266B2 (en) * 2016-06-03 2018-03-27 Workiva Inc. Method and computing device for minimizing accesses to data storage in conjunction with maintaining a B-tree
US10747778B2 (en) * 2017-07-31 2020-08-18 Cohesity, Inc. Replication of data using chunk identifiers

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093443A1 (en) * 2001-11-15 2003-05-15 Huxoll Vernon F. System and method for creating online snapshots
US7373364B1 (en) * 2002-03-05 2008-05-13 Network Appliance, Inc. System and method for creating a point-in-time restoration of a database file
CN101326497A (zh) * 2005-12-13 2008-12-17 国际商业机器公司 产生到特定时间点的备份集
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
US8990162B1 (en) * 2011-09-30 2015-03-24 Emc Corporation Metadata generation for incremental backup
US8943282B1 (en) * 2012-03-29 2015-01-27 Emc Corporation Managing snapshots in cache-based storage systems
US20150370502A1 (en) * 2014-06-19 2015-12-24 Cohesity, Inc. Making more active use of a secondary storage system
US20160034356A1 (en) * 2014-08-04 2016-02-04 Cohesity, Inc. Backup operations in a tree-based distributed file system
US20160147614A1 (en) * 2014-11-25 2016-05-26 Kaushal MITTAL Synchronized Backup and Recovery of Database Systems
US20170060449A1 (en) * 2015-08-28 2017-03-02 Vmware, Inc. Multiple hierarchies of snapshots

Also Published As

Publication number Publication date
US20210004295A1 (en) 2021-01-07
US20190065322A1 (en) 2019-02-28
AU2018324425B2 (en) 2022-04-14
CN111316245A (zh) 2020-06-19
US20230350761A1 (en) 2023-11-02
AU2018324425A1 (en) 2020-04-16
WO2019045987A1 (en) 2019-03-07
US11740974B2 (en) 2023-08-29
US10776213B2 (en) 2020-09-15

Similar Documents

Publication Publication Date Title
CN111316245B (zh) 使用完全水合备份还原数据库
US11561716B2 (en) Fast migration of metadata
US11372824B2 (en) Remotely mounted file system with stubs
EP3451173B1 (en) Restoring a database using a fully hydrated backup
US10628270B1 (en) Point-in-time database restoration using a reduced dataset
US11663171B2 (en) Efficient database migration using an intermediary secondary storage system
US12013763B2 (en) Continuous data protection using a write filter
US11853581B2 (en) Restoring a storage system using file relocation metadata
US20220155962A1 (en) Efficient backup after a restore operation
EP3454231B1 (en) Remotely mounted file system with stubs
US11874805B2 (en) Remotely mounted file system with stubs
US11704037B2 (en) Deduplicated storage disk space utilization
EP3451141B1 (en) Snapshot archive management
US12001685B2 (en) Performing an in-line erasure coding process using a write-ahead log

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant