本发明涉及一种数据存储技术,尤其是涉及一种现代应用的备份恢复系统及方法。
背景技术:
随着互联网的快速发展,云技术的落地,移动办公、跨地域协作越来越多,在这样的背景下,各种基于对象存储构建的现代应用系统应运而生并快速发展,大量的数据涌入现代应用系统,现代应用系统包括业务单元、数据库以及对象存储,特点是数据保存在对象存储中,业务元数据保存在数据库中,当前对象存储只提供了基本的对象读写功能,要对整个现代应用系统进行快速备份恢复,成为当前面临的一个难题。
现有技术也给出了一些解决方案,中国专利cn201610565116.9提出了一种用于对象存储的数据备份方法和系统,该方法包括:对对象存储的存储桶中的存储对象创建快照和快照信息,根据用户对存储对象的更新请求,查询与存储对象对应的历史快照和快照信息中存储对象的备份特征信息;发送与备份特征信息有关的备份校验码至用户进行核对;根据用户反馈的核对结果,确定待接收的存储对象的更新数据信息;在接收到所确定的更新数据信息后,完成对象存储中的存储对象的更新,使用户的数据安全得到了最大程度的保障,减少了用户进行数据灾备的存储量,避免了用户将数据全部备份造成的公网带宽的浪费,节约了成本。
但该专利存在以下问题:
对象存储的备份恢复只能以存储对象为读写的单元,存储对象的数据大小不一,保存到对象存储中的可能都是一些小文件,随着存储对象数量的增长,备份所需的时间越来越长,一旦现代应用系统出现故障,恢复需要很长的时间,导致业务长时间的中断,无法满足备份恢复的要求;同时该专利也没有对数据库进行备份,业务单元无业务元数据无法提供业务,无法满足现代应用备份的完整性。
技术实现要素:
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种现代应用的备份恢复系统及方法,效率高,安全性好。
本发明的目的可以通过以下技术方案来实现:
一种现代应用的备份恢复系统,包括现代应用模块和备份模块;
所述的现代应用模块包括业务单元、对象存储网关、数据库和对象存储,所述业务单元用于生成大、小对象以及业务元数据,所述的对象存储网关用于接受和发送大、小对象,在对象存储中存储和查询大、小对象,将小对象进行合并为大对象并生成对象元数据,所述的数据库用于存储业务元数据和对象元数据,所述的元数据包括小对象合并后对应的大对象名称以及偏移量及长度,所述的对象存储网关采用对象存储s3接口,所述的业务元数据用于存写业务单元处理的数据,包括用户信息、用户权限、用户文件保存在对象存储的bucket的信息和对象名称,所述的对象元数据包括小对象合并后对应的大对象名称以及偏移量及长度;
所述的备份模块包括元数据备份单元和对象存储备份单元,所述的元数据备份单元用于对数据库中的元数据进行备份,生成不同时间点的元数据备份集,所述的对象存储备份单元用于对象存储中的大对象进行备份,生成大对象副本;
利用元数据备份集和大对象副本实现现代应用模块的损坏恢复和历史恢复。
进一步地,所述的损坏恢复过程具体为:
所述的对象存储备份单元将大对象副本恢复至对象存储,所述的元数据备份单元将最新的时间点的元数据备份集恢复至数据库。
所述的历史恢复过程具体为:
所述的元数据备份单元将指定的时间点的元数据备份集恢复至数据库,所述的对象存储备份单元通过数据库查询对应的大对象中指定位置以及长度的数据,并将该大对象恢复至对象存储中,即可恢复历史时间点数据。
进一步地,所述的业务单元向对象存储网关发送对象写请求和对象读请求;
当对象存储网关接收到对象写请求时接收业务单元生成的大、小对象,并直接将大对象存储在对象存储中,当小对象的数据量达到设定阈值时将所有小对象合并为大对象,生成对象元数据并储存在数据库中,然后删除对应的小对象;
当对象存储网关接收到对象读请求时先判断数据库中是否存在对象元数据,若是则根据对象元数据读取对象存储中对应的大对象中指定位置以及长度的数据,否则直接读取大对象。
一种现代应用的备份恢复方法,包括:
业务单元生成大、小对象,对象存储网关接收大、小对象并将其存储在对象存储中,同时将小对象合并为大对象,生成元数据,将元数据存储在数据库中,所述的业务单元访问对象存储的地址改为对象存储网关的地址,使业务单元访问对象存储的操作全部由对象存储网关接管,所述的对象存储网关采用对象存储s3接口,元数据备份单元对数据库中的元数据进行周期性备份,获得不同时间点的元数据备份集,对象存储备份单元对对象存储中的大对象进行周期性备份,生成大对象副本;
利用元数据备份集和大对象副本实现现代应用模块的损坏恢复和历史恢复。
进一步地,所述的业务元数据用于存写业务单元处理的数据,包括用户信息、用户权限、用户文件保存在对象存储的bucket的信息和对象名称,所述的对象元数据包括小对象合并后对应的大对象名称以及偏移量及长度。
进一步地,所述的损坏恢复过程具体为:
所述的对象存储备份单元将大对象副本恢复至对象存储,所述的元数据备份单元将最新的时间点的元数据备份集恢复至数据库。
进一步地,所述的历史恢复过程具体为:
所述的元数据备份单元将指定的时间点的元数据备份集恢复至数据库,所述的对象存储备份单元通过数据库查询对应的大对象,并将该大对象恢复至对象存储中。
进一步地,所述的业务单元向对象存储网关发送对象写请求和对象读请求;
当对象存储网关接收到对象写请求时接收业务单元生成的大、小对象,并直接将大对象存储在对象存储中,当小对象的数据量达到设定阈值时将所有小对象合并为大对象,生成对象元数据并储存在数据库中,然后删除对应的小对象;
当对象存储网关接收到对象读请求时先判断数据库中是否存在对象元数据,若是则根据对象元数据读取对象存储中对应的大对象中指定位置以及长度的数据,否则直接读取大对象。
与现有技术相比,本发明具有以如下有益效果:
(1)本发明通过对象存储网关接受和发送大、小对象,并合并小对象,元数据备份单元对数据库中的元数据进行周期性备份,生成不同时间点的元数据备份集,对象存储备份单元用于对象存储中的大对象进行备份,生成大对象副本,备份效率高,同时在现代应用模块出现损坏或者进行历史恢复时能够通过元数据备份集和大对象副本完整、快速地完成,效率高,操作方便,安全性好;
(2)本发明通过对象存储网关将达到一定数据量的小对象自动合并为大对象,将指定时间点的元数据备份集恢复至数据库,对象存储备份单元通过数据库查询对应的大对象,并将该大对象恢复至对象存储中,即可恢复历史数据,将最新时间点的元数据备份集恢复至数据库,将所有大对象副本恢复至对象存储即可完成现代应用模块损坏后的恢复,元数据备份集以及大对象副本一直是增量备份,能够完全保存历史数据,安全性好,可追溯性强,同时以大对象为单位进行传递,效率高。
附图说明
图1为系统结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
一种现代应用的备份恢复系统,如图1,包括现代应用模块和备份模块;
现代应用模块包括业务单元、对象存储网关、数据库和对象存储,所述业务单元用于生成大、小对象,对象存储网关用于接受和发送大、小对象,在对象存储中存储和查询大、小对象,将小对象进行合并为大对象并生成元数据,对象存储网关采用对象存储s3标准协议的接口,实现对象存储常用接口,数据库用于存储元数据,业务元数据用于存写业务单元必须处理的数据,包括用户信息、用户权限、用户文件保存在对象存储的bucket的信息和对象名称,对象元数据包括小对象合并后对应的大对象名称以及偏移量及长度;
备份模块包括元数据备份单元和对象存储备份单元,元数据备份单元用于对数据库中的元数据进行备份,生成不同时间点的元数据备份集,对象存储备份单元用于对象存储中的大对象进行备份,生成大对象副本;
利用元数据备份集和大对象副本实现现代应用模块的损坏恢复和历史恢复。
其中损坏恢复过程具体为:
对象存储备份单元将大对象副本恢复至对象存储,元数据备份单元将最新的时间点的元数据备份集恢复至数据库。
历史恢复过程具体为:
元数据备份单元将指定的时间点的元数据备份集恢复至数据库,对象存储备份单元通过数据库查询对应的大对象中指定位置以及长度的数据,并将该大对象恢复至对象存储中,即可恢复历史时间点数据。
业务单元访问对象存储的地址改为对象存储网关的地址,使业务单元访问对象存储的操作全部由对象存储网关接管,业务单元向对象存储网关发送对象写请求和对象读请求;
当对象存储网关接收到对象写请求时接收业务单元生成的大、小对象,并直接将大对象存储在对象存储中,当小对象的数据量达到设定阈值时将所有小对象合并为大对象,生成对象元数据并储存在数据库中,然后删除对应的小对象;
当对象存储网关接收到对象读请求时先判断数据库中是否存在对象元数据,若是则根据对象元数据读取对象存储中对应的大对象中指定位置以及长度的数据,否则直接读取大对象。
文档云中有许多用户,用户有大量的图片、文档等文件,这些文件直接保存在对象存储中,虽然对象存储中数据的可靠性很高,但是为了进一步保证安全,也需要做数据保护,实施步骤如下:
将访问对象存储的地址修改为对象存储网关的地址,对象存储中存储的大对象、数据库中的元数据分别通过对象存储备份单元和元数据备份单元进行备份,需要恢复时,选择指定时间点的元数据备份集以及大对象副本进行恢复。
实施例2
与实施例1对应的一种现代应用的备份恢复方法,包括:
业务单元生成大、小对象,对象存储网关接收大、小对象并将其存储在对象存储中,同时将小对象合并为大对象,生成对象元数据,将对象元数据存储在数据库中,对象存储网关采用对象存储s3接口,元数据备份单元对数据库进行周期性备份,获得不同时间点的元数据备份集,对象存储备份单元对对象存储中的大对象进行周期性备份,生成大对象副本;
利用元数据备份集和大对象副本实现现代应用模块的损坏恢复和历史恢复;
业务元数据用于存写业务单元处理的数据,包括用户信息、用户权限、用户文件保存在对象存储的bucket的信息和对象名称,所述的对象元数据包括小对象合并后对应的大对象名称以及偏移量及长度。
损坏恢复过程具体为:对象存储备份单元将大对象副本恢复至对象存储,元数据备份单元将最新的时间点的元数据备份集恢复至数据库;
历史恢复过程具体为:元数据备份单元将指定的时间点的元数据备份集恢复至数据库,对象存储备份单元通过数据库查询对应的大对象中指定位置以及长度的数据,并将该大对象恢复至对象存储中,即可恢复历史时间点数据。
将对象存储信息配置到对象存储网关中,业务单元访问对象存储的地址改为对象存储网关的地址,使业务单元访问对象存储的操作全部由对象存储网关接管,业务单元向对象存储网关发送对象写请求和对象读请求;
当对象存储网关接收到对象写请求时接收业务单元生成的大、小对象,并直接将大对象存储在对象存储中,当小对象的数据量达到设定阈值时将所有小对象合并为大对象,生成对象元数据并储存在数据库中,然后删除对应的小对象;
当对象存储网关接收到对象读请求时先判断数据库中是否存在对象元数据,若是则根据对象元数据读取对象存储中对应的大对象中指定位置以及长度的数据,否则直接读取大对象。
实施例1与实施例2提出了一种现代应用的备份恢复系统及方法,属于计算机软件现代应用系统及数据备份领域,涉及基于对象存储的业务系统及备份恢复等技术,是使用备份恢复技术,对现代应用系统进行快速备份恢复,解决现代应用系统备份恢复性能的问题,快速地将现代应用的数据备份到备份介质中,在现代应用系统损坏时,可快速的将备份介质中的数据恢复到现代应用系统中,达到现代应用系统的快速备份恢复。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。