CN113424170A - 使用中介辅助存储系统的高效数据库迁移 - Google Patents

使用中介辅助存储系统的高效数据库迁移 Download PDF

Info

Publication number
CN113424170A
CN113424170A CN202080009512.8A CN202080009512A CN113424170A CN 113424170 A CN113424170 A CN 113424170A CN 202080009512 A CN202080009512 A CN 202080009512A CN 113424170 A CN113424170 A CN 113424170A
Authority
CN
China
Prior art keywords
database
data
backup
server
tree
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.)
Pending
Application number
CN202080009512.8A
Other languages
English (en)
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
Cohesity Inc
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
Publication of CN113424170A publication Critical patent/CN113424170A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • 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/119Details of migration of file systems
    • 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/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

本公开的实施方案涉及控制与备份和迁移数据库的内容的至少一部分相关联的停机时间量的技术。实施方案提供了一种执行备份过程的方法,备份过程包括:从第一服务器接收托管在第一服务器上的数据库的内容的至少一部分;将所接收的数据库内容存储在跟踪数据库内容的不同备份版本之间的变化的辅助存储系统中;接收将托管在第一服务器上的数据库的内容迁移到第二服务器的请求;以及执行迁移过程,迁移过程包括:使用辅助存储系统向第二服务器提供数据库内容的一个或多个所述备份版本,其中对于托管在第一服务器上的、迁移过程未完成的数据库内容,辅助存储系统确定自前一迁移过程以来的变化,并且使用确定的变化来确定是否发送命令,该命令使通过托管在第一服务器上的数据库进行的写操作被阻止。

Description

