CN117170942B - 一种基于文件系统快照的数据库备份方法以及相关设备 - Google Patents

一种基于文件系统快照的数据库备份方法以及相关设备 Download PDF

Info

Publication number
CN117170942B
CN117170942B CN202311454408.1A CN202311454408A CN117170942B CN 117170942 B CN117170942 B CN 117170942B CN 202311454408 A CN202311454408 A CN 202311454408A CN 117170942 B CN117170942 B CN 117170942B
Authority
CN
China
Prior art keywords
backup
page
target
snapshot
data table
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
CN202311454408.1A
Other languages
English (en)
Other versions
CN117170942A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311454408.1A priority Critical patent/CN117170942B/zh
Publication of CN117170942A publication Critical patent/CN117170942A/zh
Application granted granted Critical
Publication of CN117170942B publication Critical patent/CN117170942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了一种基于文件系统快照的数据库备份方法以及相关设备,可以获取文件系统;获取文件系统对应的数据表;对数据表进行快照处理,得到数据表对应的数据表快照;从数据表快照中读取待备份的目标组对应的区描述页面信息;基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面;对目标区或者目标页面进行备份操作。本申请可以提升基于文件系统快照的数据库备份的效率,并降低存储成本。

Description

一种基于文件系统快照的数据库备份方法以及相关设备
技术领域
本申请涉及计算机技术领域,具体涉及一种基于文件系统快照的数据库备份方法以及相关设备。
背景技术
在数据库出现系统崩溃、硬件故障、误删数据等意外情况时,备份回档能够避免数据丢失,并将数据库重新恢复到可用的状态。因此,备份和回档是数据库非常重要的功能。数据库系统通常能够通过多种备份策略进行文件的备份,包括物理备份、逻辑备份、快照备份等方法。
现有技术中,由于快照备份基于底层文件系统,无法感知数据库内部数据的状态,因此在执行快照备份时,文件系统会对数据库系统当前使用的所有存储空间进行快照,并将得到的数据作为该时间点的备份。在存储快照备份数据时,会存储快照得到的所有数据。
然而,在InnoDB 存储引擎内部管理的数据区块中,由于存在数据删除等操作,可能存在当前处于空闲状态,但未释放对应的存储空间给文件系统的区块。这一部分区块被数据库系统标识为 free 状态,挂载在空闲链表内,用于后续写入使用。在快照过程中对这一部分空闲数据进行备份,实际上会令快照备份文件产生冗余数据,导致备份速度变慢,并令存储备份文件的成本增加。
发明内容
本申请实施例提供一种基于文件系统快照的数据库备份方法以及相关设备,相关设备可以包括基于文件系统快照的数据库备份装置、电子设备、计算机可读存储介质和计算机程序产品,可以提升基于文件系统快照的数据库备份的效率,并降低存储成本。
本申请实施例提供一种基于文件系统快照的数据库备份方法,包括:
获取文件系统,所述文件系统中包括多个文件;
获取所述文件系统对应的数据表,所述数据表包括按预设顺序排列的多个页面,且所述数据表中多个连续页面构成一个区,所述数据表中多个连续区构成一个组;
对所述数据表进行快照处理,得到所述数据表对应的数据表快照;
从所述数据表快照中读取待备份的目标组对应的区描述页面信息,所述区描述页面信息中包括所述目标组中每个区对应的区描述信息,所述区描述信息中包括所述区对应的区状态信息、以及所述区中每个页面对应的页面状态信息;
基于所述区状态信息或者所述页面状态信息,从所述数据表中确定需要备份的目标区或者目标页面;
对所述目标区或者所述目标页面进行备份操作。
相应的,本申请实施例提供一种基于文件系统快照的数据库备份装置,包括:
第一获取单元,用于获取文件系统,所述文件系统中包括多个文件;
第二获取单元,用于获取所述文件系统对应的数据表,所述数据表包括按预设顺序排列的多个页面,且所述数据表中多个连续页面构成一个区,所述数据表中多个连续区构成一个组;
快照单元,用于对所述数据表进行快照处理,得到所述数据表对应的数据表快照;
读取单元,用于从所述数据表快照中读取待备份的目标组对应的区描述页面信息,所述区描述页面信息中包括所述目标组中每个区对应的区描述信息,所述区描述信息中包括所述区对应的区状态信息、以及所述区中每个页面对应的页面状态信息;
第一确定单元,用于基于所述区状态信息或者所述页面状态信息,从所述数据表中确定需要备份的目标区或者目标页面;
备份单元,用于对所述目标区或者所述目标页面进行备份操作。
可选的,在本申请的一些实施例中,所述第一确定单元包括第一获取子单元、第一确定子单元、以及第二确定子单元:
第一获取子单元,用于获取当前业务需求;
第一确定子单元,用于若基于所述当前业务需求确定当前以区为粒度进行备份,基于所述区状态信息,从所述数据表中确定需要备份的目标区;
第二确定子单元,用于若基于所述当前业务需求确定当前以页面为粒度进行备份,基于所述页面状态信息,从所述数据表中确定需要备份的目标页面。
可选的,在本申请的一些实施例中,所述第一确定子单元可以具体用于:为所述目标组中处于未被初始化状态、以及挂载在空闲链表状态的所述区赋予无需备份标识;将所述目标组中未被赋予所述无需备份标识的其他区,确定为需要备份的目标区。
可选的,在本申请的一些实施例中,所述第二确定子单元可以具体用于:若所述目标区中所述页面对应的所述页面状态信息的首个状态位为空闲状态值,将所述页面赋予无需备份标识;将所述目标区中未被赋予所述无需备份标识的其他页面,确定为需要备份的目标页面。
可选的,在本申请的一些实施例中,所述基于文件系统快照的数据库备份装置还包括第一划分单元、以及第二划分单元:
第一划分单元,用于若基于所述当前业务需求确定当前以区为粒度进行备份,将所述文件系统划分为尺寸与所述区相对应的多个文件块;
第二划分单元,用于若基于所述当前业务需求确定当前以页面为粒度进行备份,将所述文件系统划分为尺寸与所述页面相对应的多个文件块。
可选的,在本申请的一些实施例中,所述读取单元包括第三确定子单元、第二获取子单元、以及解析子单元:
第三确定子单元,用于基于接收到的备份请求对应的请求类型,从所述数据表中确定待备份的目标组;
第二获取子单元,用于从所述数据表快照中获取所述目标组对应的区描述页面;
解析子单元,用于解析所述区描述页面,得到所述区描述页面对应的区描述页面信息。
可选的,在本申请的一些实施例中,所述第三确定子单元可以具体用于:若接收到的备份请求为全量备份请求,将所述数据表中的全部组都确定为待备份的目标组;若接收到的备份请求为增量备份请求,将所述数据表中新增或者需要修改的组确定为待备份的目标组。
可选的,在本申请的一些实施例中,所述第三确定子单元还包括第四确定子单元、第五确定子单元、第三获取子单元、第一合并子单元、第二合并子单元、以及回档子单元:
第四确定子单元,用于基于接收到的回档请求,确定位于本次增量备份请求上一次的目标全量备份请求;
第五确定子单元,用于将所述目标全量备份请求与所述本次增量备份请求之间的所述增量备份请求、以及所述本次增量备份请求,都确定为目标增量备份请求;
第一合并子单元,用于对所述目标全量备份请求对应的数据库快照、以及所述目标增量备份请求对应的数据库快照进行合并处理,得到合并后数据库快照;
回档子单元,用于对所述合并后数据库快照进行回档操作。
可选的,在本申请的一些实施例中,所述第一合并子单元可以具体用于:将基于所述目标全量备份请求确定的无需备份标识、以及基于所述目标增量备份请求确定的无需备份标识进行合并处理,确定所述合并后数据库快照中无需回档的部分;基于所述无需回档的部分,对所述目标全量备份请求对应的数据库快照、以及所述目标增量备份请求对应的数据库快照进行合并处理,得到合并后数据库快照。
本申请实施例提供的一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行本申请实施例提供的基于文件系统快照的数据库备份方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行本申请实施例提供的基于文件系统快照的数据库备份方法中的步骤。
此外,本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的基于文件系统快照的数据库备份方法中的步骤。
本申请实施例提供了一种基于文件系统快照的数据库备份方法以及相关设备,可以获取文件系统,文件系统中包括多个文件;获取文件系统对应的数据表,数据表包括按预设顺序排列的多个页面,且数据表中多个连续页面构成一个区,数据表中多个连续区构成一个组;对数据表进行快照处理,得到数据表对应的数据表快照;从数据表快照中读取待备份的目标组对应的区描述页面信息,区描述页面信息中包括目标组中每个区对应的区描述信息,区描述信息中包括区对应的区状态信息、以及区中每个页面对应的页面状态信息;基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面;对目标区或者目标页面进行备份操作。本申请用于将存储引擎表空间内部以区为物理单位进行划分,并通过区描述页面记录对应区和页面的属性以及状态。利用其中区描述页面中记录的信息,可以获知相应的区或者页面是否需要备份,从而在备份期间跳过无需备份的部分。利用本申请技术方案可以提升基于文件系统快照的数据库备份的速度,减少备份文件的大小,并降低备份的存储成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的基于文件系统快照的数据库备份方法的场景示意图;
图2是本申请实施例提供的基于文件系统快照的数据库备份方法的第一流程图;
图3是本申请实施例提供的基于文件系统快照的数据库备份方法的第二流程图;
图4是本申请实施例提供的空间划分示意图;
图5是本申请实施例提供的区描述页面示意图;
图6是本申请实施例提供的区描述信息示意图;
图7是本申请实施例提供的文件备份示意图;
图8是本申请实施例提供的文件回档第一示意图;
图9是本申请实施例提供的文件回档第二示意图;
图10是本申请实施例提供的基于文件系统快照的数据库备份装置的结构示意图;
图11是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种基于文件系统快照的数据库备份方法以及相关设备,相关设备可以包括基于文件系统快照的数据库备份装置、电子设备、计算机可读存储介质和计算机程序产品。该电子设备可以是终端或服务器等设备。
如图1所示,本申请实施例提供的文件备份系统包括终端和服务器等;终端与服务器之间通过网络连接,比如,通过有线或无线网络连接等。
其中,服务器,可以用于:获取文件系统,文件系统中包括多个文件;获取文件系统对应的数据表,数据表包括按预设顺序排列的多个页面,且数据表中多个连续页面构成一个区,数据表中多个连续区构成一个组;对数据表进行快照处理,得到数据表对应的数据表快照;从数据表快照中读取待备份的目标组对应的区描述页面信息,区描述页面信息中包括目标组中每个区对应的区描述信息,区描述信息中包括区对应的区状态信息、以及区中每个页面对应的页面状态信息;基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面;基于文件系统快照的数据库备份。其中,服务器可以是单台服务器,也可以是由多个服务器组成的服务器集群或云服务器。
其中,终端,可以用于:向服务器发送备份或者回档的请求,以便服务器基于备份或者回档的请求进行相应的备份或者回档的操作。其中,终端可以包括手机、智能电视、平板电脑、笔记本电脑、智能车载终端、或台式电脑等。终端上还可以设置客户端,该客户端可以是视频客户端、信息流客户端、游戏客户端或浏览器客户端等等。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息(如用户的地理位置信息)等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。如图2所示,该基于文件系统快照的数据库备份方法可以由电子设备执行,该电子设备可以是终端或服务器,在本实施例中,以该电子设备是服务器为例进行说明,其具体流程可以如下:
201、获取文件系统。
其中,文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
比如,本申请实施例文件系统中包括多个文件。
202、获取文件系统对应的数据表。
其中,数据表是一个临时保存数据的网格虚拟表,在本申请实施例中,如图4所示,数据表包括按预设顺序排列的多个页面,且数据表中多个连续页面构成一个区,数据表中多个连续区构成一个组。
比如,如图4所示,本申请实施例可以应用InnoDB数据存储引擎,使用InnoDB数据存储引擎的数据表以表空间的数据文件形式写入磁盘,该数据表对应文件系统中的一个或多个实际文件。其中,每个表空间被划分为若干个页面,作为管理存储空间的基本单位,可以将页面的大小设置为16kb,并且每个页面都被分配一个32位的整数页码,该整数页码表示该页面与空间开头之间的文件偏移量,因此,第0个页面对应的文件偏移量为0、第1个页面对应的文件偏移量为16384,以此类推。
其中,InnoDB 是 MySQL 上提供外键约束的数据存储引擎,除了提供事务处理外,InnoDB 还支持行锁,提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,且不会增加锁的数量。
如图4所示,为了提高页面的分配效率,本申请实施例可以将多个物理连续的页面划分为一个区,可以将区的大小设置为1MB,其中包括64个页面,每个区对应一个区描述符(XDES),该区描述符可以描述相应区的状态信息。
如图4所示,为了维护区的状态,本申请实施例可以将多个物理连续的区划分为一个组,一个组中可以包括256个区。并且,每个组中第一个区的第一个页面被称为区描述页面(XDES Page),如图5所示,该区描述页面中存储了该组中256个区对应的区描述信息(XDES Entry),区描述信息0~区描述信息255存储了一个组中256个区的状态信息,通过读取区描述页面中所记载字段,可以得知对应的区或者页面是否空闲,从而选择是否备份相应的区或者页面。
其中,区描述信息是描述页面状态的结构体,描述了对应区的区状态信息、以及该区中64个页面的页面状态信息。如图6所示,区描述信息中的区状态值(State)描述了对应区的区状态信息,其中,区状态值为0时表示区状态信息为未被初始化(XDES_NOT_INITED)、区状态值为1时表示区状态信息为挂载在空闲链表下(XDES_FREE)、区状态值为2时表示区状态信息为挂载在有剩余空间的碎片区(XDES_FREE_FRAG)、区状态值为3时表示区状态信息为挂载在没有剩余空间的碎片区(XDES_FULL_FRAG)、区状态值为4时表示区状态信息为挂载在某个段下(XDES_FSEG)。
如图6所示,区描述信息中的页面状态信息(Page State Bitmap)描述了该区中64个页面的页面状态,其中,页面状态信息由两个二进制位组成,64个页面的页面状态信息共占用128bit(16字节),页面状态信息中第一个二进制位表示该页面是否空闲,第二个二进制位属于预留位,当前未被使用,其值始终为1。
203、对数据表进行快照处理,得到数据表对应的数据表快照。
其中,快照是指已定义数据集合的时间点副本,也即关于指定数据集合在某个时间点的一个完全可用拷贝,可用于将数据集合恢复到快照时间点的状态。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。
比如,接收到快照请求指令之后,可以通过底层文件系统支持的快照功能,对数据表进行快照备份,并得到数据表对应的数据表快照。
204、从数据表快照中读取待备份的目标组对应的区描述页面信息。
其中,区描述页面信息中包括目标组中每个区对应的区描述信息,区描述信息中包括区对应的区状态信息、以及区中每个页面对应的页面状态信息。比如,如图5所示,区描述页面中存储了该组中256个区对应的区描述信息:区描述信息0~区描述信息255,如图6所示,每个区描述信息中包括描述区状态信息的区状态值、以及描述页面状态的页面状态信息。
比如,本申请实施例可以通过读取数据库快照中的区描述页面信息,优化存储快照备份的方式,使其只存储必要的数据,从而提升文件备份的效率,并降低文件备份的存储成本。
可选的,在一实施例中,步骤“从数据表快照中读取待备份的目标组对应的区描述页面信息”,可以包括:
基于接收到的备份请求对应的请求类型,从数据表中确定待备份的目标组;
从数据表快照中获取目标组对应的区描述页面;
解析区描述页面,得到区描述页面对应的区描述页面信息。
其中,备份请求可以包括全量备份请求、以及增量备份请求。全量备份是在某一个时间点上对所有数据的一个完全拷贝;而增量备份会在上一次备份的基础上,仅备份新建或者修改的文件。
比如,对于不同的备份请求的请求类型,会相应的确定不同范围的目标组,也即可以根据接收到的备份请求所对应的请求类型,从数据表中确定实际上待备份的目标组,然后从数据表快照中获取目标组对应的区描述页面,并解析区描述页面中的区描述信息,以读取目标组中多个区的状态标识,也即区描述页面信息。
可选的,在一实施例中,步骤“基于接收到的备份请求对应的请求类型,从数据表中确定待备份的目标组”,可以包括:
若接收到的备份请求为全量备份请求,将数据表中的全部组都确定为待备份的目标组;
若接收到的备份请求为增量备份请求,将数据表中新增或者需要修改的组确定为待备份的目标组。
比如,若确定当前接收到的备份请求为全量备份请求,则可以将数据表中的全部组都确定为待备份的目标组;若确定当前接收到的文件备份请求为增量备份请求,则可以将数据表中新增或者需要修改的组确定为待备份的目标组,以降低增量备份的文件大小。
在一实施例中,比如,在实际快照备份流程中,通常会将备份文件拆分为固定大小的块用于保存,对于增量备份,可以只保存新建或修改的文件块,以降低增量备份的文件大小。因此,快照备份除了需要保存备份文件本身外,还需要在备份元信息内记录本次备份包含的块的状态,并记录每个文件块所属的位置和偏移量,用于在恢复时将文件块放置到对应的位置。
比如,由于文件系统中的文件与数据表中所记录的信息相对应,因此,可选的,在一实施例中,步骤“对目标区或者目标页面进行备份操作”之前,还可以包括:
若基于当前业务需求确定当前以区为粒度进行备份,将文件系统划分为尺寸与区相对应的多个文件块,文件块中包括若干文件;
若基于当前业务需求确定当前以页面为粒度进行备份,将文件系统划分为尺寸与页面相对应的多个文件块,文件块中包括若干文件。
比如,在实际快照备份流程中,通常会将备份文件拆分为固定大小的块用于保存,为了使快照备份过程能够感知被备份文件区域的使用状态,在拆分文件系统中的备份文件块时,可以将备份文件块拆分为与存储引擎内部划分的区或者页面相同的大小,这样就可以通过读取区描述页面内区描述信息中的状态位信息,判断对应的区或者页面是否需要备份,从而跳过空闲的区或者页面。另外,对于增量备份的情况,可以只保存新建或者修改的文件块,以降低增量备份的文件大小。
205、基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面。
比如,可以根据读取到的区状态信息、以及页面状态信息,得知对应的区、以及对应的页面当前是否被使用,也即是否需要备份,也就是从数据表中确定目标区、以及目标页面,该目标区、以及目标页面即为需要备份的部分。这样的话,本申请实施例就可以在快照备份期间跳过无需备份的部分,只对需要备份的部分进行备份,不但能够提升快照备份的速度,减少快照备份文件的大小,还能降低快照备份的存储成本。
可选的,在一实施例中,步骤“基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面”,可以包括:
获取当前业务需求;
若基于当前业务需求确定当前以区为粒度进行备份,基于区状态信息,从数据表中确定需要备份的目标区;
若基于当前业务需求确定当前以页面为粒度进行备份,基于页面状态信息,从数据表中确定需要备份的目标页面。
比如,由于业务需求的不同,那么对文件进行备份的粒度也相应的有所差别,本申请实施例可以根据当前业务需求的不同,决定当前以区为粒度进行备份,还是以页面为粒度进行备份。若确定当前以区为粒度进行备份,则仅需要根据区状态信息,从数据表中确定需要备份的目标区,也就是说以区为单位进行文件备份;若确定当前以页面为粒度进行备份,则仅需要根据页面状态信息,从数据表中确定需要备份的目标页面,也就是说以页面为单位进行文件备份。
可选的,在一实施例中,步骤“基于区状态信息,从数据表中确定需要备份的目标区”,可以包括:
为目标组中处于未被初始化状态、以及挂载在空闲链表状态的区赋予无需备份标识;
将目标组中未被赋予无需备份标识的其他区,确定为需要备份的目标区。
其中,如图6所示,区描述信息中的区状态值描述了对应区的区状态信息,其中,区状态值为0时表示区状态信息为未被初始化、区状态值为1时表示区状态信息为挂载在空闲链表下、区状态值为2时表示区状态信息为挂载在有剩余空间的碎片区、区状态值为3时表示区状态信息为挂载在没有剩余空间的碎片区、区状态值为4时表示区状态信息为挂载在某个段下。
比如,区状态信息为未被初始化的区代表对应的区未被初始化,区状态信息为挂载在空闲链表下的区代表对应的区当前处于空闲状态,因此,在本申请实施例中可以为区状态信息为未被初始化、以及区状态信息为挂载在空闲链表下的区赋予无需备份标识,避免增量备份回档时使用前序版本的文件块进行恢复,造成回档数据损坏。也就是说在存储快照备份时,可以跳过区状态信息为未被初始化、以及区状态信息为挂载在空闲链表下的区。那么,目标组中未被赋予无需备份标识的其他区,即为需要备份的目标区。
可选的,在一实施例中,步骤“基于页面状态信息,从数据表中确定需要备份的目标页面”,可以包括:
若目标区中页面对应的页面状态信息的首个状态位为空闲状态值,将页面赋予无需备份标识;
将目标区中未被赋予无需备份标识的其他页面,确定为需要备份的目标页面。
其中,区描述信息中的页面状态信息(Page State Bitmap)描述了该区中64个页面的页面状态,其中,页面状态信息由两个二进制位组成,64个页面的页面状态信息共占用128bit(16字节),页面状态信息中第一个二进制位表示该页面是否空闲,第二个二进制位属于预留位,当前未被使用,其值始终为1。
比如,对于目标区中的页面,若其页面状态信息中的第一个二进制位的值为0,代表对应的页在当前处于空闲状态,可以为其赋予无需备份标识,避免增量备份回档时使用前序版本的文件块进行恢复,造成回档数据损坏。也就是说在存储快照备份时,可以跳过该页进行存储。那么,目标区中未被赋予无需备份标识的其他页面,即为需要备份的目标页面。
在一实施例中,由于页面和区之间存在包含的关系,因此为了提升效率,还可以首先对需要备份的目标区进行判定,然后仅仅需要对目标区中的页面进行判定即可,省略了对无需备份区中页面的判定步骤,大大提升了备份的效率。也即,可以根据区状态信息,从数据表中确定需要备份的目标区,然后获取目标区中多个页面对应的页面状态信息,并根据获取到的页面状态信息,从目标区中确定需要备份的目标页面。
206、对目标区或者目标页面进行备份操作。
比如,确定了需要备份的目标区或者目标页面之后,就可以对目标区或者目标页面进行备份操作,以便回档时可以准确获取到相应的文件。
可选的,在一实施例中,步骤“若接收到的文件备份请求为增量备份请求,将数据表中新增或者需要修改的组确定为待备份的目标组”之后,还可以包括:
基于接收到的回档请求,确定位于本次增量备份请求上一次的目标全量备份请求;
将目标全量备份请求与本次增量备份请求之间的增量备份请求、以及本次增量备份请求,都确定为目标增量备份请求;
对目标全量备份请求对应的数据表快照、以及目标增量备份请求对应的数据表快照进行合并处理,得到合并后数据表快照;
对合并后数据库快照进行回档操作。
比如, 在回档增量备份文件时,由于增量备份文件并非全部文件,因此读取的区描述页信息需要是全量备份时获取到的区描述页信息,以避免增量备份未改变区描述页,导致未准确读取到区描述页信息。如图8所示,为了保证文件回档的完整性,可以在回档增量备份时,确定位于本次增量备份请求上一次的全量备份请求,并将该全量备份请求称为目标全量备份请求,同时,将目标全量备份请求与本次增量备份请求之间的增量备份请求、和本次增量备份请求都确定为目标增量备份请求,以便合并上一次全量备份请求到本次增量备份请求之间的快照链,并将快照链中的最新区块作为回档区块,从而进行回档操作。
可选的,在一实施例中,步骤“对目标全量备份请求对应的数据表快照、以及目标增量备份请求对应的数据表快照进行合并处理,得到合并后数据表快照”,还可以包括:
将基于所述目标全量备份请求确定的无需备份标识、以及基于所述目标增量备份请求确定的无需备份标识进行合并处理,确定所述合并后数据表快照中无需回档的部分;
基于所述无需回档的部分,对所述目标全量备份请求对应的数据表快照、以及所述目标增量备份请求对应的数据表快照进行合并处理,得到合并后数据表快照。
比如,如图8所示,本次增量备份请求为增量备份sid=3,本次增量备份请求上一次全量备份请求为全量备份sid=1,本次增量备份请求和上一次全量备份请求之间还包括一次增量备份请求,也即增量备份sid=2,由于增量备份请求仅针对更新或者修改过的文件,因此,可以对本次增量备份请求和上一次全量备份请求之间的数据库快照进行融合,使得融合后的合并后数据表快照包括最新的文件情况。
又由于之前的备份过程中,会对空闲或者不存在的文件块这种无需备份的部分赋予无需备份标识,因此,如图9所示,发起回档时,对于被赋予无需备份标识的文件块,可以跳过对这部分文件块的恢复。那么在增量备份合并快照链时,如果某个文件块的最新状态被赋予无需备份标识,则停止该区块的向上合并,不使用前序快照的文件块作为该文件块的最新状态,导入时不对最新状态位空闲的文件块进行导入。
在一实施例中,对于InnoDB表空间存在数据碎片时发起快照备份的场景,对于开启独立表空间的情况下,还可以使用optimize table语句重新组织表数据和索引数据的物理存储,以回收空闲的数据区块。
应用本申请技术方案可以解决如下场景的问题:在进行数据库删除操作后,对应的数据区已经被清空,并在数据库系统内部被标识为空闲状态以便后续使用,但未释放其对应的存储空间,那么这类存储空间在快照备份场景下仍然会被备份,就使得快照备份文件产生冗余数据。
应用本申请技术方案可以克服通过底层文件系统发起的快照备份无法过滤空白数据区的问题,能够在快照备份的场景下,感知数据区的状态,使得快照备份跳过存储引擎数据区块中的空闲区,以避免备份文件中存在冗余数据。将本申请技术方案应用到基于InnoDB存储引擎的数据库快照备份场景中,可加快快照备份和回档的运行速度,并减少快照备份文件的大小,从而降低存储成本,提升用户体验。
本申请技术方案在数据库进行表删除、尤其是大表删除的场景下优化效果更为显著。对于普通的MySQL数据库读写实例,开启本申请技术方案提供的优化方法可以使得快照备份的数据大小降低1%-5%,并节省上传下载此类空闲数据区块的时间。
由上可知,本实施例可以获取文件系统,文件系统中包括多个文件;获取文件系统对应的数据表,数据表包括按预设顺序排列的多个页面,且数据表中多个连续页面构成一个区,数据表中多个连续区构成一个组;对数据表进行快照处理,得到数据表对应的数据表快照;从数据表快照中读取待备份的目标组对应的区描述页面信息,区描述页面信息中包括目标组中每个区对应的区描述信息,区描述信息中包括区对应的区状态信息、以及区中每个页面对应的页面状态信息;基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面;对目标区或者目标页面进行备份操作。本申请用于将存储引擎表空间内部以区为物理单位进行划分,并通过区描述页面记录对应区和页面的属性以及状态。利用其中区描述页面中记录的信息,可以获知相应的区或者页面是否需要备份,从而在备份期间跳过无需备份的部分。利用本申请技术方案可以提升基于文件系统快照的数据库备份的速度,减少备份文件的大小,并降低备份的存储成本。
本申请实施例还提供一种基于文件系统快照的数据库备份方法,如图3所示,该基于文件系统快照的数据库备份方法可以由电子设备执行为例进行说明,其具体流程可以如下:
301、电子设备接收全量备份请求,并获取文件系统、以及数据表。
比如,使用InnoDB存储引擎的数据表以表空间的数据文件形式写入磁盘,对应文件系统的一个或多个实际文件。每个表空间被划分为若干个页面,作为管理存储空间的基本单位,页面的大小设置为16kb。为了提高页面的分配效率,可以将一组连续的页面划分一个区。一个区可以包含64个页面,大小为1MB,并应用区描述符描述对应区的状态。为了维护区的状态,可以将物理连续的256个区分为一组,每256个区的第一个区的第一个页被定义为区描述页,保存了接下来连续256个区的区描述信息结构。区描述信息是描述页面状态的结构体,描述了区本身的使用状态和区中的64个页面的状态,如图5所示,区描述信息1~区描述信息255保存了包括当前区在内的256个区的状态。
如图6所示,区描述信息中的区状态值(State)描述了对应区的区状态信息,其中,区状态值为0时表示区状态信息为未被初始化(XDES_NOT_INITED)、区状态值为1时表示区状态信息为挂载在空闲链表下(XDES_FREE)、区状态值为2时表示区状态信息为挂载在有剩余空间的碎片区(XDES_FREE_FRAG)、区状态值为3时表示区状态信息为挂载在没有剩余空间的碎片区(XDES_FULL_FRAG)、区状态值为4时表示区状态信息为挂载在某个段下(XDES_FSEG)。
如图6所示,区描述信息中的页面状态信息(Page State Bitmap)描述了该区中64个页面的页面状态,其中,页面状态信息由两个二进制位组成,64个页面的页面状态信息共占用128bit(16字节),页面状态信息中第一个二进制位表示该页面是否空闲,第二个二进制位属于预留位,当前未被使用,其值始终为1。
在一实施例中,为了使快照备份过程能够感知被备份文件区域的使用状态,在拆分备份文件块时,考虑将其拆分为与存储引擎内部划分的区或页面相同的大小,并通过读取区描述页内区状态信息中的状态位信息,判断对应的区或者页面是否需要备份,从而跳过空闲的区或者页面。
302、电子设备对数据表进行快照处理,得到全量备份请求对应的数据表快照。
303、电子设备从数据表快照中读取待全量备份的目标组对应的区描述页面信息。
其中,数据表快照中包括区描述页面,区描述页面描述了对应区和页面的状态,通过读取区描述页面的字段,可以得知对应区或者页面是否空闲,从而选择是否备份对应的区或者页面,就能够优化存储快照备份的方式,使其只存储必要的数据。
比如,对于某个区而言,如果其区状态信息为未被初始化、或者挂载在空闲链表下,代表对应的区未被初始化或当前处于空闲状态,在存储快照备份时,可以跳过当前区。对于某个页面而言,如果其在页面状态信息中的第一个二进制状态位的值为0,代表对应的页在当前处于空闲状态,在存储快照备份时,可以跳过当前页。
304、电子设备基于区描述页面信息,对需要备份的目标区或者目标页面进行备份。
比如,当前文件系统中的文件块大小与区大小相对应,可以首先对数据区域执行快照,然后读取每256MB中的前16KB,解析其中的区描述信息,读取256个区的状态标识。如果状态标识为未被初始化或空闲状态,则跳过当前备份块的备份,否则正常对备份块进行备份。同理,可以以页面为粒度,读取页面状态信息,从而跳过不需要备份的空闲页。
305、电子设备接收增量备份请求。
其中,快照备份分为全量快照备份和增量快照备份。全量备份是在某一个时间点上对所有数据的一个完全拷贝,增量备份会在上一次备份的基础上,备份新建或修改的文件。
在实际快照备份流程中,通常会将备份文件拆分为固定大小的块用于保存,对于增量备份,可以只保存新建或修改的文件块,以降低增量备份的文件大小。因此,快照备份除了需要保存备份文件本身外,还需要在备份元信息内记录本次备份包含的块的状态,并记录每个文件块所属的位置和偏移量,用于在恢复时将文件块放置到对应的位置。
306、电子设备对数据表进行快照处理,得到增量备份请求对应的数据表快照。
307、电子设备从数据表快照中读取待增量备份的目标组对应的区描述页面信息。
308、电子设备基于区描述页面信息,对需要备份的目标区或者目标页面进行备份。
309、电子设备接收回档请求,并合并数据表快照,得到合并后数据表快照。
310、电子设备基于合并后数据表快照,进行回档操作。
比如,如图7所示,在回档增量备份时,需要读取全量快照对应的数据库快照,避免增量备份未改变区描述页面所,导致未读到准确的区描述页面信息。在回档增量备份时,会合并上一次全量备份到本次增量备份之间的快照链,将快照链中的最新区块作为回档区块。
对于空闲或不存在的文件块,可以跳过对块的备份,并在备份元信息中标识该文件块当前处于空闲状态,避免增量备份回档时使用前序版本的文件块进行恢复,造成回档数据损坏。发起回档时,对于标记当前处于空闲状态的文件块,跳过对该文件块的恢复。对于增量备份,在合并快照链时,如果某个文件块的最新状态被标识为空闲状态,则停止该区块的向上合并,不使用前序快照的文件块作为该文件块的最新状态,导入时不对最新状态位空闲的文件块进行导入。
由上可知,本实施例可以通过电子设备接收全量备份请求,并获取文件系统、以及数据表;对数据表进行快照处理,得到全量备份请求对应的数据表快照;从数据表快照中读取待全量备份的目标组对应的区描述页面信息;基于区描述页面信息,对需要备份的目标区或者目标页面进行备份;接收增量备份请求;对数据表进行快照处理,得到增量备份请求对应的数据表快照;从数据表快照中读取待增量备份的目标组对应的区描述页面信息;电子设备基于区描述页面信息,对需要备份的目标区或者目标页面进行备份;接收回档请求,并合并数据表快照,得到合并后数据表快照;基于合并后数据表快照,进行回档操作。本申请用于将存储引擎表空间内部以区为物理单位进行划分,并通过区描述页面记录对应区和页面的属性以及状态。利用其中区描述页面中记录的信息,可以获知相应的区或者页面是否需要备份,从而在备份期间跳过无需备份的部分。利用本申请技术方案可以提升基于文件系统快照的数据库备份的速度,减少备份文件的大小,并降低备份的存储成本。
为了更好地实施以上方法,本申请实施例还提供一种基于文件系统快照的数据库备份装置,如图10所示,该基于文件系统快照的数据库备份装置可以包括第一获取单元1001、第二获取单元1002、快照单元1003、读取单元1004、第一确定单元1005、以及备份单元1006,如下:
第一获取单元1001,用于获取文件系统,所述文件系统中包括多个文件;
第二获取单元1002,用于获取所述文件系统对应的数据表,所述数据表包括按预设顺序排列的多个页面,且所述数据表中多个连续页面构成一个区,所述数据表中多个连续区构成一个组;
快照单元1003,用于对所述数据表进行快照处理,得到所述数据表对应的数据表快照;
读取单元1004,用于从所述数据表快照中读取待备份的目标组对应的区描述页面信息,所述区描述页面信息中包括所述目标组中每个区对应的区描述信息,所述区描述信息中包括所述区对应的区状态信息、以及所述区中每个页面对应的页面状态信息;
第一确定单元1005,用于基于所述区状态信息或者所述页面状态信息,从所述数据表中确定需要备份的目标区或者目标页面;
备份单元1006,用于对所述目标区或者所述目标页面进行备份操作。
可选的,在本申请的一些实施例中,所述第一确定单元1005包括第一获取子单元、第一确定子单元、以及第二确定子单元:
第一获取子单元,用于获取当前业务需求;
第一确定子单元,用于若基于所述当前业务需求确定当前以区为粒度进行备份,基于所述区状态信息,从所述数据表中确定需要备份的目标区;
第二确定子单元,用于若基于所述当前业务需求确定当前以页面为粒度进行备份,基于所述页面状态信息,从所述数据表中确定需要备份的目标页面。
可选的,在本申请的一些实施例中,所述第一确定子单元可以具体用于:为所述目标组中处于未被初始化状态、以及挂载在空闲链表状态的所述区赋予无需备份标识;将所述目标组中未被赋予所述无需备份标识的其他区,确定为需要备份的目标区。
可选的,在本申请的一些实施例中,所述第二确定子单元可以具体用于:若所述目标区中所述页面对应的所述页面状态信息的首个状态位为空闲状态值,将所述页面赋予无需备份标识;将所述目标区中未被赋予所述无需备份标识的其他页面,确定为需要备份的目标页面。
可选的,在本申请的一些实施例中,所述基于文件系统快照的数据库备份装置还包括第一划分单元、以及第二划分单元:
第一划分单元,用于若基于所述当前业务需求确定当前以区为粒度进行备份,将所述文件系统划分为尺寸与所述区相对应的多个文件块;
第二划分单元,用于若基于所述当前业务需求确定当前以页面为粒度进行备份,将所述文件系统划分为尺寸与所述页面相对应的多个文件块。
可选的,在本申请的一些实施例中,所述读取单元1004包括第三确定子单元、第二获取子单元、以及解析子单元:
第三确定子单元,用于基于接收到的备份请求对应的请求类型,从所述数据表中确定待备份的目标组;
第二获取子单元,用于从所述数据表快照中获取所述目标组对应的区描述页面;
解析子单元,用于解析所述区描述页面,得到所述区描述页面对应的区描述页面信息。
可选的,在本申请的一些实施例中,所述第三确定子单元可以具体用于:若接收到的备份请求为全量备份请求,将所述数据表中的全部组都确定为待备份的目标组;若接收到的备份请求为增量备份请求,将所述数据表中新增或者需要修改的组确定为待备份的目标组。
可选的,在本申请的一些实施例中,所述第三确定子单元还包括第四确定子单元、第五确定子单元、第三获取子单元、第一合并子单元、第二合并子单元、以及回档子单元:
第四确定子单元,用于基于接收到的回档请求,确定位于本次增量备份请求上一次的目标全量备份请求;
第五确定子单元,用于将所述目标全量备份请求与所述本次增量备份请求之间的所述增量备份请求、以及所述本次增量备份请求,都确定为目标增量备份请求;
第一合并子单元,用于对所述目标全量备份请求对应的数据库快照、以及所述目标增量备份请求对应的数据库快照进行合并处理,得到合并后数据库快照;
回档子单元,用于对所述合并后数据库快照进行回档操作。
可选的,在本申请的一些实施例中,所述第一合并子单元可以具体用于:将基于所述目标全量备份请求确定的无需备份标识、以及基于所述目标增量备份请求确定的无需备份标识进行合并处理,确定所述合并后数据库快照中无需回档的部分;基于所述无需回档的部分,对所述目标全量备份请求对应的数据库快照、以及所述目标增量备份请求对应的数据库快照进行合并处理,得到合并后数据库快照。
由上可知,本实施例可以通过第一获取单元1001获取文件系统,文件系统中包括多个文件;通过第二获取单元1002获取文件系统对应的数据表,数据表包括按预设顺序排列的多个页面,且数据表中多个连续页面构成一个区,数据表中多个连续区构成一个组;通过快照单元1003对数据表进行快照处理,得到数据表对应的数据表快照;通过读取单元1004从数据表快照中读取待备份的目标组对应的区描述页面信息,区描述页面信息中包括目标组中每个区对应的区描述信息,区描述信息中包括区对应的区状态信息、以及区中每个页面对应的页面状态信息;通过第一确定单元1005基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面;通过备份单元1006对目标区或者目标页面进行备份操作。本申请用于将存储引擎表空间内部以区为物理单位进行划分,并通过区描述页面记录对应区和页面的属性以及状态。利用其中区描述页面中记录的信息,可以获知相应的区或者页面是否需要备份,从而在备份期间跳过无需备份的部分。利用本申请技术方案可以提升基于文件系统快照的数据库备份的速度,减少备份文件的大小,并降低备份的存储成本。
本申请实施例还提供一种电子设备,如图11所示,其示出了本申请实施例所涉及的电子设备的结构示意图,该电子设备可以是终端或者服务器等,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器1101、一个或一个以上计算机可读存储介质的存储器1102、电源1103和输入单元1104等部件。本领域技术人员可以理解,图11中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器1101是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器1102内的软件程序和/或模块,以及调用存储在存储器1102内的数据,执行电子设备的各种功能和处理数据。可选的,处理器1101可包括一个或多个处理核心;优选的,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。
存储器1102可用于存储软件程序以及模块,处理器1101通过运行存储在存储器1102的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1102还可以包括存储器控制器,以提供处理器1101对存储器1102的访问。
电子设备还包括给各个部件供电的电源1103,优选的,电源1103可以通过电源管理系统与处理器1101逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1103还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元1104,该输入单元1104可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,该电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器1101会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1102中,并由处理器1101来运行存储在存储器1102中的应用程序,从而实现各种功能,如下:
获取文件系统,文件系统中包括多个文件;获取文件系统对应的数据表,数据表包括按预设顺序排列的多个页面,且数据表中多个连续页面构成一个区,数据表中多个连续区构成一个组;对数据表进行快照处理,得到数据表对应的数据表快照;从数据表快照中读取待备份的目标组对应的区描述页面信息,区描述页面信息中包括目标组中每个区对应的区描述信息,区描述信息中包括区对应的区状态信息、以及区中每个页面对应的页面状态信息;基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面;对目标区或者目标页面进行备份操作。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例可以获取文件系统,文件系统中包括多个文件;获取文件系统对应的数据表,数据表包括按预设顺序排列的多个页面,且数据表中多个连续页面构成一个区,数据表中多个连续区构成一个组;对数据表进行快照处理,得到数据表对应的数据表快照;从数据表快照中读取待备份的目标组对应的区描述页面信息,区描述页面信息中包括目标组中每个区对应的区描述信息,区描述信息中包括区对应的区状态信息、以及区中每个页面对应的页面状态信息;基于区状态信息或者页面状态信息,从数据表中确定需要备份的目标区或者目标页面;对目标区或者目标页面进行备份操作。本申请用于将存储引擎表空间内部以区为物理单位进行划分,并通过区描述页面记录对应区和页面的属性以及状态。利用其中区描述页面中记录的信息,可以获知相应的区或者页面是否需要备份,从而在备份期间跳过无需备份的部分。利用本申请技术方案可以提升基于文件系统快照的数据库备份的速度,减少备份文件的大小,并降低备份的存储成本。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种基于文件系统快照的数据库备份方法中的步骤。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种基于文件系统快照的数据库备份方法中的步骤,因此,可以实现本申请实施例所提供的任一种基于文件系统快照的数据库备份方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述文件备份方面的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种基于文件系统快照的数据库备份方法以及相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种基于文件系统快照的数据库备份方法,其特征在于,包括:
获取文件系统,所述文件系统中包括多个文件;
获取所述文件系统对应的数据表,所述数据表包括按预设顺序排列的多个页面,且所述数据表中多个连续页面构成一个区,所述数据表中多个连续区构成一个组;
对所述数据表进行快照处理,得到所述数据表对应的数据表快照;
从所述数据表快照中读取待备份的目标组对应的区描述页面信息,所述区描述页面信息中包括所述目标组中每个区对应的区描述信息,所述区描述信息中包括所述区对应的区状态信息、以及所述区中每个页面对应的页面状态信息;
基于所述区状态信息或者所述页面状态信息,从所述数据表中确定需要备份的目标区或者目标页面;
对所述目标区或者所述目标页面进行备份操作;
基于接收到的回档请求,确定位于本次增量备份请求上一次的目标全量备份请求;
将所述目标全量备份请求与所述本次增量备份请求之间的增量备份请求、以及所述本次增量备份请求,都确定为目标增量备份请求;
将基于所述目标全量备份请求确定的无需备份标识、以及基于所述目标增量备份请求确定的无需备份标识进行合并处理,确定合并后数据库快照中无需回档的部分;
基于所述无需回档的部分,对所述目标全量备份请求对应的数据库快照、以及所述目标增量备份请求对应的数据库快照进行合并处理,得到合并后数据库快照;
对所述合并后数据库快照进行回档操作。
2.根据权利要求1所述的基于文件系统快照的数据库备份方法,所述基于所述区状态信息或者所述页面状态信息,从所述数据表中确定需要备份的目标区或者目标页面,包括:
获取当前业务需求;
若基于所述当前业务需求确定当前以区为粒度进行备份,基于所述区状态信息,从所述数据表中确定需要备份的目标区;
若基于所述当前业务需求确定当前以页面为粒度进行备份,基于所述页面状态信息,从所述数据表中确定需要备份的目标页面。
3.根据权利要求2所述的基于文件系统快照的数据库备份方法,所述基于所述区状态信息,从所述数据表中确定需要备份的目标区,包括:
为所述目标组中处于未被初始化状态、以及挂载在空闲链表状态的所述区赋予无需备份标识;
将所述目标组中未被赋予所述无需备份标识的其他区,确定为需要备份的目标区。
4.根据权利要求2所述的基于文件系统快照的数据库备份方法,所述基于所述页面状态信息,从所述数据表中确定需要备份的目标页面,包括:
若所述目标区中所述页面对应的所述页面状态信息的首个状态位为空闲状态值,将所述页面赋予无需备份标识;
将所述目标区中未被赋予所述无需备份标识的其他页面,确定为需要备份的目标页面。
5.根据权利要求2所述的基于文件系统快照的数据库备份方法,所述对所述目标区或者所述目标页面进行备份操作之前,还包括:
若基于所述当前业务需求确定当前以区为粒度进行备份,将所述文件系统划分为尺寸与所述区相对应的多个文件块;
若基于所述当前业务需求确定当前以页面为粒度进行备份,将所述文件系统划分为尺寸与所述页面相对应的多个文件块。
6.根据权利要求1所述的基于文件系统快照的数据库备份方法,其特征在于,所述从所述数据表快照中读取待备份的目标组对应的区描述页面信息,包括:
基于接收到的备份请求对应的请求类型,从所述数据表中确定待备份的目标组;
从所述数据表快照中获取所述目标组对应的区描述页面;
解析所述区描述页面,得到所述区描述页面对应的区描述页面信息。
7.根据权利要求6所述的基于文件系统快照的数据库备份方法,其特征在于,所述基于接收到的备份请求对应的请求类型,从所述数据表中确定待备份的目标组,包括:
若接收到的备份请求为全量备份请求,将所述数据表中的全部组都确定为待备份的目标组;
若接收到的备份请求为增量备份请求,将所述数据表中新增或者需要修改的组确定为待备份的目标组。
8.一种基于文件系统快照的数据库备份装置,其特征在于,包括:
第一获取单元,用于获取文件系统,所述文件系统中包括多个文件;
第二获取单元,用于获取所述文件系统对应的数据表,所述数据表包括按预设顺序排列的多个页面,且所述数据表中多个连续页面构成一个区,所述数据表中多个连续区构成一个组;
快照单元,用于对所述数据表进行快照处理,得到所述数据表对应的数据表快照;
读取单元,用于从所述数据表快照中读取待备份的目标组对应的区描述页面信息,所述区描述页面信息中包括所述目标组中每个区对应的区描述信息,所述区描述信息中包括所述区对应的区状态信息、以及所述区中每个页面对应的页面状态信息;
第一确定单元,用于基于所述区状态信息或者所述页面状态信息,从所述数据表中确定需要备份的目标区或者目标页面;
备份单元,用于对所述目标区或者所述目标页面进行备份操作;基于接收到的回档请求,确定位于本次增量备份请求上一次的目标全量备份请求;将所述目标全量备份请求与所述本次增量备份请求之间的增量备份请求、以及所述本次增量备份请求,都确定为目标增量备份请求;将基于所述目标全量备份请求确定的无需备份标识、以及基于所述目标增量备份请求确定的无需备份标识进行合并处理,确定合并后数据库快照中无需回档的部分;基于所述无需回档的部分,对所述目标全量备份请求对应的数据库快照、以及所述目标增量备份请求对应的数据库快照进行合并处理,得到合并后数据库快照;对所述合并后数据库快照进行回档操作。
9.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行权利要求1至7任一项所述的基于文件系统快照的数据库备份方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1至7任一项所述的基于文件系统快照的数据库备份方法中的步骤。
CN202311454408.1A 2023-11-03 2023-11-03 一种基于文件系统快照的数据库备份方法以及相关设备 Active CN117170942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311454408.1A CN117170942B (zh) 2023-11-03 2023-11-03 一种基于文件系统快照的数据库备份方法以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311454408.1A CN117170942B (zh) 2023-11-03 2023-11-03 一种基于文件系统快照的数据库备份方法以及相关设备

