本申请涉及数据库技术领域,具体而言,涉及一种mpp数据库管理方法、装置及系统。
背景技术:
目前,针对mpp(massiveparallelprocessing,大规模并行处理)数据库的数据备份和恢复方案中,通常是采用的pitr(point-in-time-recovery,基于时间点的故障恢复)备份恢复方案,在该备份恢复方案中首先需要进行一次基础备份用于备份全量数据文件,当数据文件的数据量很大时,每一次全量级别的备份会耗费极大的存储空间。
此外,在数据量很大的情况下进行基础备份也会导致在整个备份过程中消耗大量的时间,而且虽然该备份恢复方案可以恢复到备份开始到备份结束之间的任意时间点,但是也需要对归档的日志信息进行重新应用,在重新应用的过程中也会非常耗时。
同时,在该备份恢复方案中,每次只能进行数据库的整体备份和恢复,无法实现某个特定对象(例如某张大表)级别的备份和恢复,导致整个备份或者恢复过程中的灵活性较差。
技术实现要素:
有鉴于此,本申请的目的在于提供一种mpp数据库管理方法、装置及系统,无需进行全量数据文件的备份,能够有效节省备份时耗费的存储空间,并减少备份所消耗的时间,尽可能地减少对上层业务的影响,此外还可以针对数据对象实现单独的备份,不影响其它数据对象的正常业务操作。
根据本申请的一方面,提供一种mpp数据库管理方法,应用于mpp数据库管理系统中的任意一个计算节点,所述mpp数据库管理系统还包括与每个所述计算节点连接的主节点,所述方法包括:
根据所述主节点发送的快照备份指令,确定对应的快照备份标识以及至少一个备份对象,其中,所述备份对象通过至少一个备份对象页进行存储;
针对每个备份对象,为该备份对象分配对应的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间,并记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为所述快照备份标识;
通过所述第一位图空间记录所述每个备份对象页的修改状态,并通过所述快照备份空间记录所述备份对象页中被修改的记录信息,通过所述第二位图空间记录所述备份对象页中每条记录信息的修改状态。
根据本申请的另一方面,提供一种mpp数据库管理装置,应用于mpp数据库管理系统中的任意一个计算节点,所述装置包括:
第一确定模块,用于根据主节点发送的快照备份指令,确定对应的快照备份标识以及至少一个备份对象,其中,所述备份对象通过至少一个备份对象页进行存储;
分配模块,用于针对每个备份对象,为该备份对象分配对应的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间,并记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为所述快照备份标识;
记录模块,用于通过所述第一位图空间记录所述每个备份对象页的修改状态,并通过所述快照备份空间记录所述备份对象页中被修改的记录信息,通过所述第二位图空间记录所述备份对象页中每条记录信息的修改状态。
根据本申请的另一方面,提供一种mpp数据库管理系统,所述mpp数据库管理系统包括主节点和至少一个计算节点;
所述主节点,用于向所述计算节点发送快照备份指令;
所述计算节点,用于根据所述主节点发送的快照备份指令,确定对应的快照备份标识以及至少一个备份对象,其中,所述备份对象通过至少一个备份对象页进行存储;
所述计算节点,用于针对每个备份对象,为该备份对象分配对应的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间,并记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为所述快照备份标识;
所述计算节点,用于通过所述第一位图空间记录所述每个备份对象页的修改状态,并通过所述快照备份空间记录所述备份对象页中被修改的记录信息,通过所述第二位图空间记录所述备份对象页中每条记录信息的修改状态。
根据本申请的另一方面,提供一种计算节点,所述计算节点包括机器可读存储介质及处理器,所述机器可读存储介质存储有机器可执行指令,所述处理器在执行所述机器可执行指令时,该服务器实现上述的mpp数据库管理方法。
根据本申请的另一方面,提供一种可读存储介质,所述可读存储介质中存储有机器可执行指令,所述机器可执行指令被执行时实现上述的mpp数据库管理方法。
基于上述任一方面,本申请在对每个备份对象进行备份过程中,记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为快照备份标识,通过为备份对象页分配的快照备份空间仅记录被修改的记录信息,再分别通过第一位图空间记录每个备份对象页的修改状态,同时通过第二位图空间记录备份对象页中每条记录信息的修改状态。如此,在备份过程中,仅需记录被修改的记录信息、快照标识和一些修改状态,无需进行全量数据文件的备份,能够有效节省备份时耗费的存储空间,并减少备份所消耗的时间,尽可能地减少对上层业务的影响,此外还可以针对数据对象实现单独的备份,不影响其它数据对象的正常业务操作。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的mpp数据库管理系统的应用场景示意图;
图2示出了本申请实施例所提供的mpp数据库管理方法的流程示意图之一;
图3示出了本申请实施例所提供的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间的说明示意图之一;
图4示出了本申请实施例所提供的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间的说明示意图之二;
图5示出了本申请实施例所提供的mpp数据库管理方法的流程示意图之二;
图6示出了本申请实施例所提供的mpp数据库管理装置的功能模块示意图之一;
图7示出了本申请实施例所提供的mpp数据库管理装置的功能模块示意图之二;
图8示出了本申请实施例所提供的用于实现上述mpp数据库管理方法的计算节点的结构示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
在对本申请实施例进行介绍之前,下面首先基于前述背景技术对本申请相关的现有技术以及具体存在的技术问题进行详细说明。
目前的rdbms(relationaldatabasemanagementsystem,关系数据库管理系统)数据库的在线备份大致可以分为逻辑备份和物理备份两类。
逻辑备份的缺点在于在执行备份过程中需要耗费大量的时间,特别是对于拥有大量数据的mpp数据库,需要花费很长时间进行备份,而从备份数据中执行恢复数据库的操作可能需要更长的时间,并且在备份过程中会进行锁表操作,从而影响上层业务的执行。
相反,物理备份则可以实现更为高效的实时备份,可以在相对较短的时间内备份和恢复大型数据库。现有技术中通常采用的基于pitr机制的mpp数据库的物理备份方案,还没有实现由master主节点统一执行,还需要在每个计算节点实例上单独执行相应的物理备份与恢复。
下面首先介绍一下pitr机制的mpp数据库的物理备份、恢复方案的原理:
pitr是基于mvcc(multi-versionconcurrencycontrol,多版本并发控制)的数据库物理备份恢复技术,在进行pitr恢复时会将整个计算节点,包括数据库服务的所有数据对象恢复到指定时刻,而非某个具体的数据对象。在备份过程中首先会为制作基础备份进行准备工作,然后制作基础备份文件,实际上就是将当前mpp数据库的data数据目录进行物理上的全量复制操作,在复制完成之后结束本次备份。
在恢复过程中,假设在时刻:2019-06-1622:45:00整个mpp数据库管理系统进行了业务升级操作,但是在执行的过程中升级失败,需要进行业务回退以恢复数据,那么则需要删除当前的数据库集群,并使用之前制作的基础备份文件进行全量数据文件的恢复,与此同时创建一个配置conf文件,并在该conf文件中配置需要恢复的时刻(2019-06-1622:45:00),最后在mpp数据库启动的时候,就会进入恢复模式,从备份历史文件中读取checkpointlocation的值(即redopoint值),然后从conf文件中读取一些恢复参数,其中包括需要恢复的时刻。接着,mpp数据库开始重做归档之后的wal(write-aheadlogging,预写日志系统)日志数据,重做点可以从上述checkpointlocation的值中获取,并将归档之后的wal日志复制到临时目录中,在恢复完成之后,临时文件中的wal日志会被删除。
不难得出,在上述方案中,尽管可以恢复到备份开始到备份结束这段时间内任意时刻,但是需要对归档的wal日志进行重新应用,该操作也会耗费大量时间,例如在业务升级过程中进行了大量dml(datamanipulationlanguage,数据操纵语言)操作,那么wal日志中也会记录大量的操作数据,从而导致重做wal日志过程中也会非常耗时。并且,一般情况下,如果业务升级失败,用户通常都是回退到升级前的一个状态,任意时刻的恢复意义不大。
为此,基于上述技术问题的发现,发明人提出下述技术方案以解决上述问题。需要注意的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本申请做出的贡献,而不应当理解为本领域技术人员所公知的技术内容。
请参阅图1,图1示出了本申请实施例所提供mpp数据库管理系统10的应用场景示意图。本实施例中,mpp数据库管理系统10可以包括主节点200和多个计算节点100,且mpp数据库管理系可以部署于服务器或服务器集群。当mpp数据库管理系统10部署于服务器时,该服务器中的模块可以作为主节点200或计算节点100。当mpp数据库管理系部署于服务器集群时,该服务器集群中的服务器可以作为主节点200或计算节点100。
各计算节点100和主节点200可以被分别部署在单独的服务器中,且各计算节点100和主节点200通信连接。主节点200可以作为mpp数据库管理系结构的入口,从而与客户端以及各计算节点100进行交互,向计算节点100下发数据备份指令(例如快照备份指令)或者数据恢复指令(例如快照恢复指令)等任务。
例如,当计算节点100接收到主节点200下发的快照备份指令时,可以在对每个备份对象进行备份过程中,记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为快照备份标识,通过为备份对象页分配的快照备份空间仅记录被修改的记录信息,再分别通过第一位图空间记录每个备份对象页的修改状态,同时通过第二位图空间记录备份对象页中每条记录信息的修改状态。如此,在备份过程中,仅需记录被修改的记录信息、快照标识和一些修改状态,无需进行全量数据文件的备份,能够有效节省备份时耗费的存储空间,并减少备份所消耗的时间,尽可能地减少对上层业务的影响,此外还可以针对数据对象实现单独的备份,不影响其它数据对象的正常业务操作。
又例如,当计算节点100接收到主节点200下发的快照恢复指令时,可以在对每个恢复对象进行恢复过程中,查找预先为每个恢复对象分配的第一位图空间以及每个恢复对象页对应的快照备份空间和第二位图空间,并根据快照备份标识、快照备份空间、第一位图空间以及每个恢复对象页对应的第二位图空间对每个恢复对象执行恢复操作。如此,在恢复过程中,仅需根据记录的快照标识和修改状态恢复被修改的记录信息,无需进行全量数据文件的恢复,能够有效减少恢复所消耗的时间,尽可能地减少对上层业务的影响,此外还可以针对数据对象实现单独的恢复,不影响其它数据对象的正常业务操作。
需要说明的是,在实际应用过程中,可以根据不同需求,增加或减少计算节点100的数目,从而对mpp数据库管理系统10进行扩展。
图2示出了本申请实施例提供的mpp数据库管理方法的流程示意图,该mpp数据库管理方法可以由图1中所示的任意一个计算节点100执行。下面mpp数据库管理方法的详细步骤进行介绍。
步骤s110,根据主节点200发送的快照备份指令,确定对应的快照备份标识以及至少一个备份对象,其中,备份对象通过至少一个备份对象页进行存储。
步骤s120,针对每个备份对象,为该备份对象分配对应的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间,并记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为快照备份标识。
步骤s130,通过第一位图空间记录每个备份对象页的修改状态,并通过快照备份空间记录备份对象页中被修改的记录信息,通过第二位图空间记录备份对象页中每条记录信息的修改状态。
基于上述步骤,本实施例提供的mpp数据库管理方法,在对每个备份对象进行备份过程中,记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为快照备份标识,通过为备份对象页分配的快照备份空间仅记录被修改的记录信息,再分别通过第一位图空间记录每个备份对象页的修改状态,同时通过第二位图空间记录备份对象页中每条记录信息的修改状态。如此,在备份过程中,仅需记录被修改的记录信息、快照标识和一些修改状态,无需进行全量数据文件的备份,能够有效节省备份时耗费的存储空间,并减少备份所消耗的时间,尽可能地减少对上层业务的影响,此外还可以针对数据对象实现单独的备份,不影响其它数据对象的正常业务操作。
由此,可以进一步使得后续在进行某个备份对象的恢复时,可以根据每个备份对象页的修改状态和对象页中每条记录信息的修改状态仅对被修改的记录信息进行恢复,无需进行全量数据文件的恢复,能够有效减少恢复所消耗的时间,尽可能地减少对上层业务的影响,此外还可以针对数据对象实现单独的恢复,不影响其它数据对象的正常业务操作。
本实施例中,对象页(page)是数据对象在存储过程中每次开辟数据空间的最小单元,该最小单元作为一个单独的数据区以用于存储的具体的记录(tuple)信息。例如,假设每个备份对象页可以存储4条记录信息,那么当某个对象页中的记录信息超过4条时,则再开辟一个新的对象页,并通过新的对象页继续存储接下来写入的记录信息。
本实施例中,备份对象可以由主节点200根据客户端的提交需求进行确定,可以仅确定一个备份对象,也可以确定多个或者所有的备份对象,本实施例对此不作具体限制。
本实施例中,上述的快照备份标识可以由主节点200在下发快照备份指令时自动生成,可以用于表征本次备份过程的唯一标识。例如,主节点200可以根据在下发快照备份指令时的时刻对应生成快照备份标识,以标识每次备份过程所属的时刻。比如201901011230和201901301250,可以分别表示在2019年1月1日12:30下发的快照备份指令和在2019年1月30日12:50下发的快照备份指令。在此基础上,针对备份对象对应的每个备份对象页,可以记录每个备份对象页的快照标识为上述的快照备份标识,以便于后续在恢复过程中基于备份对象页中的每个记录信息的快照标识进一步确认是否恢复该记录信息。
其中,可选地,每个备份对象页的快照标识具体可以记录在计算节点100对应的事务日志信息中,在每次备份时可以连同这些事务日志信息一同备份到磁盘中。
此外,在每次备份过程中,计算节点100可以一并执行checkpoint命令,以将内存中的当前运行数据(例如上述分配的第一位图空间、快照备份空间和第二位图空间等)从刷新到磁盘中。
本实施例中,针对步骤s120,下面结合图3分别对为每个备份对象建立的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间进行详细说明。
请参阅图3,备份对象可以是指数据表、数据库或者整个数据库集群,具体可以由主节点200根据客户端的需求进行选择,例如在本申请实施例中备份对象可以是具体统计业务的数据表。如图3所示,以某个备份对象包括四个备份对象页page1、page2、page3、page4为例,可以分配该备份对象的第一位图空间,并根据四个备份对象页page1、page2、page3、page4的页面信息,将页面信息中的页面地址信息分别映射到第一位图空间的比特位p1、p2、p3、p4中,以将page1、page2、page3、page4分别与p1、p2、p3、p4形成映射关系。
接着,可分别设置p1、p2、p3、p4的比特值为0。其中,p1、p2、p3、p4的比特值可以用于表征page1、page2、page3、page4的修改状态。以p1为例,当p1的比特值为0时,可以表征page1的修改状态为未修改状态,当p1的比特值为1时,可以表征page1的修改状态为已修改状态。
在此基础上,可以分别针对page1、page2、page3、page4分配对应的快照备份区和第二位图空间。如图3所示,以page4为例,page4可以包括四条记录信息tuple1、tuple2、tuple3、tuple4,page4对应的快照备份区可以用于备份page4的头信息以及tuple1、tuple2、tuple3、tuple4中被修改的tuple,头信息中可以包括tuple1、tuple2、tuple3、tuple4在page4中的地址信息,以将tuple1、tuple2、tuple3、tuple4在page4中的地址信息分别映射到page4对应的第二位图空间的比特位t1、t2、t3、t4中,以将tuple1、tuple2、tuple3、tuple4分别与t1、t2、t3、t4形成映射关系。
接着,可以分别设置t1、t2、t3、t4的比特值为0。其中,t1、t2、t3、t4的比特值可以用于表征tuple1、tuple2、tuple3、tuple4的修改状态。以t1为例,当t1的比特值为0时,可以表征tuple1的修改状态为未修改状态,当t1的比特值为1时,可以表征tuple1的修改状态为已修改状态。
在上述描述的基础上,在一种可能的实施方式中,针对步骤s130,具体描述如下:
首先,当检测到向备份对象写入的更新数据时,可判断该备份对象是否存在与更新数据关联的目标对象页。当存在与更新数据关联的目标对象页时,判断第一位图空间中当前记录的该目标对象页的修改状态是否为已修改状态。当该目标对象页的修改状态为已修改状态时,判断该目标对象页对应的第二位图空间中,与更新数据关联的目标记录信息的修改状态是否为已修改状态。当目标记录信息的修改状态为已修改状态时,根据更新数据修改目标记录信息,并将被修改的目标记录信息备份到快照备份空间中。
例如,以图3所示的示例为例,假设备份对象中存在与更新数据关联的目标对象页,且目标对象页为page4,page4中与更新数据关联的目标记录信息为tuple1,那么可以判断第一位图空间中p4的比特值是否为1,当p4的比特值为1时,判断page4对应的第二位图空间中t1的比特值是否为1,当t1的比特值为1时,可以根据更新数据修改tuple1,并将被修改的tuple1备份到快照备份空间中。
在另一种可能的实施方式中,当不存在与更新数据关联的目标对象页时,可以创建目标对象页,在该备份对象对应的第一位图空间中添加目标对象页的位图空间以通过该位图空间记录目标对象页的修改状态,并为目标对象页分配对应的第二位图空间。然后,将更新数据更新到目标对象页中与更新数据关联的目标记录信息中,在添加的位图空间中将目标对象页的修改状态置为已修改状态,并在该第二位图空间中将目标记录信息的修改状态置为已修改状态,此后则将目标记录信息备份到快照备份空间中。
例如,基于图3所示的示例,假设图3所示的备份对象中不存在与更新数据关联的目标对象页,即page1、page2、page3、page4均不是与更新数据关联的目标对象页,那么则继续参阅图4,可以在图3的基础上进一步创建目标对象页page5,在该备份对象对应的第一位图空间中添加目标对象页page5的位图空间p5以通过p5的比特值记录page5的修改状态,并为page5分配对应的第二位图空间t1。然后,将更新数据更新到page5中与更新数据关联的目标记录信息tuple1中,将p5的比特值设置为1,并在第二位图空间中将t1的比特值设置为1,此后则将tuple1备份到快照备份空间中。
在另一种可能的实施方式中,当该目标对象页的修改状态为未修改状态时,可以在第一位图空间将该目标对象页的修改状态置为已修改状态,并根据更新数据修改该目标对象页中与更新数据关联的目标记录信息后,在该目标对象页对应的第二位图空间中将目标记录信息的修改状态置为已修改状态,而后将目标记录信息备份到快照备份空间中。
例如,仍旧以前述示例为例,当第一位图空间中p4的比特值为0时,可以在第一位图空间将p4的比特值设置为1,并根据更新数据修改该page4中的tuple1后,在page4对应的第二位图空间中将t1的比特值设置为1,而后将tuple1备份到快照备份空间中。
在另一种可能的实施方式中,当目标记录信息的修改状态为未修改状态时,可以将目标记录信息备份到快照备份空间中,然后在该目标对象页对应的第二位图空间中将目标记录信息的修改状态置为已修改状态,并根据更新数据修改目标记录信息。
例如,仍旧以前述示例为例,当第二位图空间中t1的比特值为0时,可以将当前的tuple1备份到快照备份空间中,然后在page4对应的第二位图空间中将t1的比特值设置为1,并根据更新数据修改tuple1。
基于上述设计,可以在每次向备份对象写入更新数据时,通过第一位图空间记录每个备份对象页的修改状态,并通过快照备份空间记录对象页中被修改的记录信息,通过第二位图空间记录对象页中每条记录信息的修改状态,以便于后续在备份过程中,仅需记录被修改的记录信息、快照标识和一些修改状态,无需进行全量数据文件的备份,能够有效节省备份时耗费的存储空间,并减少备份所消耗的时间,尽可能地减少对上层业务的影响。
可选地,在根据更新数据修改目标记录信息的过程中,可以有多种修改方式,具体可以根据实际业务需求确定,例如可以是向目标记录信息插入新数据,可以是向目标记录信息替换新数据等,本实施例对此不作具体限制。
在前述描述的基础上,下面结合图5对计算节点100执行的数据恢复过程进行详细说明,请参阅图5,在步骤s130之后,本实施例提供的mpp数据库管理方法还可以包括如下步骤:
步骤s140,根据主节点200发送的快照恢复指令,确定对应的快照备份标识以及至少一个恢复对象,恢复对象通过至少一个恢复对象页进行存储。
步骤s150,查找预先为每个恢复对象分配的第一位图空间以及每个恢复对象页对应的快照备份空间和第二位图空间。
步骤s160,根据快照备份标识、快照备份空间、第一位图空间以及每个恢复对象页对应的第二位图空间对每个恢复对象执行恢复操作。
本实施例中,恢复对象可以由主节点200根据客户端的提交需求进行确定,可以仅确定一个恢复对象,也可以确定多个或者所有的恢复对象,只需保证这些恢复对象都预先对其进行备份即可,本实施例对此不作具体限制。
本实施例中,上述的快照备份标识也可以由主节点200根据客户端的提交需求进行确定,可以用于表征本次恢复过程具体恢复的是哪一次备份时的数据对象。例如,以前述的快照备份标识包括201901011230和201901301250为例,当选择201901011230时,可以表示恢复的是2019年1月1日12:30备份的数据对象,当用户选择201901301250时,可以表示恢复的是2019年1月30日12:50备份的数据对象。
在此基础上,当计算节点100接收到主节点200下发的快照恢复指令时,可以在对每个恢复对象进行恢复过程中,查找预先为每个恢复对象分配的第一位图空间以及每个恢复对象页对应的快照备份空间和第二位图空间,并根据快照备份标识、快照备份空间、第一位图空间以及每个恢复对象页对应的第二位图空间对每个恢复对象执行恢复操作。如此,在恢复过程中,仅需根据记录的快照标识和修改状态恢复被修改的记录信息,无需进行全量数据文件的恢复,能够有效减少恢复所消耗的时间,尽可能地减少对上层业务的影响,此外还可以针对数据对象实现单独的恢复,不影响其它数据对象的正常业务操作。
在一种可能的实施方式中,针对步骤s160,可以针对每个恢复对象,根据该恢复对象对应的第一位图空间判断每个恢复对象页的修改状态是否为已修改状态。当任意一个恢复对象页的修改状态为已修改状态时,根据该恢复对象页对应的第二位图空间判断该恢复对象页对应的每个记录信息是否为已修改状态。当任意一个记录信息的修改状态为已修改状态时,判断预先记录的该记录信息对应的快照标识是否与快照备份标识匹配。当该记录信息对应的快照标识与快照备份标识匹配时,从快照备份空间中查找该记录信息,并将该记录信息恢复到该恢复对象页中。
例如,仍旧以图3所示的示例为例,假设该备份对象为本次恢复过程中的恢复对象,并且本次恢复过程确定的快照备份标识为201901301250,那么则可以根据该恢复对象对应的第一位图空间判断page1、page2、page3、page4的修改状态是否为已修改状态,也即判断p1、p2、p3、p4的比特值是否为1。以p4的比特值为1为例,可以根据page4对应的第二位图空间判断page4对应的tuple1、tuple2、tuple3、tuple4是否为已修改状态,也即判断t1、t2、t3、t4的比特值是否为1。以t1的比特值为1为例,可以判断预先记录的tuple1对应的快照标识是否为201901301250。当tuple1对应的快照标识为201901301250时,可以从快照备份空间中查找tuple1,并将tuple1恢复到当前的page4中,否则不对tuple1进行恢复。
进一步地,基于同一发明构思,请参阅图6,示出了本申请实施例提供的mpp数据库管理装置110的功能模块示意图,本实施例可以根据上述方法实施例对mpp数据库管理装置110进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。比如,在采用对应各个功能划分各个功能模块的情况下,图6示出的mpp数据库管理装置110只是一种装置示意图。其中,mpp数据库管理装置110可以包括第一确定模块111、分配模块112以及记录模块113,下面分别对该mpp数据库管理装置110的各个功能模块的功能进行详细阐述。
第一确定模块111,用于根据主节点200发送的快照备份指令,确定对应的快照备份标识以及至少一个备份对象,其中,备份对象通过至少一个备份对象页进行存储。可以理解,该第一确定模块111可以用于执行上述步骤s110,关于该第一确定模块111的详细实现方式可以参照上述对步骤s110有关的内容。
分配模块112,用于针对每个备份对象,为该备份对象分配对应的第一位图空间以及每个备份对象页对应的快照备份空间和第二位图空间,并记录该备份对象对应的每个备份对象页中的每条记录信息的快照标识为快照备份标识。可以理解,该分配模块112可以用于执行上述步骤s120,关于该分配模块112的详细实现方式可以参照上述对步骤s120有关的内容。
记录模块113,用于通过第一位图空间记录每个备份对象页的修改状态,并通过快照备份空间记录备份对象页中被修改的记录信息,通过第二位图空间记录备份对象页中每条记录信息的修改状态。可以理解,该记录模块113可以用于执行上述步骤s130,关于该记录模块113的详细实现方式可以参照上述对步骤s130有关的内容。
在一种可能的实施方式中,记录模块113具体可以用于:
当检测到向该备份对象写入的更新数据时,判断该备份对象是否存在与更新数据关联的目标对象页;
当存在与更新数据关联的目标对象页时,判断第一位图空间中当前记录的该目标对象页的修改状态是否为已修改状态;
当该目标对象页的修改状态为已修改状态时,判断该目标对象页对应的第二位图空间中,与更新数据关联的目标记录信息的修改状态是否为已修改状态;
当目标记录信息的修改状态为已修改状态时,根据更新数据修改目标记录信息,并将被修改的目标记录信息备份到快照备份空间中。
在一种可能的实施方式中,记录模块113具体还可以用于:
当不存在与更新数据关联的目标对象页时,创建目标对象页,在该备份对象对应的第一位图空间中添加目标对象页的位图空间以通过该位图空间记录目标对象页的修改状态,并为目标对象页分配对应的第二位图空间;
将更新数据更新到目标对象页中与更新数据关联的目标记录信息中,在添加的位图空间中将目标对象页的修改状态置为已修改状态,并在该第二位图空间中将目标记录信息的修改状态置为已修改状态;
将目标记录信息备份到快照备份空间中。
在一种可能的实施方式中,记录模块113具体还可以用于:
当该目标对象页的修改状态为未修改状态时,在第一位图空间将该目标对象页的修改状态置为已修改状态,并根据更新数据修改该目标对象页中与更新数据关联的目标记录信息;
在该目标对象页对应的第二位图空间中将目标记录信息的修改状态置为已修改状态;
将目标记录信息备份到快照备份空间中。
在一种可能的实施方式中,记录模块113具体还可以用于:
当目标记录信息的修改状态为未修改状态时,将目标记录信息备份到快照备份空间中;
在该目标对象页对应的第二位图空间中将目标记录信息的修改状态置为已修改状态,并根据更新数据修改目标记录信息。
在一种可能的实施方式中,请进一步参阅图7,mpp数据库管理装置110还可以包括第二确定模块114、查找模块115以及恢复模块116,下面分别对第二确定模块114、查找模块115以及恢复模块116的功能进行详细阐述。
第二确定模块114,用于根据主节点200发送的快照恢复指令,确定对应的快照备份标识以及至少一个恢复对象,恢复对象通过至少一个恢复对象页进行存储。可以理解,该第二确定模块114可以用于执行上述步骤s140,关于该第二确定模块114的详细实现方式可以参照上述对步骤s140有关的内容。
查找模块115,用于查找预先为每个恢复对象分配的第一位图空间以及每个恢复对象页对应的快照备份空间和第二位图空间。可以理解,该查找模块115可以用于执行上述步骤s150,关于该查找模块115的详细实现方式可以参照上述对步骤s150有关的内容。
恢复模块116,用于根据快照标识、快照备份空间、第一位图空间以及每个恢复对象页对应的第二位图空间对每个恢复对象执行恢复操作。可以理解,该恢复模块116可以用于执行上述步骤s160,关于该恢复模块116的详细实现方式可以参照上述对步骤s160有关的内容。
在一种可能的实施方式中,恢复模块116可以通过以下方式对每个恢复对象执行恢复操作:
针对每个恢复对象,根据该恢复对象对应的第一位图空间判断每个恢复对象页的修改状态是否为已修改状态;
当任意一个恢复对象页的修改状态为已修改状态时,根据该恢复对象页对应的第二位图空间判断该恢复对象页对应的每个记录信息是否为已修改状态;
当任意一个记录信息的修改状态为已修改状态时,判断预先记录的该记录信息对应的快照标识是否与快照备份标识匹配;
当该记录信息对应的快照标识与快照备份标识匹配时,从快照备份空间中查找该记录信息,并将该记录信息恢复到该恢复对象页中。
基于同一发明构思,请参阅图8,示出了本申请实施例提供的用于执行上述mpp数据库管理方法的计算节点100的结构示意框图,该计算节点100可以包括mpp数据库管理装置110、机器可读存储介质120和处理器130。
本实施例中,机器可读存储介质120与处理器130均位于计算节点100中且二者分离设置。然而,应当理解的是,机器可读存储介质120也可以是独立于计算节点100之外,且可以由处理器130通过总线接口来访问。可替换地,机器可读存储介质120也可以集成到处理器130中,例如,可以是高速缓存和/或通用寄存器。
处理器130是该计算节点100的控制中心,利用各种接口和线路连接整个计算节点100的各个部分,通过运行或执行存储在机器可读存储介质120内的软件程序和/或模块,以及调用存储在机器可读存储介质120内的数据,执行该计算节点100的各种功能和处理数据,从而对计算节点100进行整体监控。可选地,处理器130可包括一个或多个处理核心;例如,处理器130可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。
其中,处理器130可以是一个通用的中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制上述方法实施例提供的mpp数据库管理方法的程序执行的集成电路。
机器可读存储介质120可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammabler-onlymemory,eeprom)、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。机器可读存储介质120可以是独立存在,通过通信总线与处理器130相连接。机器可读存储介质120也可以和处理器集成在一起。其中,机器可读存储介质120用于存储执行本申请方案的机器可执行指令。处理器130用于执行机器可读存储介质120中存储的机器可执行指令,以实现前述方法实施例提供的mpp数据库管理方法。
mpp数据库管理装置110可以包括存储在机器可读存储介质120中的软件功能模块(例如第一确定模块111、分配模块112以及记录模块113),当处理器130执行机器可读存储介质120中的软件功能模块时,实现前述方法实施例提供的mpp数据库管理方法。
由于本申请实施例提供的计算节点100是上述方法实施例的另一种实现形式,且计算节点100可用于执行上述方法实施例提供的mpp数据库管理方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
进一步地,本申请实施例还提供一种包含计算机可执行指令的可读存储介质,计算机可执行指令在被执行时可以用于实现上述方法实施例提供的mpp数据库管理方法。
本申请实施例是参照根据本申请实施例的方法、设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。