使用中介辅助存储系统的高效数据库迁移
背景技术
数据库可与一个或多个文件相关联。数据库可与包含模式和数据的主数据库文件以及包含由运行该数据库的服务器完成的所有事务的日志信息的日志文件相关联。
支持此类数据库的硬件和/或软件的发展可能触发将一个或多个文件从当前数据库迁移到不同数据库的需要。与数据库相关联的一个或多个文件可能占用大量存储空间(例如,10TB),并且迁移与一个或多个文件相关联的数据可能需要很长时间(例如,10小时)。可以控制当前数据库以便在所谓的停机时间的时段内防止通过数据库进行的写操作,以防止与数据库相关联的一个或多个文件与迁移到不同数据库的文件不一致。考虑到对数据库中的数据进行的各种函数调用,这种与数据库相关联的停机时间的量可能是不可接受的和/或不切实际的。
发明内容
本文公开的实施方案涉及控制与备份和迁移数据库的内容的至少一部分相关联的停机时间的量的技术。
根据本公开的第一方面,提供了一种方法,其包括:执行备份过程,所述备份过程包括:从第一服务器接收托管在所述第一服务器上的数据库的内容的至少一部分;将所接收的数据库内容存储在辅助存储系统中,所述辅助存储系统跟踪所述数据库内容的不同备份版本之间的变化;接收将托管在所述第一服务器上的所述数据库的内容迁移到第二服务器的请求;以及执行迁移过程,所述迁移过程包括:使用所述辅助存储系统向所述第二服务器提供所述数据库内容的一个或多个所述备份版本,其中对于托管在所述第一服务器上的、所述迁移过程未完成的数据库内容,所述辅助存储系统确定自前一迁移过程以来的变化,并且使用所确定的变化来确定是否发送命令,所述命令使通过所述数据库进行的写操作被阻止。
该命令可以是这样的通知,该通知使与辅助存储系统相关联的软件应用程序通知操作者对托管在第一服务器上的、迁移过程未完成的数据库内容执行迁移过程的估计的时间量。替代地,该命令可以是这样的通知,该通知使与第一服务器相关联的软件应用程序通知操作者对托管在第一服务器上的、迁移过程未完成的数据库内容执行迁移过程的估计的时间量。软件应用程序可以向操作者提供发送指令的选项,这使通过数据库进行的写操作被阻止。例如,数据库可以转换为只读状态并将剩余部分从辅助存储系统迁移到托管目标数据库的目标服务器。在一些布置中,第一服务器可以与外部输入隔离。
替代地,该命令可以是这样的指令,该指令使第一服务器自动阻止通过数据库进行写操作,例如通过将数据库转换为只读状态或将第一服务器与外部输入隔离。
备份过程还可以包括:配置所述辅助存储系统以确定自前一备份过程以来托管在所述第一服务器上的所述数据库的内容的变化。
可以将所接收的数据库内容以数据块的形式存储在所述辅助存储系统中,并且所述迁移过程还可以包括:对于尚未提供给所述第二服务器的每个备份版本,标识一个或多个组的数据块,每个组包括自前一迁移过程以来已发生变化的至少一个数据块;以及向所述第二服务器提供一个或多个标识组的数据块。
可以估计执行所述迁移过程所需的时间量,其中在执行所述迁移过程的估计的时间量不小于停机时间阈值的情况下,针对自前一迁移过程以来已经生成的备份版本执行所述迁移过程,并且在所述迁移过程中,与托管在所述第一服务器上的数据库相关联的一个或多个用户可访问所述数据库,并且其中在估计的时间量小于停机时间阈值的情况下,针对自前一迁移过程以来已经生成的备份版本执行所述迁移过程,并且托管在所述第一服务器上的所述数据库被阻止处理写操作。
根据本公开的第二方面,提供了一种用于数据迁移的系统。所述系统可以包括:一个或多个处理器;以及存储器,所述存储器被配置成向所述一个或多个处理器提供指令,所述处理器在被配置有所述指令时可操作以使所述系统执行如本文公开的实施方案中的任一个实施方案所述的方法。
根据本公开的第三方面,提供了一种计算机程序产品,所述计算机程序产品体现在非暂时性计算机可读存储介质中并且包括计算机指令,所述计算机指令在由处理系统执行时使所述处理系统执行如本文公开的实施方案中的任一个实施方案所述的方法。
附图说明
在以下详细描述和附图中公开了本发明的各种实施方案。
图1A是例示用于迁移数据库内容的系统的实施方案的框图。
图1B是例示用于迁移数据库内容的系统的实施方案的框图。
图1C是例示用于迁移数据库内容的系统的实施方案的框图。
图1D是表示驻留在存储卷中的数据的框图。
图1E是表示驻留在存储卷中的数据的框图。
图2A是例示树形数据结构的实施方案的框图。
图2B是例示克隆的快照树的实施方案的框图。
图2C是例示修改快照树的实施方案的框图。
图2D是例示经修改的快照树的实施方案的框图。
图3A是例示树形数据结构的实施方案的框图。
图3B是例示克隆的文件元数据树的实施方案的框图。
图3C是例示修改树形数据结构的文件元数据树的实施方案的框图。
图3D是例示经修改的文件元数据树的实施方案的框图。
图4A是例示文件系统数据的视图的实施方案的示意图。
图4B是例示文件系统数据的视图的实施方案的示意图。
图5是例示根据一些实施方案的用于确定与数据库文件相关联的变化的过程的流程图。
图6A是例示根据一些实施方案的用于迁移数据库内容的过程的流程图。
图6B是例示根据一些实施方案的用于迁移数据库内容的过程的流程图。
图7是例示根据一些实施方案的用于完成数据库内容的迁移的过程的流程图。
具体实施方式
本发明可以以多种方式实施,包括作为过程;作为装置;作为系统;作为物质的组成;作为体现在计算机可读存储介质上的计算机程序产品;和/或作为处理器,诸如被配置成执行指令的处理器,所述指令存储在与该处理器耦合的存储器上和/或由所述存储器提供。在本说明书中,这些实施方式或本发明可以采用的任何其他形式可以称为技术。通常,可以在本发明的范围内改变所公开的过程的步骤的顺序。除非另有说明,否则描述为被配置成执行任务的诸如处理器或存储器之类的部件可以被实现为:通用部件,该通用部件被临时配置成在给定的时间执行该任务;或特定部件,该特定部件被制造成执行该任务。如本文中所使用的,术语“处理器”是指被配置成处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核。
下文提供对本发明的一个或多个实施方案的详细描述以及说明本发明原理的附图。结合这些实施方案描述本发明,但本发明不限于任何实施方案。本发明的范围仅由权利要求限定,并且本发明涵盖各种替代方案、修改方案和等同物。在以下描述中阐述了许多具体细节以便透彻理解本发明。这些细节是为了示例的目的而提供的,并且本发明可以根据权利要求来实践,而无需这些特定细节中的一些或全部特定细节。为清楚起见,并未详细描述本发明的相关技术领域中已知的技术材料,以免不必要地混淆本发明。
主系统或源包括源数据库并将与该数据库相关联的数据存储在一个或多个数据库文件中。一个或多个数据库文件可以包括主数据库文件和日志文件。辅助存储系统使主系统执行备份过程,以根据备份策略生成备份快照,并将备份快照作为特定备份版本存储到辅助存储系统中。备份快照表示主系统在特定时间点时的状态(例如,文件系统数据的状态)。备份快照可以包括一个或多个数据库文件的数据。备份快照可以是完全备份快照,也可以是增量备份快照。完全备份快照(下文参考图1D进行更详细的描述)存储主系统在特定时间点时的整个状态,并且包括与一个或多个数据库文件相关联的所有数据。下文参考图1F更详细地描述的增量备份快照包括与未在前一备份快照中备份的主系统相关联的数据,并且可以包括与未在前一备份快照中备份的一个或多个数据库文件相关联的数据。
辅助存储系统摄取并存储备份快照的文件系统数据。辅助存储系统的文件系统管理器优选地使用树形数据结构来组织备份快照的文件系统数据。树形数据结构的一个示例是快照树(例如,Cohesity Snaptree),其可以基于B+树形结构(或在其他实施方案中的其他类型的树形结构)。树形数据结构提供与备份快照相对应的文件系统数据的视图。与备份快照相对应的文件系统数据的视图由文件系统元数据快照树和一个或多个文件元数据树组成。文件元数据树是存储与文件相关联的元数据的快照结构,并且可以对应于备份快照中所包括的文件之一。例如,文件元数据树可以对应于数据库文件之一(例如,主数据库文件、日志文件等),并且在下文中可以被称为备份版本。
文件系统元数据快照树是完全融合备份的表示,因为它提供了主系统在特定时刻的完整视图。完全融合备份是准备好进行使用的备份,而不必重建多个备份来使用它。常规系统可以通过以下方式来重建备份:从完全备份开始,并将与一个或多个增量备份相关联的一个或多个变化应用于与完全备份相关联的数据。相比之下,可以从文件系统元数据快照树中确定在特定时间存储在主系统上的任何文件以及文件的内容(其存在相关联的备份快照),无论相关联的备份快照是完全备份快照还是增量备份快照。创建主系统的增量备份快照可以包括仅复制主系统的先前未备份的数据。然而,与增量备份快照相对应的文件系统元数据快照树提供了主系统在特定时刻的完整视图,因为它包括对主系统的先前存储的数据的引用。例如,与文件系统元数据快照树相关联的根节点可以包括对与一个或多个先前备份快照相关联的节点的一个或多个引用,以及对与当前备份快照相关联的节点的一个或多个引用。这大大节省了还原、恢复或复制数据库文件所需的时间量。相比之下,传统的恢复/还原方法可能需要大量的时间、存储和计算资源来从完全备份和一系列增量备份重建特定版本的数据库文件。下文参考图2A至图3D提供了文件系统快照树的另外的细节。
本文公开的实施方案涉及将托管在主系统(源)上的数据库中存储的数据迁移到托管在目标服务器上的目标数据库。在一个实施方案中,托管在目标服务器上的目标数据库是升级后的数据库。在另一个实施方案中,托管目标数据库的目标服务器是升级后的服务器。在又一个实施方案中,目标数据库是升级后的数据库并且托管目标数据库的目标服务器是升级后的服务器。在另外的实施方案中,目标数据库是不同的并且不一定是升级的数据库,并且出于诸如安全等原因,数据已经迁移到这个不同的数据库。
待迁移的一个或多个数据库文件可能相当大(例如,10TB),使得与一个或多个数据库文件相关联的数据需要很长时间(例如,10小时)迁移到托管目标数据库的目标服务器。一种常规的解决方案是关闭在主系统上运行的数据库并迁移与一个或多个数据库文件相关联的数据。可以关闭源数据库以确保与目标数据库相关联的一个或多个数据库文件与和源数据库相关联的一个或多个数据库文件一致。源数据库每秒可以接收来自多个用户的数十、数百甚至数千个数据库请求(例如,读/写)。数据库处于脱机状态时,未满足的数据库请求的数量每秒都会增加。这种常规的解决方案可导致数据库出现不可接受的停机时间量。
本文公开的实施方案教导了一种方法,该方法用于将数据从第一服务器(诸如可以包括上述源数据库)传输到第二服务器(诸如可以包括上述目标数据库)。从广义上讲,该方法涉及从源数据库使用备份过程,以及使用迁移过程来将此类备份数据提供给目标数据库。备份过程涉及从第一服务器接收托管在第一服务器上的数据库的内容的至少一部分。所接收的数据库内容存储在辅助存储系统中,该辅助存储系统跟踪数据库内容的不同备份版本之间的变化。接收到请求以将托管在第一服务器上的数据库的内容迁移到第二服务器。然后执行迁移过程,包括使用辅助存储系统向第二服务器提供数据库内容的一个或多个所述备份版本。对于托管在第一服务器上的、迁移过程未完成的数据库内容,辅助存储系统确定自前一迁移过程以来的变化,并使用确定的变化来确定是否发送命令,该命令使通过数据库进行的写操作被阻止。
当数据在后台从辅助存储系统迁移到托管目标数据库的第二服务器时,与托管在主系统上的源数据库相关联的用户可继续使用该源数据库。辅助存储系统而不是主系统用于迁移数据库内容,以释放主系统的系统资源用于其他目的,诸如以响应一个或多个数据库请求。
在一个或多个备份版本的迁移过程完成后,存储在主系统上的数据库文件可能与存储在托管目标数据库的目标服务器上的数据库文件不一致,因为用户可能已经继续对主系统中保存的数据库文件做出改变,如上所述。辅助存储系统可以被配置成生成将这些变化迁移到托管目标数据库的第二服务器的估计的时间量,并发送命令。在一些实施方案中,该命令可以是这样的通知,该通知使与辅助存储系统相关联的软件应用程序将估计的时间量通知操作者。替代地,该命令可以是这样的通知,该通知使与第一服务器相关联的软件应用程序将估计的时间量通知操作者。软件应用程序然后可以向操作者提供发送指令的选项,该指令使通过数据库进行的写操作被阻止。例如,数据库可以转换为只读状态并将剩余部分从辅助存储系统迁移到托管目标数据库的目标服务器。
操作者可能因为与主系统上运行的数据库相关联的停机时间量太长而拒绝发送指令。例如,迁移变化可能需要一小时。在操作者拒绝发送指令的情况下,辅助存储系统对变化的数据执行备份过程,从而生成一个或多个另外的备份版本,并针对这些另外的备份版本执行迁移过程。在针对这些另外的备份版本执行迁移过程的同时,主系统还可以执行一个或多个增量备份快照,从而将又进一步的备份版本存储在辅助存储系统中。
在操作者同意发送指令并迁移所述一个或多个数据库文件的剩余部分的情况下(例如,停机时间量不太长),则源数据库可以转换为阻止写操作的状态,例如,源数据库可以转换为只读模式。替代地,主系统可以与外部输入隔离。在任一种情况下,辅助存储系统将一个或多个数据库文件的剩余部分迁移到托管目标数据库的目标服务器。
在其他实施方案中,在与数据迁移相关联的停机时间量小于停机时间阈值(例如,1分钟)的情况下,数据库自动转换为阻止通过数据库进行写操作的状态,并且变化从辅助存储系统迁移到托管目标数据库的目标服务器。停机时间阈值可以由与源数据库相关联的操作者指定。
将一个或多个数据库文件的剩余部分迁移(也就是说,在针对已创建和待迁移的备份版本执行迁移过程时将用户做出的那些改变迁移)到托管目标数据库的目标服务器以及确定是否发送命令以防止通过源数据库进行写操作的周期一直持续到停机时间量是可接受的停机时间量。在针对源数据库中的所有数据已完成迁移过程之后,与源数据库相关联的一个或多个用户可以被重新分配以成为与目标数据库相关联的用户。
每当迁移给定的剩余部分并且一个或多个用户继续使用源数据库时,可以减少与下一个迁移过程相关联的停机时间量。例如,执行包括一个或多个数据库文件的初始部分的迁移过程的初始实例可能需要10小时,执行包括一个或多个数据库文件的第一剩余部分的迁移过程的第二实例可能需要一小时,执行包括一个或多个数据库文件的第二剩余部分的迁移过程的第三实例可能需要三十分钟,...,并且执行包括一个或多个数据库文件的第(n-1)个剩余部分的迁移过程的第n个实例可能需要少于一分钟的时间。控制停机时间量的技术不仅可控制与源数据库相关联的停机时间量,还可确保在对一个或多个数据库文件做出附加改变之前,存储在主系统上的一个或多个数据库文件和存储在托管目标数据库的目标服务器上的一个或多个数据库文件彼此同步。在一个特定的使用案例中,与常规的迁移技术相比,与迁移相关联的停机时间量减少。
图1A是例示用于迁移数据库内容的系统的实施方案的框图。在示出的示例中,系统100包括主系统102、辅助存储系统112、服务器122和应用程序133。
主系统102是由一个或多个服务器、一个或多个计算设备、一个或多个存储设备和/或它们的组合组成的计算系统。主系统102由数据库103、存储卷104、变化块跟踪器105和备份代理106组成。主系统102可以是数据库服务器。
数据库103可以是被配置成从计算机化数据库输入和检索信息的计算机程序。数据库103的示例包括但不限于SQL服务器、Oracle数据库、Sybase、Informix、MySQL等。数据库103可以对应于数据库的第一版本。数据库103可以与一个或多个数据库文件相关联。数据库文件之一可以是主数据库文件。主数据库文件是包含与数据库相关联的模式和数据的文件。数据库文件之一可以是日志文件。日志文件是存储由主系统102完成的所有数据库事务的信息的文件。如上所述,可以指示数据库103转换为阻止通过数据库103进行写操作的状态。响应于如上所述的命令的接收,可以从操作者接收指令。替代地,命令可以由辅助存储系统112直接发送到主系统102。在其他实施方案中,可以从备份代理106接收此类命令。在其他实施方案中,可以从软件应用程序133接收命令。在其他实施方案中,可以从与主系统102相关联的用户接口(未示出)接收命令。
一个或多个数据库文件存储在存储卷104中。存储卷104可以被配置成存储与主系统102相关联的文件系统数据。文件系统数据可以包括一个或多个数据库文件、一个或多个非数据库文件以及与存储卷104相关联的元数据。存储在主系统的存储卷104中的数据库的内容包括块。块通常具有相同的大小。
变化块跟踪器105被配置成维护一个或多个变化对与主系统102相关联的文件系统数据的映射。例如,变化块跟踪器105可以维护一个或多个变化对一个或多个数据库文件的映射。如上所述,主系统102可以被配置成执行完全备份快照或增量备份快照。还如上所述,完全备份快照包括存储在存储卷104中的所有文件系统数据,而增量备份快照包括先前未备份的所有文件系统数据。变化块跟踪器105可用于标识文件系统数据以及与先前未备份的一个或多个数据库文件相关联的数据。在执行备份快照之后,可以清除与变化块跟踪器105相关联的映射。
变化块跟踪器105是这样的数据结构,该数据结构标识存储卷104中的哪些块由于通过例如应用程序133执行的操作而发生变化。在一些实施方案中,变化块跟踪器跟踪器105可以被实现为位图。位图指示给定块相对于所获取的先前备份快照是否发生变化。例如,位图可以是100位长,并且所有位都以0开头。如果自上次获取备份快照以来块已发生变化,则变化块跟踪器105使表示该块的位从0变为1。
备份代理106可以使主系统102执行备份快照并将存储在存储卷104中的文件系统数据发送到辅助存储系统112。备份代理106可以从辅助存储系统112接收命令以执行备份快照,这使辅助存储系统112从主系统(第一服务器)接收块的列表。
辅助存储系统接收到的块的列表可以包括托管在主系统(第一服务器)上的数据库中的所有块的列表。如下文参考图1D中示出的示例将描述的,在这种情况下,在由备份代理106启动的备份过程中接收到的托管在第一服务器上的数据库的内容的部分包括数据库中所有的块。这对应于完全备份,该完全备份例如可以是初始备份。
在其他实施方案中,辅助存储系统接收到的块的列表包括自前一备份过程以来已发生变化的块的列表。如下文参考图1E中示出的示例将描述的,在这种情况下,在由备份代理106启动的备份过程中接收到的托管在第一服务器上的数据库的内容的部分包括自前一备份过程以来已发生变化的块。
辅助存储系统112接收到的块的列表可以采用一个或多个组的块的列表的形式,并且可以在主系统102上通过合并过程被一起分组为一组块或变化的区域。合并过程将自上次获取备份快照以来发生变化的非连续块分组在一起。合并过程的目的是减少变化的区域的数量,同时保持变化区域的大小可管理,以减少将变化的区域写入辅助存储系统112的时间。
合并过程可以参考示例来解释,其中10个字节在32kB的示例性范围内发生了变化。发生变化的这10个字节分布在32kB的范围内,因此,如果在系统上执行十次单独的写入,那么就执行写操作所需的系统资源而言,这比只执行一次写入效率低得多。然而,如果要写入大量数据,则单个写入过程可能比十个单独的写入过程占用更多资源。本质上,这是一个约束优化问题,并且可以基于标准(诸如存储类型、操作系统特性、当前工作负荷、变化的区域的数量和变化的区域的分布)来配置合并过程以做出决策。应当理解,合并过程可以更频繁地用于硬盘驱动器而不是固态驱动器,固态驱动器更好地针对高度分布的变化区域进行了优化。
在一些实施方案中,备份代理106可以从辅助存储系统112接收命令以估计执行备份过程所需的时间量。该估计可以包括评估取决于以下各项中的一项或多项的算法:备份快照中的内容的部分中的字节数;存储在第一服务器上的那些字节的分布;以及可用于备份过程的第一服务器的线程数。
主系统102经由网络连接110耦合到辅助存储系统112。连接110可以是有线连接或无线连接。
辅助存储系统112是这样的存储系统,该存储系统被配置成摄取和存储经由连接110从主系统102接收的文件系统数据。辅助存储系统112可以由一个或多个存储节点111、113、115组成。每个存储节点可以具有其自己的对应的处理器。一个或多个存储节点可以是一个或多个固态驱动器、一个或多个硬盘驱动器或它们的组合。备份快照中所包括的文件系统数据存储在存储节点111、113、115中的一个或多个存储节点中。在一个实施方案中,辅助存储系统112由一个固态驱动器和三个硬盘驱动器组成。
辅助存储系统112包括文件系统管理器117。文件系统管理器117被配置成将来自主系统102的被接收在备份快照中的文件系统数据组织成树形数据结构。树形数据结构的示例是快照树(例如,Cohesity Snaptree),其可以基于B+树形结构(或在其他实施方案中的其他类型的树形结构)。树形数据结构提供与备份快照相对应的文件系统数据的视图。与备份快照相对应的文件系统数据的视图由快照树和多个文件元数据树组成,并且本质上该视图表示辅助存储系统112中的备份版本。文件元数据树可以对应于备份快照中所包括的文件之一。文件元数据树是存储与文件相关联的元数据的快照结构。例如,文件元数据树可以对应于数据库文件。文件系统管理器117被配置成对快照树和文件元数据树执行如本文所公开的一个或多个修改。快照树和文件元数据树存储在元数据存储器114中。元数据存储器114可以存储与备份快照相对应的文件系统数据的视图。元数据存储器还可以存储与小于极限大小的内容文件相关联的数据。
树形数据结构用于捕获备份快照的不同版本。通过允许快照树的较新版本的节点引用快照树的先前版本的节点,树形数据结构允许将与备份快照的不同版本(即,不同的快照树版本)相对应的一连串快照树链接在一起(例如,“快照树森林”)。例如,与第二备份快照相对应的第二快照树的根节点或中间节点可以引用与第一备份快照相对应的第一快照树的中间节点或叶节点。
快照树包括根节点、与根节点相关联的一个或多个中间节点的一个或多个级别,以及与最低中间级别的中间节点相关联的一个或多个叶节点。快照树的根节点包括指向一个或多个中间节点的一个或多个指针。每个中间节点包括指向其他节点(例如,较低的中间节点或叶节点)的一个或多个指针。叶节点可以存储文件系统元数据、与小于极限大小的文件相关联的数据、数据砖的标识符、指向文件元数据树(例如,Blob结构)的指针,或指向存储在辅助存储系统中的数据块的指针。
与小于或等于极限大小(例如,256kB)的文件相关联的数据可以存储在快照树的叶节点中。叶节点可以是索引节点(inode)。可以针对大于极限大小的文件生成文件元数据树。文件元数据树具有快照结构,并且被配置成存储与文件的版本相关联的元数据。该文件可以对应于数据库文件。
文件元数据树包括根节点、与根节点相关联的一个或多个中间节点的一个或多个级别,以及与最低中间级别的中间节点相关联的一个或多个叶节点。通过允许文件元数据树的较新版本的节点引用文件元数据树的先前版本的节点,与文件元数据树相关联的树形数据结构允许将与文件的不同版本相对应的一连串文件元数据树链接在一起。例如,与数据库文件的第二版本相对应的第二文件元数据树的根节点或中间节点可以引用与数据库文件的第一版本相对应的第一文件元数据树的中间节点或叶节点。
辅助存储系统112从主系统102接收的数据库内容被存储在数据块中。文件元数据树的叶节点包括与文件的一个或多个数据块相关联的数据砖的标识符或指向与文件的一个或多个数据块相关联的数据砖的指针。例如,文件元数据树对应于数据库文件,并且文件元数据树的叶节点可以包括指向与数据库文件的一个或多个数据块相关联的数据砖的指针或标识符。数据砖可以包括一个或多个数据块。在一些实施方案中,砖的大小为256kB。数据砖可以包括一个或多个数据块。一个或多个数据块可以在特定范围内(例如,4kB至64kB)具有可变长度。
使用存储在元数据存储器114中的将砖标识符与物理存储位置相匹配的数据结构(例如,列表、表格等)来标识数据砖的位置,或者可以基于指向数据砖的指针来标识数据砖的位置。在一些实施方案中,数据结构将砖标识符与数据库块标识符(例如,散列)相关联。该数据结构或不同的数据结构可以将数据块标识符与砖偏移相关联。数据块可以与数据块表格相关联,该数据块表格包含对应的数据块文件ID。数据块文件ID与数据块文件表格相关联,该数据块文件表格指示数据的位置(例如,数据块中的偏移量)。
可以针对数据块计算数据块标识符(例如,散列)。将数据块标识符与数据结构中所包括的条目进行比较,该数据结构存储与由辅助存储系统存储的数据块相关联的数据块标识符。在计算出的数据块标识符与数据结构的条目(例如,散列词典)相匹配的情况下,对具有计算出的数据块标识符的先前存储的数据块的引用可以存储在砖中。
在迁移过程中,可以关于存储在辅助存储系统112上的数据块运行合并过程。合并过程将在备份版本之间发生变化的非连续数据块一起分组为一组数据块,该组数据块形成变化的区域。然后可以将该变化的区域迁移到托管在目标服务器上的目标数据库,以有利地减少完成迁移过程所花费的时间。
与写入各个变化的数据块相比,由成组的数据块形成的变化的区域可花费较少的时间写入目标数据库。为此,可以将合并过程用作迁移过程的一部分。应当理解,当第一次执行迁移过程时,也就是说当将第一备份版本提供给第二服务器122时,可以认为构成该第一备份版本的所有数据块都已发生变化。在这种情况下,运行合并过程不太可能带来益处,因此不太可能用于该第一备份版本。
服务器122是由一个或多个服务器、一个或多个计算设备、一个或多个存储设备和/或它们的组合组成的计算系统。服务器122可以由数据库123和存储卷126组成。
数据库123可以是目标数据库。数据库123的示例包括但不限于SQL服务器、Oracle数据库、Sybase、Informix、MySQL等。数据库103可以对应于数据库的第一版本。数据库123可以与一个或多个数据库文件相关联。数据库文件之一可以是主数据库文件。另一个数据库文件可以是日志文件。一个或多个数据库文件存储在存储卷124中。存储卷124被配置成存储与服务器122相关联的文件系统数据。文件系统数据可以包括一个或多个数据库文件、一个或多个非数据库文件和/或与存储卷124相关联的元数据。服务器122包括代理126。代理126被配置成以数据库123可访问的方式组织与一个或多个迁移的数据库文件相关联的数据。
应用程序133分别经由网络连接130和网络连接140耦合到主系统102和辅助存储系统112。应用程序133可以在客户端设备(未示出)上运行。在其他实施方案中,应用程序133托管在云服务器上,该云服务器在云环境(例如,亚马逊网络服务、微软Azure、谷歌云等)中运行。与数据库103相关联的操作者可以经由网络连接(未示出)访问应用程序133。
应用程序133可以被配置成经由客户端设备的用户接口向与源数据库103相关联的操作者提供针对一个或多个数据库文件执行从辅助存储系统112到目标服务器122的迁移过程所需的估计的时间量。估计的时间量可以通过取决于以下各项中的一项或多项的算法来确定:自前一迁移过程以来生成的备份版本的数量,待迁移的标识组的数据块的数量,所述一个或多个标识组的数据块中的字节数,以及将字节写入第二服务器的时间。下文将更详细地描述另外的示例。估计的时间量还可以取决于与辅助存储系统112相关联的当前工作负荷。
应用程序133可以被配置成从与数据库103相关联的操作者接收命令,以将源数据库103转换为阻止通过源数据库103进行写操作的状态。响应于接收到命令,应用程序133向主系统102提供该命令以转换源数据库103。例如,主系统102可以响应命令将数据库103转换为只读状态,或者主系统102可以与外部输入隔离。
应用程序133可以被配置成经由网络连接140向辅助存储系统112提供命令,以将一个或多个数据库文件迁移到目标服务器122。响应于接收到命令,辅助存储系统122将一个或多个数据库文件迁移到目标服务器122。
图1B是例示用于迁移数据库内容的系统的实施方案的框图。在示出的示例中,系统150包括主系统102、辅助存储系统112、服务器122和应用程序133。
在示出的示例中,与数据库103相关联的操作者已向应用程序133提供命令,以将与数据库103相关联的一个或多个数据库文件从辅助存储系统112迁移到目标服务器122。该命令可以包括对一个或多个数据库文件的特定版本的选择。辅助存储系统112而不是主系统102迁移数据库内容,以释放主系统102的系统资源用于其他目的,诸如以响应一个或多个数据库请求。
一个或多个数据库文件的特定版本可以与和从主系统102接收的备份快照相对应的文件系统数据的特定视图以及因此其备份版本相关联。文件系统管理器117可以确定特定视图并遍历与该特定视图相对应的树形数据结构,以定位与一个或多个数据库文件的特定版本相关联的数据。辅助存储系统112执行迁移过程,以便向目标服务器122提供一个或多个数据库文件的特定备份版本。
主系统102通过以文件系统数据的一个或多个备份快照的形式向辅助存储系统112提供数据库内容来执行备份过程。一个或多个备份快照可以是如上所述的增量或完全备份快照,并且由辅助存储系统112存储作为备份版本。
作为备份过程的一部分提供给辅助存储系统112的文件系统数据的备份快照可以涉及与正在迁移的一个或多个数据库文件相关联的数据。例如,在关于在前一备份过程中提供给辅助存储系统112并正从辅助存储系统112迁移到服务器122的数据执行迁移过程时,从源数据库103获得内容的用户可以对存储在存储卷106中的数据库文件进行修改。因此,在针对一个或多个备份版本的迁移过程完成后,存储在存储卷104中的数据库文件可能与存储在存储卷124中的数据库文件不一致。
此外,当迁移过程正在进行时,辅助存储系统可以接收内容的一个或多个另外的部分作为完全或增量备份快照(使用上述技术)作为备份过程的另外的实例的一部分,并且将它们存储为一个或多个备份版本。因此,辅助存储系统112能够确定将该/这些一个或多个另外的备份版本从辅助存储系统112迁移到服务器122所需的时间量。构成所述一个或多个备份版本的这些另外的或剩余的内容部分对应于使存储在主系统102上的一个或多个数据库文件与存储在目标服务器122上的一个或多个数据库文件一致所需的数据。
如上所述,辅助存储系统112被配置成摄取和存储从主系统102接收的一个或多个后续备份快照中所包括的文件系统数据作为特定备份版本。文件系统管理器117被配置成基于从主系统102接收的备份快照中所包括的文件系统数据来更新树形数据结构。更新树形数据结构可以包括:克隆与上次备份快照相关联的视图,并基于备份快照中所包括的文件系统数据对克隆的视图执行一个或多个修改。更新树形数据结构可以取决于接收到块的(组)列表。克隆的视图可以包括对与一个或多个先前备份快照相关联的数据的引用以及对与当前备份快照相关联的数据的引用。因此,可以通过对与先前和当前备份快照相关联的数据的此类引用来标识辅助存储系统112的给定备份版本。
辅助存储系统112可以向应用程序133提供这样的通知,该通知包括迁移内容的剩余部分所需的已确定的时间量。在一些实施方案中,响应于接收到通知,应用程序133经由用户接口向与数据库103相关联的操作者提供迁移内容的剩余部分所需的已确定的时间量的指示。用户接口还可以向与数据库103相关联的操作者提供这样的选项:将数据库103转换为阻止通过数据库103进行写操作的状态,并且将内容的剩余部分从辅助存储系统112迁移到服务器122;或者这样的选项:在后台将内容的剩余部分从辅助存储系统112迁移到服务器122,同时与数据库103相关联的一个或多个用户可以继续使用数据库103。
与数据库103相关联的操作者可能因为与数据库103相关联的停机时间量太长而拒绝将数据库103转换为阻止通过数据库103进行写操作的状态。例如,迁移内容的剩余部分可能需要一小时。在操作者拒绝转换数据库103和迁移内容的剩余部分的情况下,辅助存储系统112可以被配置成迁移内容的剩余部分,并且与数据库103相关联的一个或多个用户可以继续使用数据库103,同时内容的剩余部分在后台从辅助存储系统112迁移到服务器122。
在数据库103被转换并且存储在存储卷104中的一个或多个数据库文件包括辅助存储系统112从主系统102接收的备份快照中未包括的数据的场景中,执行最后的备份过程,使得辅助存储系统112接收并存储最后的增量备份快照,以包括在迁移过程的最后的实例中。替代地,备份快照中未包括的数据可以从主系统102提供给服务器122。
在其他实施方案中,在与数据迁移相关联的停机时间量小于停机时间阈值(例如,1分钟)的情况下,数据库103自动转换为阻止通过数据库103进行写操作的状态,并且内容的剩余部分从辅助存储系统112迁移到服务器122。停机时间阈值可以由与数据库103相关联的操作者指定。应用程序133可以从辅助存储系统112接收这样的通知,该通知包括迁移一个或多个数据库文件的剩余部分所需的已确定的时间量,并且响应该通知向主系统102提供命令以将数据库103转换为阻止写操作的状态。阻止写操作的状态的示例包括数据库103的只读状态。替代地,该命令可以使主系统102与另外的外部输入隔离。
在数据库103没有被转换的场景中,应当理解,在包括内容的剩余部分的备份版本的迁移期间和/或之后,可能已经对保存在存储卷104中的数据库文件做出了进一步的改变。在这种情况下,如上所述,辅助存储系统可以接收内容的一个或多个又进一步的部分作为完全或增量备份快照(使用上述技术)作为备份过程的又进一步的实例的一部分,并将它们存储为又进一步的一个或多个备份版本。还如上所述,辅助存储系统112可以估计迁移又进一步的一个或多个备份版本的时间量,并确定与迁移时间相关联的时间量是否小于停机时间阈值。
从辅助存储系统112向目标服务器122迁移内容的剩余部分(即迁移在针对先前备份版本执行迁移过程时由用户做出的那些改变)并确定是否发送可用于阻止通过数据库103进行写操作的命令的循环一直持续到停机时间量为可接受的停机时间量(即,小于停机时间阈值)。
图1C是例示用于迁移数据库内容的系统的实施方案的框图。在示出的示例中,系统175包括主系统102、辅助存储系统112、服务器122和应用程序133。
在示出的示例中,存储在存储卷104中的一个或多个数据库文件与存储在存储卷124中的一个或多个数据库一致。与数据库103相关联的一个或多个用户已被重新分配到数据库123。与数据库123相关联的操作者使用应用程序133经由网络连接131来管理数据库123。
辅助存储系统112使服务器102根据备份快照策略执行备份快照并将备份快照存储到辅助存储系统112。备份快照表示服务器102在特定时间点时的状态(例如,文件系统数据的状态)。备份快照可以包括一个或多个数据库文件的数据。备份快照可以是完全备份快照或增量备份快照。
图1D是表示保持在服务器122上的数据的一部分的示意图。该图示出了包含使用的块184和未使用的块186的数据的部分182。完全备份快照(其涵盖在它被获取时的特定时间点时保持在主系统上的数据的整个状态)包括所有使用的块184和所有未使用的块186。
图1F是示出保持在服务器122上的数据的一部分的不同表示的示意图。在示出的示例中,数据的部分192包含使用的块194、变化的块195和未使用的块196。增量备份快照(其仅涵盖与在先前备份快照中未备份的主系统相关联的数据)仅包括变化的块195。
辅助存储系统112摄取并存储备份快照的文件系统数据。如上所述并且现在将更详细地解释,文件系统管理器117优选地使用树形数据结构组织备份快照的文件系统数据。在一些实施方案中,文件系统管理器117被配置成基于备份快照中所包括的文件系统数据来更新现有的树形数据结构(例如,与一个或多个迁移的数据库文件相对应的树形数据结构)。辅助存储系统112可以被配置成经由网络连接140向应用程序133提供与辅助存储系统112相关联的信息。
图2A是例示树形数据结构的实施方案的框图。树形数据结构用于表示存储在辅助存储系统(诸如辅助存储系统112)上的文件系统数据。文件系统数据可以包括用于分布式文件系统的元数据,并且可以包括信息,诸如数据块标识符、数据块偏移量、文件大小、目录结构、文件权限、文件的物理存储位置等。文件系统管理器(诸如文件系统管理器117)生成树形数据结构200。
在示出的示例中,树形数据结构200由快照树组成,该快照树包括根节点202、中间节点212、214以及叶节点222、224、226、228和230。尽管树形数据结构200包括根节点202与叶节点222、224、226、228、230之间的一个中间级别,但可以实现任何数量的中间级别。树形数据结构200可以对应于文件系统数据在特定时间点t(例如时间t0)时的备份快照。可以从主系统(诸如主系统102)接收备份快照。快照树连同多个文件元数据树提供与特定时间点时的备份快照相关联的主系统的完整视图。快照树可以对应于完全备份快照。完全备份快照包括存储在主系统上的所有文件系统数据。
根节点是快照树的起点,并且包括指向一个或多个其他节点的指针。中间节点是另一个节点(例如,根节点、其他中间节点)所指向的节点,并且包括指向一个或多个其他节点的一个或多个指针。叶节点是快照树底部的节点。树形结构的每个节点包括与该节点相关联的视图的视图标识符(例如,树ID)。
叶节点被配置成存储文件系统数据的密钥值对。数据密钥k是这样的查找值,通过该查找值可以访问特定叶节点。例如,“1”是可以用于查找叶节点222的“数据1”的数据密钥。数据密钥k可以对应于数据砖的砖编号。数据砖可以由一个或多个数据块组成。在一些实施方案中,叶节点被配置成存储文件系统元数据(例如,数据块标识符(例如,散列值、SHA-1等)、文件大小、目录结构、文件许可、文件的物理存储位置等)。叶节点可以存储数据密钥k和指向存储与该数据密钥相关联的值的位置的指针。
在其他实施方案中,叶节点被配置成当文件小于或等于极限大小时存储与文件相关联的实际数据。例如,与小于或等于256kB的文件相关联的数据可以驻留在快照树的叶节点中。在一些实施方案中,当文件的大小大于极限大小时,叶节点包括指向文件元数据树(例如,blob结构)的指针。例如,叶节点可以包括指向与数据库文件相对应的文件元数据树的指针。
根节点或中间节点包括一个或多个节点密钥。节点密钥可以是整数值或非整数值。每个节点密钥指示节点的分支之间的划分,并指示如何遍历树形结构以找到叶节点,即跟随哪个指针。例如,根节点202可以包括节点密钥“3”。小于或等于节点密钥的密钥值对的数据密钥k与节点的第一分支相关联,并且大于节点密钥的密钥值对的数据密钥k与节点的第二分支相关联。在上文的示例中,为了找到存储与数据密钥“1”、“2”或“3”相关联的值的叶节点,根节点202的第一分支将被遍历到中间节点212,因为数据密钥“1”、“2”、“3”小于或等于节点密钥“3”。为了找到存储与数据密钥“4”或“5”相关联的值的叶节点,根节点202的第二分支将被遍历到中间节点214,因为数据密钥“4”和“5”大于节点密钥“3”。
在一些实施方案中,散列函数可以确定非数字密钥与节点的哪个分支相关联。例如,散列函数可以确定第一贮体与节点的第一分支相关联并且第二贮体与节点的第二分支相关联。
密钥值对的数据密钥k不限于数值。在一些实施方案中,非数字数据密钥可以用于数据密钥值对(例如,“姓名”、“年龄”等)并且数字密钥可以与非数字数据密钥相关联。例如,“姓名”的非数字数据密钥可以对应于数字密钥“3”。可以在与节点相关联的左分支之后找到按字母顺序出现在词语“姓名(name)”之前或者是词语“姓名”的数据密钥。可以通过跟随与节点相关联的右分支来找到按字母顺序出现在词语“姓名(name)”之后的数据密钥。在一些实施方案中,散列函数可以与非数字数据密钥相关联。散列函数可以确定非数字数据密钥与节点的哪个分支相关联。
在示出的示例中,根节点202包括指向中间节点212的指针以及指向中间节点214的指针。根节点202包括节点ID“R1”和树ID“1”。节点ID标识节点的名称。树ID标识与节点相关联的视图。当对存储在叶节点中的数据进行改变时,如关于图2B、图2C和图2D所描述,树ID用于确定是否要制作节点的副本。
根节点202包括将一组指针分成两个不同子集的节点密钥。具有小于或等于节点密钥的数据密钥k的叶节点(例如,“1-3”)与第一分支相关联,并且具有大于节点密钥的数据密钥k的叶节点(例如,“4-5”)与第二分支相关联。可以通过从根节点202到中间节点212遍历树形数据结构200来找到数据密钥为“1”、“2”或“3”的叶节点,因为这些数据密钥具有的值小于或等于节点密钥。可以通过从根节点202到中间节点214遍历树形数据结构200来找到数据密钥为“4”或“5”的叶节点,因为这些数据密钥具有的值大于节点密钥。
根节点202包括第一组指针。与小于节点密钥的数据密钥(例如,“1”、“2”或“3”)相关联的第一组指针指示从根节点202到中间节点212遍历树形数据结构200将引导至具有数据密钥“1”、“2”或“3”的叶节点。中间节点214包括第二组指针。与大于节点密钥的数据密钥相关联的第二组指针指示从根节点202到中间节点214遍历树形数据结构200将引导至具有数据密钥“4”或“5”的叶节点。
中间节点212包括指向叶节点222的指针、指向叶节点224的指针以及指向叶节点226的指针。中间节点212包括节点ID“T1”和树ID“1”。中间节点212包括第一节点密钥“1”和第二节点密钥“2”。叶节点222的数据密钥k是小于或等于第一节点密钥的值。叶节点224的数据密钥k是大于第一节点密钥且小于或等于第二节点密钥的值。叶节点226的数据密钥k是大于第二节点密钥的值。指向叶节点222的指针指示从中间节点212到叶节点222遍历树形数据结构200将引导至具有数据密钥“1”的节点。指向叶节点224的指针指示从中间节点212到叶节点224遍历树形数据结构200将引导至具有数据密钥“2”的节点。指向叶节点226的指针指示从中间节点212到叶节点226遍历树形数据结构200将引导至具有数据密钥“3”的节点。
中间节点214包括指向叶节点228的指针以及指向叶节点230的指针。中间节点212包括节点ID“I2”和树ID“1”。中间节点214包括节点密钥“4”。叶节点228的数据密钥k是小于或等于节点密钥的值。叶节点230的数据密钥k是大于节点密钥的值。指向叶节点228的指针指示从中间节点214到叶节点228遍历树形数据结构200将引导至具有数据密钥“4”的节点。指向叶节点230的指针指示从中间节点214到叶节点230遍历树形数据结构200将引导具有数据密钥“5”的节点。
叶节点222包括数据密钥值对“1:数据1”。叶节点222包括节点ID“L1”和树ID“1”。为了查看与数据密钥“1”相关联的值,从根节点202到中间节点212再到叶节点222来遍历树形数据结构200。在一些实施方案中,叶节点222被配置成存储与文件相关联的元数据。在一些实施方案中,叶节点222被配置成存储与文件相关联的数据。在其他实施方案中,叶节点222被配置成存储指向文件元数据树的指针。例如,叶节点222可以存储指向与数据库文件相对应的文件元数据树的指针。
叶节点224包括数据密钥值对“2:数据2”。叶节点224包括节点ID“L2”和树ID“1”。为了查看与数据密钥“2”相关联的值,从根节点202到中间节点212再到叶节点224来遍历树形数据结构200。在一些实施方案中,叶节点224被配置成存储与文件相关联的元数据。在一些实施方案中,叶节点224被配置成存储与文件相关联的数据。在其他实施方案中,叶节点224被配置成存储指向文件元数据树的指针。例如,叶节点224可以存储指向与数据库文件相对应的文件元数据树的指针。
叶节点226包括数据密钥值对“3:数据3”。叶节点226包括节点ID“L3”和树ID“1”。为了查看与数据密钥“3”相关联的值,从根节点202到中间节点212再到叶节点226来遍历树形数据结构200。在一些实施方案中,叶节点226被配置成存储与文件相关联的元数据。在一些实施方案中,叶节点226被配置成存储与文件相关联的数据。在其他实施方案中,叶节点226被配置成存储指向文件元数据树的指针。例如,叶节点226可以存储指向与数据库文件相对应的文件元数据树的指针。
叶节点228包括数据密钥值对“4:数据4”。叶节点228包括节点ID“L4”和树ID“1”。为了查看与数据密钥“4”相关联的值,从根节点202到中间节点214再到叶节点228来遍历树形数据结构200。在一些实施方案中,叶节点228被配置成存储与文件相关联的元数据。在一些实施方案中,叶节点228被配置成存储与文件相关联的数据。在其他实施方案中,叶节点228被配置成存储指向文件元数据树的指针。例如,叶节点228可以存储指向与数据库文件相对应的文件元数据树的指针。
叶节点230包括数据密钥值对“5:数据5”。叶节点230包括节点ID“L5”和树ID“1”。为了查看与数据密钥“5”相关联的值,从根节点202到中间节点214再到叶节点230来遍历树形数据结构200。在一些实施方案中,叶节点230被配置成存储与文件相关联的元数据。在一些实施方案中,叶节点230被配置成存储与文件相关联的数据。在其他实施方案中,叶节点230被配置成存储指向文件元数据树的指针。例如,叶节点230可以存储指向与数据库文件相对应的文件元数据树的指针。
图2B是例示克隆的快照树的实施方案的框图。当快照树被添加到树形数据结构中时,快照树被克隆。当接收到备份快照时,可以将快照树添加到树形数据结构中。在一些实施方案中,树形数据结构250可以由存储系统(诸如辅助存储系统112)创建。主系统(诸如主系统102)的文件系统数据可以备份到辅助存储系统(诸如辅助存储系统112)。后续备份快照可以对应于完全备份快照或增量备份快照。与后续备份快照相对应的文件系统数据在辅助存储系统中的存储方式用树形数据结构来表示。通过克隆与上次备份相关联的快照树来创建与后续备份快照相对应的树形数据结构。
在示出的示例中,后续备份快照对应于增量备份快照。树形数据结构250包括根节点202、204、中间节点212、214以及叶节点222、224、226、228和230。树形数据结构250可以是文件系统数据在特定时间点t+n时的快照。树形数据结构用于在不同时刻捕获文件系统数据的不同版本。树形数据结构还可以通过遍历树形数据结构中所包括的快照树的特定版本来高效地定位期望的元数据/数据。在一些实施方案中,通过允许快照树的较新版本的节点引用快照树的先前版本的节点,树形数据结构允许将一连串备份快照版本(即,快照树)链接在一起。例如,具有根节点204的快照树链接到具有根节点202的快照树。每当接收到备份快照时,可以创建新的根节点,并且该新的根节点可以包括先前根节点中所包括的相同组的指针,即快照的该新的根节点可以链接到与先前快照相关联的一个或多个中间节点。该新的根节点还包括不同的节点ID和不同的树ID。树ID是与主系统的与特定时刻的备份快照相关联的视图相关联的视图标识符。
在一些实施方案中,根节点与文件系统数据的当前视图相关联。当前视图仍然接受对数据的一个或多个更改。根节点的树ID指示与根节点相关联的快照。例如,具有树ID“1”的根节点202与第一备份快照相关联,并且具有树ID“2”的根节点204与第二备份快照相关联。在示出的示例中,根节点204与文件系统数据的当前视图相关联。
在其他实施方案中,根节点与文件系统数据的快照视图相关联。快照视图表示文件系统数据在过去的特定时刻的状态并且未被更新。在示出的示例中,根节点202与文件系统数据的快照视图相关联。
在示出的示例中,根节点204是根节点202的副本。类似于根节点202,根节点204包括与根节点202相同的指针。根节点204包括指向中间节点212的第一组指针。与小于或等于节点密钥(例如,“1”、“2”或“3”)的数据密钥k相关联的第一组指针指示从根节点204到中间节点212遍历树形数据结构250将引导至具有数据密钥“1”、“2”或“3”的叶节点。根节点204包括指向中间节点214的第二组指针。与大于节点密钥的数据密钥k相关联的第二组指针指示从根节点204到中间节点214遍历树形数据结构250将引导至具有数据密钥“4”或“5”的叶节点。根节点204包括节点ID“R2”和树ID“2”。节点ID标识节点的名称。树ID标识与节点相关联的备份快照。
图2C是例示修改快照树的实施方案的框图。可以基于备份快照中所包括的数据来修改快照树。在示出的示例中,基于增量备份快照中所包括的数据来修改树形数据结构255。由文件系统管理器(诸如文件系统管理器115)修改树形数据结构255。具有根节点204的快照树可以是文件系统数据在时间t+n+m(例如,在时间t2)时的当前视图。当前视图表示文件系统数据的状态,该状态是最新的并且能够接收与对文件系统数据的修改相对应的对快照树的一个或多个修改。因为快照表示文件系统数据在时间上“冻结”的立体图,所以制作了受文件系统数据的变化影响的一个或多个节点的一个或多个副本。
在示出的示例中,值“数据4”已被修改为“数据4’’。在一些实施方案中,密钥值对的值已被修改。例如,“数据4”的值可以是指向与数据库文件的第一版本相对应的文件元数据树的指针,并且“数据4’”的值可以是指向与数据库文件的第二版本相对应的文件元数据树的指针。在其他实施方案中,密钥对的值是与小于或等于极限大小的内容文件相关联的数据。在其他实施方案中,密钥值对的值指向不同的文件元数据树。不同的文件元数据树可以是叶节点先前指向的文件元数据树的经修改的版本。
在t2时,文件系统管理器在根节点204处开始,因为这是与时间t2时的快照树相关联的根节点(即,与最后的备份快照相关联的根节点)。值“数据4”与数据密钥“4”相关联。文件系统管理器从根节点204遍历快照树255直至它到达目标节点,在该示例中为叶节点228。文件系统管理器将每个中间节点和叶节点处的树ID与根节点的树ID进行比较。在节点的树ID与根节点的树ID匹配的情况下,文件系统管理器进行到下一个节点。在节点的树ID与根节点的树ID不匹配的情况下,制作具有非匹配树ID的节点的卷影副本。例如,为了到达具有数据密钥“4”的叶节点,文件系统管理器在根节点204处开始并进行到中间节点214。文件系统管理器将中间节点214的树ID与根节点204的树ID进行比较,确定中间节点214的树ID与根节点204的树ID不匹配,并创建中间节点214的副本。中间节点副本216包括与中间节点214相同的一组指针,但包括树ID“2”以匹配根节点204的树ID。文件系统管理器更新根节点204的指针以指向中间节点216而不是指向中间节点214。文件系统管理器从中间节点216到叶节点228遍历树形数据结构255,确定叶节点228的树ID与根节点204的树ID不匹配,并创建叶节点228的副本。叶节点副本232存储经修改的值“数据4’”并包括与根节点204相同的树ID。文件系统管理器更新中间节点216的指针以指向叶节点232而不是指向叶节点228。
在一些实施方案中,叶节点232存储已被修改的密钥值对的值。在其他实施方案中,叶节点232存储与小于或等于极限大小的文件相关联的经修改的数据。在其他实施方案中,叶节点232存储指向与文件(诸如数据库文件)相对应的文件元数据树的指针。
图2D是例示经修改的快照树的实施方案的框图。图2D中示出的树形数据结构255例示了对如关于图2C所描述的快照树进行修改的结果。
图3A是例示树形数据结构的实施方案的框图。在一些实施方案中,树形数据结构300由存储系统(诸如辅助存储系统112)创建。在示出的示例中,树形数据结构300对应于文件并存储与该文件相关联的元数据。例如,树形数据结构300可以对应于数据库文件并且可以用于存储与数据库文件相关联的元数据。与文件系统数据相关联的快照树的叶节点(诸如树形数据结构200、250、255的叶节点)可以包括指向与文件相对应的树形数据结构(诸如树形数据结构300)的指针。与文件相对应的树形数据结构(即“文件元数据树”)是快照树,但用于组织存储在辅助存储系统上的与文件相关联的数据。树形数据结构300可以被称为“元数据结构”或“快照结构”。
与特定时间点时(例如,特定版本)的内容文件(例如,数据库文件)相对应的树形数据结构可以由根节点、一个或多个级别的一个或多个中间节点,以及一个或多个叶节点组成。在一些实施方案中,与内容文件相对应的树形数据结构由根节点以及一个或多个叶节点组成而没有任何中间节点。树形数据结构300可以是特定时间点t(例如时间t0)时的内容文件的快照。与文件系统数据相关联的树形数据结构可以包括指向与一个或多个内容文件相对应的一个或多个树形数据结构的一个或多个指针。
在示出的示例中,树形数据结构300包括文件根节点302、文件中间节点312、314以及文件叶节点322、324、326、328、330。尽管树形数据结构300包括根节点302与叶节点322、324、326、328、330之间的一个中间级别,但可以实现任何数量的中间级别。与上述快照树类似,每个节点包括标识节点的“节点ID”以及标识与节点相关联的快照/视图的“树ID”。
在示出的示例中,根节点302包括指向中间节点312的指针以及指向中间节点314的指针。根节点202包括节点ID“FR1”和树ID“1”。节点ID标识节点的名称。树ID标识与节点相关联的快照/视图。
在示出的示例中,中间节点312包括指向叶节点322的指针、指向叶节点324的指针以及指向叶节点326的指针。中间节点312包括节点ID“FI1”和树ID“1”。中间节点312包括第一节点密钥和第二节点密钥。叶节点322的数据密钥k是小于或等于第一节点密钥的值。叶节点324的数据密钥是大于第一节点密钥且小于或等于第二节点密钥的值。叶节点326的数据密钥是大于第二节点密钥的值。指向叶节点322的指针指示从中间节点312到叶节点322遍历树形数据结构300将引导至具有数据密钥“1”的节点。指向叶节点324的指针指示从中间节点312到叶节点324遍历树形数据结构300将引导至具有数据密钥“2”的节点。指向叶节点326的指针指示从中间节点312到叶节点326遍历树形数据结构300将引导至具有数据密钥“3”的节点。
在示出的示例中,中间节点314包括指向叶节点328的指针和指向叶节点330的指针。中间节点314包括节点ID“FI2”和树ID“1”。中间节点314包括节点密钥。叶节点328的数据密钥k是小于或等于节点密钥的值。叶节点330的数据密钥是大于节点密钥的值。指向叶节点328的指针指示从中间节点314到叶节点328遍历树形数据结构300将引导至具有数据密钥“4”的节点。指向叶节点330的指针指示从中间节点314到叶节点330遍历树形数据结构300将引导至具有数据密钥“5”的节点。
叶节点322包括数据密钥值对“1:砖1”。“砖1”是这样的砖标识符,该砖标识符标识包含与对应于树形数据结构300的内容文件相关联的一个或多个数据块的数据砖。叶节点322包括节点ID“FL1”和树ID“1”。为了查看与数据密钥“1”相关联的值,从根节点302到中间节点312再到叶节点322来遍历树形数据结构300。
叶节点324包括数据密钥值对“2:砖2”。“砖2”是这样的砖标识符,该砖标识符标识包含与对应于树形数据结构300的内容文件相关联的一个或多个数据块的数据砖。叶节点324包括节点ID“FL2”和树ID“1”。为了查看与数据密钥“2”相关联的值,从根节点302到中间节点312再到叶节点324来遍历树形数据结构300。
叶节点326包括数据密钥值对“3:砖3”。“砖3”是这样的砖标识符,该砖标识符标识包含与对应于树形数据结构300的内容文件相关联的一个或多个数据块的数据砖。叶节点326包括节点ID“FL3”和树ID“1”。为了查看与数据密钥“3”相关联的值,从根节点302到中间节点312再到叶节点326来遍历树形数据结构300。
叶节点328包括数据密钥值对“4:砖4”。“砖4”是这样的砖标识符,该砖标识符标识包含与对应于树形数据结构300的内容文件相关联的一个或多个数据块的数据砖。叶节点328包括节点ID“FL4”和树ID“1”。为了查看与数据密钥“4”相关联的值,从根节点302到中间节点314再到叶节点328来遍历树形数据结构300。
叶节点330包括数据密钥值对“5:砖5”。“砖5”是这样的砖标识符,该砖标识符标识包含与对应于树形数据结构300的内容文件相关联的一个或多个数据块的数据砖。叶节点330包括节点ID“FL5”和树ID“1”。为了查看与数据密钥“5”相关联的值,从根节点302到中间节点314再到叶节点330来遍历树形数据结构300。
文件诸如数据库文件可以由多个数据块组成。砖可以存储一个或多个数据块。在示出的示例中,叶节点322、324、326、328、330各自存储对应的砖标识符。元数据存储器可以包括这样的数据结构,该数据结构将砖标识符与构成该砖的一个或多个数据块的对应位置(物理位置)相匹配。在一些实施方案中,数据结构将砖标识符与对应于数据的文件偏移量和对应于该文件偏移量的数据库文件相匹配。数据砖可以包括一个或多个数据块。使用元数据存储器中存储的数据结构(例如,列表、表格等)来标识数据砖的位置,该数据结构将砖标识符与物理存储位置相匹配,或者可以基于指向数据砖的指针来标识数据砖的位置。在一些实施方案中,数据结构将砖标识符与数据库块标识符(例如,散列)相关联。数据结构或不同的数据结构将数据块标识符与砖偏移量相关联。数据块可以与数据块表格相关联,该数据块表格包含对应的数据块文件ID。数据块文件ID与数据块文件表格相关联,该数据块文件表格指示数据的位置(例如,数据块中的偏移量)。
图3B是例示克隆的文件元数据树的实施方案的框图。在一些实施方案中,树形数据结构350由存储系统(诸如辅助存储系统112)创建。对应于文件(诸如数据库文件)的树形数据结构是快照树,但存储与该文件相关联的元数据(例如,与内容文件相关联的元数据)。
对应于文件的树形数据结构可以用于在不同时刻捕获文件的不同版本。在一些实施方案中,通过允许文件元数据树的较新版本的节点引用文件元数据树的先前版本的节点,树形数据结构允许将与文件的不同版本相对应的一连串文件元数据树链接在一起。文件元数据树由根节点、一个或多个级别的一个或多个中间节点,以及一个或多个叶节点组成。
文件元数据树的某一版本的根节点或中间节点可以引用文件元数据树的先前版本的中间节点或叶节点。类似于快照树结构,文件元数据树结构允许文件数据的不同版本共享节点并允许跟踪内容文件的变化。当接收到备份快照时,文件元数据树的根节点可以链接到与先前文件元数据树相关联的一个或多个中间节点。当文件被包括在两个备份快照中时,可能会发生这种情况。
在示出的示例中,树形数据结构350包括第一文件元数据树,该第一文件元数据树包括根节点302、中间节点312、314以及叶节点322、324、326、328和330。树形数据结构350还包括第二文件元数据树,该第二文件元数据树可以是文件数据在特定时间点t+n时(例如在时间t1时)的快照。第二文件元数据树由根节点304、中间节点312、314以及叶节点322、324、326、328和330组成。第一文件元数据树可以与数据库文件的第一版本相对应,并且第二文件元数据树可以与数据库文件的第二版本相对应。
为了在时间t+n时创建文件数据的快照,创建了新的根节点。该新的根节点是先前根节点的克隆,并且包括与先前根节点相同的一组指针。在示出的示例中,根节点304包括指向中间节点312、314的一组指针,这些中间节点是与先前快照相关联的中间节点。该新的根节点还包括不同的节点ID和不同的树ID。树ID是与文件元数据树在特定时刻的视图相关联的视图标识符。在一些实施方案中,根节点304与文件数据的当前视图相关联。当前视图可以表示文件数据的状态,该状态是最新的并且能够接收与对文件数据的修改相对应的对文件元数据树的一个或多个修改。根节点的树ID指示与根节点相关联的快照。例如,具有树ID“1”的根节点302与第一备份快照相关联,并且具有树ID“2”的根节点304与第二备份快照相关联。在其他实施方案中,根节点304与文件数据的快照视图相关联。快照视图表示文件数据在过去的特定时刻的状态并且未被更新。
在示出的示例中,根节点304是根节点302的副本。类似于根节点302,根节点304包括与根节点302相同的指针。根节点304包括指向中间节点312的第一组指针。与小于或等于节点密钥的数据密钥(例如,“1”、“2”或“3”)相关联的第一组指针指示从根节点304到中间节点312遍历树形数据结构350中所包括的文件元数据树将引导至具有数据密钥“1”、“2”或“3”的叶节点。根节点304包括指向中间节点314的第二组指针。与大于节点密钥的数据密钥相关联的第二组指针指示从根节点304到中间节点314遍历树形数据结构350中所包括的文件元数据树将引导至具有数据密钥“4”或“5”的叶节点。根节点304包括节点ID“FR2”和树ID“2”。节点ID标识节点的名称。树ID标识与节点相关联的备份快照。
图3C是例示修改树形数据结构的文件元数据树的实施方案的框图。在示出的示例中,基于增量备份快照中所包括的数据来修改树形数据结构380。由文件系统管理器(诸如文件系统管理器115)修改树形数据结构380。具有根节点304的文件元数据树可以是文件数据在时间t+n+m时(例如,在时间t2时)的当前视图。当前视图表示文件数据的状态,该状态是最新的并且能够接收与对文件系统数据的修改相对应的对文件元数据树的一个或多个修改。因为快照表示在时间上“冻结”的文件数据的立体图,所以制作了受文件数据的变化影响的一个或多个节点的一个或多个副本。
在一些实施方案中,修改文件数据,使得数据块之一被另一个数据块替换。当与先前备份快照相关联的文件数据的数据块被新的数据块替换时,存储该数据块的数据砖是不同的。文件元数据树的叶节点存储与包含数据块的特定砖相关联的砖标识符。为了表示对文件数据的这种修改,对文件元数据树的当前视图做出对应的修改。文件元数据树的当前视图被修改,因为先前的文件元数据树是快照视图,并且无法再进行修改。被替换的文件数据的数据块在先前的文件元数据树中具有对应的叶节点。如本文所述,在文件元数据树的当前视图中创建与新的数据块相对应的新的叶节点。该新的叶节点包括与当前视图相关联的标识符。该新的叶节点还可以存储与经修改的数据块相关联的数据块标识符。
在示出的示例中,“砖4”中所包括的数据块已被修改。“砖4”中所包括的数据块已被替换为“砖6”中所包括的数据块。在t2时,文件系统管理器在根节点304处开始,因为这是与时间t2时的文件元数据树相关联的根节点。值“砖4”与数据密钥“4”相关联。文件系统管理器从根节点304遍历树形数据结构380,直至它到达目标节点,在该示例中为叶节点328。文件系统管理器将每个中间节点和叶节点处的树ID与根节点的树ID进行比较。在节点的树ID与根节点的树ID匹配的情况下,文件系统管理器进行到下一个节点。在节点的树ID与根节点的树ID不匹配的情况下,制作具有非匹配树ID的节点的卷影副本。例如,为了到达具有数据密钥“4”的叶节点,文件系统管理器在根节点304处开始并进行到中间节点314。文件系统管理器将中间节点314的树ID与根节点304的树ID进行比较,确定中间节点314的树ID与根节点304的树ID不匹配,并创建中间节点314的副本。中间节点副本316包括与中间节点314相同的一组指针,但包括树ID“2”以匹配根节点304的树ID。文件系统管理器更新根节点304的指针以指向中间节点316而不是指向中间节点314。文件系统管理器从中间节点316到叶节点328遍历树形数据结构380,确定叶节点328的树ID与根节点304的树ID不匹配,并创建叶节点328的副本。叶节点332是叶节点328的副本,但存储砖标识符“砖6”并且包括与根节点304相同的树ID。文件系统管理器更新中间节点316的指针以指向叶节点332而不是指向叶节点328。
图3D是例示经修改的文件元数据树的实施方案的框图。图3D中示出的文件元数据树380例示了如关于图3C描述的对文件元数据树380进行修改的结果。
图4A是例示文件系统数据的视图的实施方案的示意图。在示出的示例中,文件系统数据视图400可以由文件系统管理器(诸如文件系统管理器117)生成。
文件系统数据视图400可以对应于文件系统数据的第一备份快照。文件系统数据视图400包括快照树402和文件元数据树412。快照树402包括叶节点404。叶节点404包括指向文件元数据树412的根节点的指针。快照树402可以出于解释目的包括未示出的其他叶节点。所述其他叶节点可以包括指向其他对应的文件元数据树的指针。
文件元数据树412被配置成存储与内容文件的第一版本相关联的元数据。内容文件可以对应于数据库文件。文件元数据树包括叶节点413、414、415、416、417。每个叶节点具有包含内容文件的一个或多个数据块的数据砖的对应标识符或指向包含内容文件的一个或多个数据块的数据砖的对应指针。
图4B是例示文件系统数据的视图的实施方案的示意图。在示出的示例中,文件系统数据视图450由文件系统管理器(诸如文件系统管理器115)生成。
在示出的示例中,文件系统数据视图450对应于文件系统数据的第二备份快照(例如,增量备份快照)。在文件系统数据视图450旁边例示了文件系统数据视图400。文件系统数据视图450包括快照树408和文件元数据树422。快照树408包括与快照树402共享的一个或多个节点。快照树408包括叶节点406,该叶节点是不与快照树402共享的叶节点。叶节点406包括指向文件元数据树422的根节点的指针。快照树408可以出于解释目的包括未示出的其他叶节点。所述其他叶节点可以包括指向其他对应的文件元数据树的指针。
文件元数据树422被配置成存储与内容文件的第二版本相关联的元数据。例如,文件元数据树422可以被配置成存储与数据库文件的第二版本相关联的元数据。文件元数据树422包括叶节点414、415、416、417、423。自上次备份快照以来,与对应于文件元数据树422的内容文件相关联的一些数据没有发生变化。在该示例中,与叶节点414、415、416、417相关联的数据自第一备份快照以来没有发生变化。与叶节点423相关联的数据已被添加到内容文件的第二版本中。
叶节点423与文件系统数据的第一备份快照中未包括的数据相关联。通过遍历与第二备份快照相关联的快照树,可以确定叶节点423与第二备份快照相关联。快照树408是与第二备份快照相关联的快照树。快照树408被遍历到叶节点406,该叶节点包括指向文件元数据树422的根节点的指针。文件元数据树422被遍历到每个叶节点。文件元数据树422的每个叶节点具有相关联的视图标识符。在与叶节点相关联的视图标识符与和文件元数据树的根节点相关联的视图标识符相匹配的情况下,与该叶节点相关联的数据被确定为与第二备份快照相关联,即,该数据在第一个备份快照之后被添加到主系统。在一些实施方案中,与文件元数据树422相对应的文件已被修改为包括与叶节点423相关联的一个或多个数据块而不是与叶节点413相关联的一个或多个数据块。
因此,对于该示例,与叶节点423相关联的数据的大小是自从主系统102接收到先前备份快照以来已发生变化的数据的量。辅助存储系统112确定迁移与叶节点423相关联的数据所需的时间量,但更一般地,它确定提供尚未迁移到数据库服务器(诸如托管在目标服务器122中)的数据所需的时间量。
图5是例示用于当使用树形数据结构存储备份版本时确定与由辅助存储系统112创建的不同备份版本相关联的变化的过程500的流程图,如上文参考图2A至图4B所解释的。
树是完全融合备份的表示,因为它提供了主系统在特定时刻的完整视图。完全融合备份是准备好进行使用的备份,而不必重建多个备份来使用它。可以从树中确定在特定时间存储在主系统上的任何文件以及文件的内容(其存在相关联的备份快照),无论相关联的备份快照是完全备份快照还是增量备份快照。创建主系统的增量备份快照可以仅包括复制先前未备份的主系统数据。然而,与增量备份快照相关联的树提供了主系统在特定时刻的完整视图,因为它包括对先前存储的主系统数据的引用。例如,与文件系统元数据快照树相关联的根节点可以包括对与一个或多个先前备份快照相关联的节点的一个或多个引用,以及对与当前备份快照相关联的节点的一个或多个引用。与备份快照相关联的树具有特定的根节点。该特定的根节点具有相关联的视图标识符。该视图标识符与特定的备份快照相关联。遍历与备份快照相关联的树,以标识具有与和备份快照相关联的根节点相同的视图标识符的树节点。
在步骤502中,遍历与备份快照相关联的树。可以遍历与备份快照相关联的树,以确定与先前未包括在先前备份快照中的一个或多个数据库文件相关联的数据。在步骤504中,确定不与一个或多个先前的树共享的一个或多个叶节点。不与一个或多个先前的树共享的一个或多个叶节点是具有与和备份快照相关联的树的根节点相同的视图标识符的一个或多个叶节点。不与一个或多个先前的树共享的一个或多个叶节点包括对数据砖的对应引用。数据砖包括一个或多个数据块。不与一个或多个先前的树共享的一个或多个叶节点中所包括的对应的数据砖对应于先前备份版本中所包括的数据。一个或多个数据块可以对应于与先前未迁移的一个或多个数据库文件相关联的数据。在优选的布置中,仅需要遍历树形数据结构的非共享节点,因为共享节点包含未改变的数据块。与已知的方法相比,用于确定托管在第一服务器上的数据库的内容自前一备份过程以来的变化的该过程有利地避免了低效遍历元数据。
非共享节点的一个例示性示例是这样的备份版本,该备份版本时间较晚但构成将文件内容恢复到较早的备份版本(例如,作为撤消对文件的删除操作的结果)。在该示例中将没有非共享节点,因为所有块都将作为较早的备份版本的一部分已经存在于辅助存储系统上。
在步骤506中,提供与一个或多个确定的叶节点相关联的数据。文件元数据树的叶节点可以包括与该文件的一个或多个数据块相关联的数据砖的标识符。数据砖可以包括一个或多个数据块。可以使用存储在元数据存储器中的数据结构(例如,列表、表格等)来标识数据砖的位置,该数据结构将数据砖标识符与物理存储位置相匹配。在一些实施方案中,数据结构将砖标识符与数据库块标识符(例如,散列)相关联。该数据结构或不同的数据结构可以将数据块标识符与砖偏移相关联。数据块可以与数据块表格相关联,该数据块表格包含对应的数据块文件ID。数据块文件ID与数据块文件表格相关联,该数据块文件表格指示数据的位置(例如,数据块中的偏移量)。可以基于砖信息来标识并提供与一个或多个确定的叶节点相关联的数据。
图6A是例示根据一些实施方案的用于迁移数据库内容的过程600的流程图。在示出的示例中,过程600由辅助存储系统112实现。
在步骤602处,从第一服务器接收托管在第一服务器上的数据库的内容的至少一部分。第一服务器充当主系统并包括源数据库。主系统将与数据库相关联的数据存储在一个或多个数据库文件中。一个或多个数据库文件可以包括主数据库文件和日志文件。存储系统诸如辅助存储系统使主系统根据备份策略执行备份过程以生成备份快照,并将该备份快照作为特定的备份版本存储到辅助存储系统。
在步骤604处,所接收的数据库内容被存储在跟踪数据库内容的不同备份版本之间的变化的辅助存储系统112中。辅助存储系统112摄取并存储备份快照的文件系统数据作为备份版本。辅助存储系统的文件系统管理器优选地使用树形数据结构来组织备份版本的文件系统数据。树形数据结构提供与备份版本相对应的文件系统数据的视图。与备份版本相对应的文件系统数据的视图由文件系统元数据快照树以及一个或多个文件元数据树组成。
文件元数据树是这样的结构,该结构存储与文件相关联的元数据,并且对应于从第一服务器接收的备份快照中所包括的文件之一。例如,文件元数据树可以对应于数据库文件之一。文件元数据树可以用于在不同的时刻捕获文件的不同版本(例如,在第一服务器处创建并由第一服务器托管的数据库文件的不同版本)。在一些实施方案中,通过允许文件元数据树的较新版本的节点引用文件元数据树的先前版本的节点,树形数据结构允许将与文件的不同版本相对应的一连串文件元数据树链接在一起。文件元数据树的这些版本对应于主系统102的数据库文件的不同备份版本。
文件元数据树由根节点、一个或多个级别的一个或多个中间节点,以及一个或多个叶节点组成。文件元数据树的某一版本的根节点或中间节点可以引用文件元数据树的先前版本的中间节点或叶节点。文件元数据树结构可以允许文件的不同版本共享节点并允许跟踪文件的变化。当从第一服务器接收到备份快照时,辅助存储系统使从文件元数据树的根节点以及与先前的文件元数据树相关联的一个或多个中间节点形成链接。当与文件相关联的数据被包括在从第一服务器接收的两个备份快照中时,可能会发生这种情况。
在步骤606处,接收到将托管在第一服务器上的数据库的内容迁移到第二(目标)服务器的请求,从而使与源数据库(例如,一个或多个数据库文件)相关联的数据库内容的一个或多个备份版本从辅助存储系统迁移(步骤608)到托管目标数据库的第二服务器。可以从辅助存储系统将存储在该辅助存储系统处的数据库内容的一个或多个版本提供给第二服务器。辅助存储系统可以遍历与数据库内容的最新版本相关联的树形数据结构,并定位与数据库内容的最新备份版本相关联的数据。
在一个或多个备份版本的迁移过程完成之后,存储在第一服务器上的数据库内容可能与存储在第二(目标)服务器上的数据库内容不一致,因为在迁移过程进行时用户可能继续对存储在第一服务器上的数据库内容做出改变,如上所述。此外,主系统可以向辅助存储系统提供一个或多个后续增量备份快照,同时与一个或多个数据库文件相关联的数据在后台从辅助存储系统迁移到托管目标数据库的目标服务器。辅助存储系统可以被配置成将这些变化迁移到托管目标数据库的第二服务器,如现在参考图6B将解释的。
在步骤612中,在辅助存储系统处以备份快照的形式从主系统接收到数据库内容,所述备份快照包括与先前未对其执行备份过程的一个或多个数据库文件相关联的数据。
在步骤614处,基于一个或多个后续备份快照更新树形数据结构。对于尚未提供给第二服务器的每个备份快照,可以基于标识一个或多个组的数据块来更新与一个或多个数据库文件相关联的树形数据结构,每个组包括自前一迁移过程以来已发生变化的至少一个数据块。这种对树形数据结构的更新可以称为由辅助存储系统维护的备份版本。
当接收到备份快照时,可以创建与对应于备份快照的文件元数据树相关联的新的根节点,并且可以将该文件元数据树的根节点链接到与先前的文件元数据树相关联的一个或多个中间节点。该先前的文件元数据树可以对应于先前备份快照中所包括的数据库文件的版本。文件元数据树是存储与数据库文件相关联的元数据的快照结构,并且可以用于在不同的时刻捕获数据库文件的不同版本。通过允许与数据库文件的较新版本相对应的文件元数据树的较新版本的节点引用与数据库文件的先前版本相对应的先前文件元数据树的节点,树形数据结构可以允许将与数据库文件的不同版本相对应的一连串文件元数据树链接在一起。
在步骤616中,迁移尚未提供给第二服务器(目标)的每个备份版本的一个或多个标识组的数据块。辅助存储系统可以遍历与一个或多个后续备份快照中所包括的数据库文件的版本相关联的树形数据结构。辅助存储系统可以从与一个或多个后续备份快照之一相关联的根节点遍历该树,以标识作为先前迁移过程的一部分的尚未迁移的数据。标识的数据从辅助存储系统迁移到托管目标数据库的目标服务器。
图7是例示根据一些实施方案的用于生成完成数据库内容迁移的估计的时间量的过程的流程图。在示出的示例中,过程700由存储系统(诸如辅助存储系统112)实现。
在步骤702处,接收到迁移过程的实例已完成的指示。第二服务器向正在执行迁移过程的辅助存储系统提供指示。在其他实施方案中,辅助存储系统的数据迁移模块向辅助存储系统的一个或多个处理器提供迁移过程的实例已完成的指示。
在步骤704中,确定对托管在第一服务器上且尚未迁移到第二服务器的数据库的内容的改变。在步骤706中,估计以后续备份快照的形式迁移所标识的变化的时间量。使用合适的应用程序,辅助存储系统通知操作者迁移托管在第一服务器上的数据库的内容的变化的估计的时间量。
可以推断与迁移过程相关的历史数据以确定对尚未迁移的数据执行迁移过程的估计的时间量。例如,可以将历史数据输入到神经网络中,该神经网络确定对尚未迁移的数据执行迁移过程的估计的时间量。
替代地,可以使用取决于以下各项中的一项或多项的算法来确定估计的时间量:辅助存储系统112上的自前一迁移过程以来生成的备份版本的数量、标识组的数据块的数量、一个或多个标识组的数据块中的字节数,以及将字节写入第二(目标)服务器中的时间。
可以评估执行备份过程和/或迁移过程的时间量。关于备份过程,估计对托管在第一服务器中的自上次执行备份过程以来已发生变化的内容部分执行备份过程所需的时间量。关于迁移过程,估计对由辅助存储系统112保持的一个或多个备份版本执行迁移过程的时间量。用于估计该时间的示例性方程为:
T1∝xC1+yS1 方程(1)
T2∝aC2+bS2 方程(2)
关于方程(1),C1是主系统102上的变化区域的数量;S1是变化区域的大小;系数x反映与将区域写入辅助存储系统112相关的输入/输出开销;并且系数y反映将字节写入辅助存储系统112所需的时间。辅助存储系统112可以使用该方程来估计写入构成从主系统102接收的变化区域的数据的时间量。对于方程(2),C2是辅助存储系统112上的变化区域的数量;S2是变化区域的大小;系数a反映与将区域写入目标数据库123相关的输入/输出开销;并且系数b反映将字节写入目标数据库123所需的时间。辅助存储系统112可以使用该方程来估计将一个或多个备份版本(即包括大小为S2的变化的区域C2的那些版本)写入目标数据库123的时间量。
回想主系统102上的变化区域是关于该主系统上的数据块来评估的,并且辅助存储系统112上的变化区域是关于该辅助存储系统上的数据块来评估的,应当理解,当要评估执行备份过程和迁移过程的总时间量时,可以使用单一算法,该算法考虑了两种类型的变化区域。
现在通过示例来举例说明这些原理,其中在辅助存储系统上以树形结构表示了十个备份版本(S1至S10),并且已经针对备份版本S1-S8执行了迁移过程。由于辅助存储系统接收到对应于S10的备份快照,对保持在存储卷104上的数据进行了进一步的改变,因此将需要由主系统102创建备份快照并由辅助存储系统摄取该备份快照。这将是候选的最终备份版本S11。
辅助存储系统112可以使用第一服务器(源)处的变化块跟踪器105来确定自S10以来有多少块发生了变化。辅助存储系统112可以调用主系统102上的合并过程以便将块分组为构成用于该备份快照的变化的区域的一组块。然后确定两个单独的时间估计值:执行备份过程以在辅助存储系统112上生成候选的最终备份版本S11的时间(例如使用方程(1)),以及针对备份版本S8-S11执行迁移过程的时间(例如使用方程(2))。在步骤708处,确定迁移与备份版本S8-S11相关联的数据的时间量是否小于停机时间阈值。
在一些实施方案中,在与数据迁移相关联的停机时间量小于停机时间阈值(例如,1分钟)的情况下,数据库自动转换为阻止通过数据库进行写操作的状态,并且一个或多个数据库文件的剩余部分从辅助存储系统迁移到托管已更新的目标数据库的目标服务器。如上所述,停机时间阈值可以由与数据库相关联的操作者指定。在与数据迁移相关联的停机时间量不小于停机时间阈值的情况下,过程700进行到710。在与数据迁移相关联的停机时间量小于停机时间阈值的情况下,过程700进行到712。
在步骤710中,针对自前一迁移过程以来生成的备份版本执行迁移过程,并且在迁移过程中,与托管在第一服务器上的数据库相关联的一个或多个用户继续可访问该数据库。
在与数据库的当前版本相关联的操作者同意阻止通过数据库进行写操作并迁移一个或多个数据库文件的剩余部分(例如,停机时间不会太长)的情况下,源数据库可以转换为只读模式。替代地,主系统可以与外部输入隔离。在任一种情况下,辅助存储系统将一个或多个数据库文件的剩余部分迁移到托管目标数据库的目标服务器。
阻止写操作使数据库暂时不可用,并可使数据库显示为脱机。替代地,数据库可能显示为在线,并且仅继续执行读操作,也就是说,用户可以继续从数据库请求数据,但不能写入数据库。在转换为只读状态后,托管在第一服务器上的数据库可能会关闭。当发生最终的迁移过程并且旨在将所有用户永久导向至目标数据库时,将发生关闭。数据迁移完成之后,将与数据库相关联的一个或多个用户重新分配为与数据库的升级版本相关联的一个或多个用户。
一个特定的使用案例与计划的迁移事件相关。人们普遍认为,应在写入次数较少的时间(诸如用户不使用数据库时,例如在传统意义上的非工作时间)安排在一定时间段内从数据库迁移文件。然而,因为数据库(诸如主系统102的数据库103)可以托管在不同的地理区域中(非工作时间在这些区域之间有所不同),所以预测什么时间是那些非工作时间可能具有挑战性。通过利用根据本公开的技术,特别是通过评估备份和迁移自执行上次迁移过程以来对数据库103的文件所做的改变所需的时间量,则如果自上次迁移过程以来已做出相当多的改变,使得与备份和迁移该组变化相关联的停机时间量大于阈值,那么数据库将不会在计划的迁移时间转换为只读状态。这提供了灵活性并且使辅助存储系统112能够提供数据库内容的自主和受控的迁移。
本公开另外的方面包括以下编号条款:
1.一种方法,其包括:
从第一服务器接收托管在所述第一服务器上的数据库的内容的至少一部分;
将所接收的数据库内容存储在辅助存储系统中,所述辅助存储系统跟踪所述数据库内容的不同备份版本之间的变化;
接收将所述数据库内容迁移到第二服务器的请求;以及
使用所述辅助存储系统向所述第二服务器提供所述数据库内容的一个或多个版本,其中所述辅助存储系统被配置成确定来自提供给所述第二服务器的所述数据库内容的所述版本中的一个版本的所述数据库内容的变化量,并且所述变化量用于确定是否发送命令以阻止对托管在所述第一服务器上的所述数据库的写操作。
如条款1所述的方法,其中所述数据库内容部分包括一个或多个数据库文件的至少一部分。
如条款1所述的方法,其中所述第一服务器被配置成托管所述数据库的第一版本,并且所述第二服务器被配置成托管所述数据库的第二版本,其中所述数据库的第二版本是所述数据库的第一版本的较新版本。
如条款1所述的方法,其中使用树形数据结构将所接收的数据库内容存储在所述辅助存储系统中。
如条款1所述的方法,其中从与所述数据库相关联的应用程序接收将所述数据库内容迁移到所述第二服务器的所述请求。
如条款1所述的方法,其中使用所述辅助存储系统向所述第二服务器提供所述数据库内容的一个或多个版本还包括:
启动与所述数据库内容的第一版本相关联的数据的迁移;
从所述第一服务器接收一个或多个后续备份快照;以及
基于被包括在所述一个或多个后续备份快照中的数据更新树形数据结构。
如条款6所述的方法,其中使用所述辅助存储系统向所述第二服务器提供所述数据库内容的一个或多个版本还包括:迁移被包括在所述一个或多个后续备份快照中的数据。
如条款7所述的方法,其中迁移被包括在所述一个或多个后续备份快照中的数据包括:
确定被包括在所述一个或多个后续备份快照中的所述数据库内容的变化量;以及
确定与将被包括在所述一个或多个后续备份快照中的所述数据库内容的变化中所包括的数据从所述辅助存储系统迁移到所述第二服务器相关联的时间量。
如条款8所述的方法,其中迁移被包括在所述一个或多个后续备份快照中的数据还包括:确定所确定的时间量是否小于停机时间阈值。
如条款9所述的方法,其中在确定的时间量小于所述停机时间阈值的情况下,迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化,并且在迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化期间,与托管在所述第一服务器上的数据库相关联的一个或多个用户可访问所述数据库。
如条款9所述的方法,其中在所述确定的时间量小于所述停机时间阈值的情况下,迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化,并且托管在所述第一服务器上的所述数据库转换为阻止写操作的状态。
如条款8所述的方法,其中迁移被包括在所述一个或多个后续备份快照中的数据包括:
向与托管在所述第一服务器上的数据库的操作者相关联的应用程序提供通知,其中所述通知包括迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化的估计的时间量。
如条款12所述的方法,其中迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化还包括:从与托管在所述第一服务器上的所述数据库的操作者相关联的所述应用程序接收迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化的指示。
如条款13所述的方法,其中响应于接收到迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化的指示,所述方法还包括:
将托管在所述第一服务器上的所述数据库转换为阻止写操作的状态;以及
迁移被包括在所述一个或多个后续备份快照中的所述数据库内容的变化。
如条款6所述的方法,其中响应于与所述数据库内容的第一版本相关联的数据的迁移被启动,调整所述第一服务器被配置成执行增量备份快照的速率。
尽管为了清楚理解的目的已经对前述实施方案进行了一些详细的描述,但是本发明不限于所提供的细节。存在许多实施本发明的替代方式。所公开的实施方案是例示性的而非限制性的。