Publications (2)

Publication Number Publication Date
CN117170942A CN117170942A (zh) 2023-12-05
CN117170942B true CN117170942B (zh) 2024-02-13

Family

ID=88943591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311454408.1A Active CN117170942B (zh) 2023-11-03 2023-11-03 一种基于文件系统快照的数据库备份方法以及相关设备

Country Status (1)

Country Link
CN (1) CN117170942B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133131A (zh) * 2017-05-31 2017-09-05 广州鼎甲计算机科技有限公司 一种基于VMware的虚拟机合成备份方法
CN108268341A (zh) * 2016-12-30 2018-07-10 大唐移动通信设备有限公司 一种数据迁移、备份及恢复方法及装置
CN108334541A (zh) * 2017-12-18 2018-07-27 中兴通讯股份有限公司 一种数据存储方法、装置、设备及存储介质
CN111143323A (zh) * 2019-12-02 2020-05-12 新华三大数据技术有限公司 Mpp数据库管理方法、装置及系统
CN112256492A (zh) * 2020-12-22 2021-01-22 深圳市科力锐科技有限公司 块设备备份方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633051B1 (en) * 2013-09-20 2017-04-25 Amazon Technologies, Inc. Backup of partitioned database tables
US11379411B2 (en) * 2019-01-07 2022-07-05 Vast Data Ltd. System and method for replicating file systems in remote object storages

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268341A (zh) * 2016-12-30 2018-07-10 大唐移动通信设备有限公司 一种数据迁移、备份及恢复方法及装置
CN107133131A (zh) * 2017-05-31 2017-09-05 广州鼎甲计算机科技有限公司 一种基于VMware的虚拟机合成备份方法
CN108334541A (zh) * 2017-12-18 2018-07-27 中兴通讯股份有限公司 一种数据存储方法、装置、设备及存储介质
CN111143323A (zh) * 2019-12-02 2020-05-12 新华三大数据技术有限公司 Mpp数据库管理方法、装置及系统
CN112256492A (zh) * 2020-12-22 2021-01-22 深圳市科力锐科技有限公司 块设备备份方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN117170942A (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
US7681001B2 (en) Storage system
US9418091B2 (en) Database operations on a columnar table database
CN108733306B (zh) 一种文件合并方法及装置
US11403021B2 (en) File merging method and controller
CN104301360A (zh) 一种日志数据记录的方法、日志服务器及系统
JP2002530776A (ja) 並行的なdbmsテーブル操作のための装置及び方法
CN113568582B (zh) 数据管理方法、装置和存储设备
CN107665219B (zh) 一种日志管理方法及装置
CN106446044B (zh) 存储空间回收方法及装置
US8019953B2 (en) Method for providing atomicity for host write input/outputs (I/Os) in a continuous data protection (CDP)-enabled volume using intent log
CN109558456A (zh) 一种文件迁移方法、装置、设备及可读存储介质
CN107506466B (zh) 一种小文件存储方法及系统
CN113868028A (zh) 一种在数据节点上回放日志的方法、数据节点及系统
CN110019063B (zh) 计算节点数据容灾回放的方法、终端设备及存储介质
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
CN112015716A (zh) 数据库数据迁移方法、装置、介质和电子设备
US6684308B2 (en) Method and system for providing direct access recovery using seekable tape device
US10877881B2 (en) In-place garbage collection of a sharded, replicated distributed state machine based on mergeable operations
CN117170942B (zh) 一种基于文件系统快照的数据库备份方法以及相关设备
US10452496B2 (en) System and method for managing storage transaction requests
US20200201721A1 (en) In-place garbage collection of a sharded, replicated distributed state machine based on supersedable operations
US11507458B2 (en) Storage management method, device, and computer program product
US7949632B2 (en) Database-rearranging program, database-rearranging method, and database-rearranging apparatus
US10528254B2 (en) Methods and systems of garbage collection and defragmentation in a distributed database
CN114297196A (zh) 元数据存储方法、装置、电子设备及存储介质

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