Claims (23)

1.一种方法,其包括:
执行备份过程,所述备份过程包括:从第一服务器接收托管在所述第一服务器上的数据库的内容的至少一部分;
将所接收的数据库内容存储在辅助存储系统中,所述辅助存储系统跟踪所述数据库内容的不同备份版本之间的变化;
接收将托管在所述第一服务器上的所述数据库的内容迁移到第二服务器的请求;以及
执行迁移过程,所述迁移过程包括:使用所述辅助存储系统向所述第二服务器提供所述数据库内容的一个或多个所述备份版本,
其中对于托管在所述第一服务器上的、所述迁移过程未完成的数据库内容,所述辅助存储系统确定自前一迁移过程以来的变化,并且使用所确定的变化来确定是否发送命令,所述命令使通过所述数据库进行的写操作被阻止。
2.如权利要求1所述的方法,其中所述备份过程还包括:
配置所述辅助存储系统以确定自前一备份过程以来托管在所述第一服务器上的所述数据库的所述内容的变化。
3.如权利要求2所述的方法,其中使用树形数据结构将所接收的数据库内容存储在所述辅助存储系统中。
4.如权利要求1所述的方法,其中将所接收的数据库内容作为数据块存储在所述辅助存储系统中,并且所述迁移过程还包括:
对于尚未提供给所述第二服务器的每个备份版本,标识一个或多个组的数据块,每个组包括自前一迁移过程以来已发生变化的至少一个数据块;以及
向所述第二服务器提供所述一个或多个标识组的数据块。
5.如权利要求4所述的方法,其还包括估计执行所述迁移过程所需的时间量。
6.如权利要求5所述的方法,其中估计执行所述迁移过程所需的所述时间量包括:
评估取决于以下各项中的一项多项的算法:自前一迁移过程以来生成的备份版本的数量;标识组的数据块的数量;所述一个或多个标识组的数据块中的字节数;以及将所述字节写入所述第二服务器的时间。
7.如权利要求6所述的方法,其还包括:
估计对托管在所述第一服务器中的自上次执行所述备份过程以来已发生变化的所述内容部分执行所述备份过程所需的时间量,从而生成候选最终备份版本,并且将所述候选最终备份版本包括在对执行所述迁移过程所需的所述时间量的所述估计中。
8.如权利要求6或7所述的方法,其中在执行所述迁移过程的所估计的时间量不小于停机时间阈值的情况下,针对自前一迁移过程以来已经生成的备份版本执行所述迁移过程,并且在所述迁移过程中,与托管在所述第一服务器上的数据库相关联的一个或多个用户能够访问所述数据库。
9.如权利要求6或7所述的方法,其中在所估计的时间量小于所述停机时间阈值的情况下,针对自前一迁移过程以来已经生成的备份版本执行所述迁移过程,并且托管在所述第一服务器上的所述数据库被阻止处理写操作。
10.如权利要求9所述的方法,其还包括关闭托管在所述第一服务器上的所述数据库。
11.如权利要求1所述的方法,其中托管在所述第一服务器上的所述数据库的所述内容包括块,并且所述备份过程还包括所述辅助存储系统从所述第一服务器接收块的列表。
12.如权利要求11所述的方法,其中所述列表包括托管在所述第一服务器上的所述数据库中的所有块的列表,并且托管在所述第一服务器上的所述数据库的在所述备份过程中接收到的所述内容部分包括所述数据库中的所有块。
13.如权利要求11所述的方法,其中所述列表包括自前一备份过程以来已发生变化的块的列表,并且托管在所述第一服务器上的所述数据库的在所述备份过程中接收到的所述内容部分包括自前一备份过程以来已发生变化的块。
14.如权利要求11所述的方法,其中所述列表包括一个或多个组的块的列表,每个组包括自前一备份过程以来已发生变化的至少一个块,并且托管在所述第一服务器上的所述数据库的在所述备份过程中接收到的所述内容部分包括所述一个或多个组的块。
15.如权利要求11至14中任一项所述的方法,其还包括基于所接收的块更新树形数据结构。
16.如权利要求11至15中任一项所述的方法,其还包括估计执行所述备份过程所需的时间量。
17.如权利要求16所述的方法,其中估计执行所述备份过程所需的所述时间量包括评估取决于以下各项中的一项或多项的算法:所述内容部分中的字节数;存储在所述第一服务器上的字节的分布;以及可用于所述备份过程的所述第一服务器的线程数。
18.如任一前述权利要求所述的方法,其中响应于针对第一备份版本的所述迁移过程的启动,调整执行所述备份过程的速率。
19.如任一前述权利要求所述的方法,其中所述数据库内容部分包括一个或多个数据库文件的至少一部分。
20.如任一前述权利要求所述的方法,其中所述第一服务器被配置成托管所述数据库的第一版本,并且所述第二服务器被配置成托管所述数据库的第二版本,其中所述数据库的所述第二版本是所述数据库的所述第一版本的较新版本。
21.如任一前述权利要求所述的方法,其中从与所述数据库相关联的应用程序接收将所述内容迁移到所述第二服务器的请求。
22.一种用于数据迁移的系统,所述系统包括:
一个或多个处理器;和
存储器,所述存储器被配置成向所述一个或多个处理器提供指令,所述处理器在被配置有所述指令时可操作以使所述系统执行根据权利要求1至21中任一项所述的方法。
23.一种计算机程序产品,所述计算机程序产品体现在非暂时性计算机可读存储介质中并且包括计算机指令,所述计算机指令在由处理系统执行时使所述处理系统执行根据权利要求1至21中任一项所述的方法。
CN202080009512.8A 2019-01-17 2020-01-15 使用中介辅助存储系统的高效数据库迁移 Pending CN113424170A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/250,828 2019-01-17
US16/250,828 US10942902B2 (en) 2019-01-17 2019-01-17 Efficient database migration using an intermediary secondary storage system
PCT/US2020/013746 WO2020150393A1 (en) 2019-01-17 2020-01-15 Efficient database migration using an intermediary secondary storage system

Publications (1)

Publication Number Publication Date
CN113424170A true CN113424170A (zh) 2021-09-21

Family

ID=69724046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080009512.8A Pending CN113424170A (zh) 2019-01-17 2020-01-15 使用中介辅助存储系统的高效数据库迁移

Country Status (5)

Country Link
US (2) US10942902B2 (zh)
EP (1) EP3895033B1 (zh)
CN (1) CN113424170A (zh)
AU (1) AU2020208400A1 (zh)
WO (1) WO2020150393A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10374868B2 (en) * 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US11609828B2 (en) 2020-01-30 2023-03-21 Rubrik, Inc. Utilizing a tablespace to export to a native database recovery environment
US11467925B2 (en) 2020-01-30 2022-10-11 Rubrik, Inc. Exporting a database to a native database recovery environment
US11360860B2 (en) * 2020-01-30 2022-06-14 Rubrik, Inc. Exporting a database from a foreign database recovery environment
US11604761B2 (en) 2020-01-30 2023-03-14 Rubrik, Inc. Utilizing a tablespace to export from a foreign database recovery environment
US20220229573A1 (en) * 2021-01-20 2022-07-21 Hewlett Packard Enterprise Development Lp Migrating applications across storge systems
US11934362B2 (en) * 2021-07-22 2024-03-19 EMC IP Holding Company LLC Granular data migration
WO2024080883A1 (en) * 2022-10-14 2024-04-18 Xero Limited Systems, methods and computer-readable media for migrating data

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193154A (en) 1987-07-10 1993-03-09 Hitachi, Ltd. Buffered peripheral system and method for backing up and retrieving data to and from backup memory device
US5495607A (en) * 1993-11-15 1996-02-27 Conner Peripherals, Inc. Network management system having virtual catalog overview of files distributively stored across network domain
US10191922B2 (en) * 1998-11-24 2019-01-29 Oracle International Corporation Determining live migration speed based on workload and performance characteristics
US7185192B1 (en) * 2000-07-07 2007-02-27 Emc Corporation Methods and apparatus for controlling access to a resource
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US20040015408A1 (en) * 2002-07-18 2004-01-22 Rauen Philip Joseph Corporate content management and delivery system
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8930496B2 (en) * 2005-12-19 2015-01-06 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US7546484B2 (en) * 2006-02-08 2009-06-09 Microsoft Corporation Managing backup solutions with light-weight storage nodes
US7546432B2 (en) * 2006-05-09 2009-06-09 Emc Corporation Pass-through write policies of files in distributed storage management
US20090171731A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Use of graphs in managing computing environments
JP2009217404A (ja) * 2008-03-07 2009-09-24 Hitachi Ltd ストレージシステム
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US10191778B1 (en) * 2015-11-16 2019-01-29 Turbonomic, Inc. Systems, apparatus and methods for management of software containers
US8285681B2 (en) * 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US9323758B1 (en) * 2009-12-22 2016-04-26 Emc Corporation Efficient migration of replicated files from a file server having a file de-duplication facility
US11615115B2 (en) * 2010-12-23 2023-03-28 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10713280B2 (en) * 2010-12-23 2020-07-14 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10740353B2 (en) * 2010-12-23 2020-08-11 Mongodb, Inc. Systems and methods for managing distributed database deployments
US9116633B2 (en) * 2011-09-30 2015-08-25 Commvault Systems, Inc. Information management of virtual machines having mapped storage devices
US20130085742A1 (en) * 2011-10-04 2013-04-04 Nec Laboratories America, Inc. Service level agreement-aware migration for multitenant database platforms
US9229964B2 (en) * 2011-10-27 2016-01-05 Visa International Business Machines Corporation Database cloning and migration for quality assurance
JP5944001B2 (ja) * 2012-02-16 2016-07-05 株式会社日立製作所 ストレージシステム、管理計算機、ストレージ装置及びデータ管理方法
US8768977B2 (en) * 2012-07-31 2014-07-01 Hewlett-Packard Development Company, L.P. Data management using writeable snapshots in multi-versioned distributed B-trees
WO2014070166A1 (en) * 2012-10-31 2014-05-08 Hewlett-Packard Development Company, L.P. Cataloging backup data
US9311014B2 (en) * 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
US20140281306A1 (en) * 2013-03-14 2014-09-18 Hitachi, Ltd. Method and apparatus of non-disruptive storage migration
US9519663B2 (en) * 2013-06-26 2016-12-13 Sap Se Upgrading and migrating a database by a migration tool
US9424301B2 (en) * 2013-11-22 2016-08-23 Netapp, Inc. System and method for negotiated takeover of storage objects
US10169121B2 (en) * 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
WO2015197564A1 (en) * 2014-06-23 2015-12-30 Getclouder Ltd. Cloud hosting systems featuring scaling and load balancing with containers
US10031917B2 (en) * 2014-07-29 2018-07-24 Commvault Systems, Inc. Efficient volume-level replication of data via snapshots in an information management system
US9350682B1 (en) * 2014-07-30 2016-05-24 Amazon Technologies, Inc. Compute instance migrations across availability zones of a provider network
US10373247B2 (en) * 2014-09-19 2019-08-06 Amazon Technologies, Inc. Lifecycle transitions in log-coordinated data stores
US9928144B2 (en) * 2015-03-30 2018-03-27 Commvault Systems, Inc. Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage
US10013315B2 (en) * 2015-07-27 2018-07-03 Sap Se Reverse snapshot clone
US10102192B2 (en) * 2015-11-03 2018-10-16 Commvault Systems, Inc. Summarization and processing of email on a client computing device based on content contribution to an email thread using weighting techniques
US10282433B1 (en) * 2015-11-17 2019-05-07 Quintiles Ims Incorporated Management of database migration
US11544049B2 (en) * 2016-02-12 2023-01-03 Nutanix, Inc. Virtualized file server disaster recovery
US10725806B2 (en) * 2016-02-16 2020-07-28 Netapp Inc. Transitioning volumes between storage virtual machines
US10169065B1 (en) * 2016-06-29 2019-01-01 Altera Corporation Live migration of hardware accelerated applications
US10417102B2 (en) * 2016-09-30 2019-09-17 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic
US10346386B2 (en) * 2016-11-04 2019-07-09 Salesforce.Com, Inc. Multiversion concurrency control of database records with uncommitted transactions
US11106632B2 (en) * 2016-11-16 2021-08-31 Commvault Systems, Inc. Dynamically configuring a proxy server using containerization for concurrent and/or overlapping backup, restore, and/or test operations
US11829337B2 (en) * 2016-11-16 2023-11-28 Sap Se Minimizing downtime in migrating content of databases systems
US10838821B2 (en) * 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US20180276085A1 (en) * 2017-03-24 2018-09-27 Commvault Systems, Inc. Virtual machine recovery point generation
US11108858B2 (en) * 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US10872066B2 (en) * 2017-06-27 2020-12-22 Salesforce.Com, Inc. Systems and methods of database tenant migration
US11042512B1 (en) * 2017-08-02 2021-06-22 EMC IP Holding Company LLC Enabling granular snapshots and provisioning in NAS (network attached storage) clusters
US10528592B2 (en) * 2018-01-04 2020-01-07 Sap Se Database scaling for multi-tenant applications
US20190306236A1 (en) * 2018-03-29 2019-10-03 Servicenow, Inc. Insight for cloud migration and optimization
US20200073802A1 (en) * 2018-09-05 2020-03-05 Commvault Systems, Inc. Re-stubbing migrated data
US11847103B2 (en) * 2018-09-28 2023-12-19 Oracle International Corporation Data migration using customizable database consolidation rules

Also Published As

Publication number Publication date
US10942902B2 (en) 2021-03-09
EP3895033B1 (en) 2023-03-15
WO2020150393A1 (en) 2020-07-23
US20200233840A1 (en) 2020-07-23
US11663171B2 (en) 2023-05-30
AU2020208400A1 (en) 2021-07-29
US20210149848A1 (en) 2021-05-20
EP3895033A1 (en) 2021-10-20

Similar Documents

Publication Publication Date Title
US11232067B2 (en) Using a secondary storage system to maintain functionality of a database during database migration
US11561716B2 (en) Fast migration of metadata
CN113424170A (zh) 使用中介辅助存储系统的高效数据库迁移
CN111316245B (zh) 使用完全水合备份还原数据库
US10747778B2 (en) Replication of data using chunk identifiers
US10838826B2 (en) Backup and restore of linked clone VM
US11494355B2 (en) Large content file optimization
US11487701B2 (en) Incremental access requests for portions of files from a cloud archival storage tier
US11422727B2 (en) Restoring a storage system using file relocation metadata
US20220155962A1 (en) Efficient backup after a restore operation
US11822806B2 (en) Using a secondary storage system to implement a hierarchical storage management plan
US11797220B2 (en) Reducing memory usage in storing metadata

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