著录项信息
专利名称 | 基于内存数据库的数据备份系统和方法 |
申请号 | CN201010207324.4 | 申请日期 | 2010-06-18 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2010-11-17 | 公开/公告号 | CN101887388A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 广东省深圳市南山区科技南路55号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中兴通讯股份有限公司 | 当前权利人 | 中兴通讯股份有限公司 |
发明人 | 杨志 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 余刚;吴孟秋 |
摘要
本发明公开了一种基于内存数据库的数据备份系统和方法,其中,系统包括:内存数据库、代理模块、和备份管理器,其中,备份管理器,用于向代理模块下发备份策略,其中,备份策略中包括所要备份的数据;代理模块,用于根据备份策略通过内存数据库提供的应用程序接口API访问内存数据库中的数据;将访问得到的数据传送给备份管理器以进行备份。本发明避免了对内存数据库的存盘操作的干扰,以及对内存数据库读写(IO)资源的占用问题,实现了对指定目标数据的备份。
1.一种基于内存数据库的数据备份系统,其特征在于,包括:内存数据库、代理模块、和备份管理器,其中,
所述备份管理器,用于向所述代理模块下发备份策略,其中,所述备份策略中包括所要备份的数据;
所述代理模块,用于根据所述备份策略通过所述内存数据库提供的应用程序接口API访问所述内存数据库中的所述数据;将访问得到的所述数据传送给所述备份管理器以进行备份。
2.根据权利要求1所述的系统,其特征在于,所述代理模块包括:
申请模块,用于在所述备份策略中还包括访问时间、访问数据量、以及访问速度的情况下,根据所述访问数据量向自己所在的前台服务器申请数据缓存区,其中,所述数据缓存区的大小不小于所述访问数据量;
访问模块,用于在所述申请模块申请到所述数据缓存区后,在所述访问时间、按照所述访问速度,通过所述内存数据库的所述API访问所述内存数据库中的数据表中的所述数据;
第一写入模块,用于将访问得到的所述数据写入申请到的所述数据缓存区中;
发送模块,用于将所述数据缓存区中的数据发送到所述备份管理器。
3.根据权利要求1所述的系统,其特征在于,所述备份管理器还用于将接收到的来自所述代理模块的数据写入到存储介质中。
4.根据权利要求3所述的系统,其特征在于,所述备份管理器包括:
压缩模块,用于在所述备份策略中还包括数据备份存放方式和备份存储路径,其中,所述数据存放方式包括格式压缩、单表存放或者整表存放的情况下,对所述接收到的数据进行格式压缩;
第二写入模块,用于将压缩后的数据按照所述数据备份存放方式写入到所述存储介质中的所述备份存储路径指示的存储空间中。
5.根据权利要求1所述的系统,其特征在于,所述备份管理器包括:配置模块,用于接收来自用户的配置指令,根据所述配置指令在所述备份管理器中增加、更新备份策略。
6.一种基于权利要求1至5中任一项的内存数据库的数据备份方法,其特征在于,包括:
代理模块确定要备份的数据;
所述代理模块通过应用程序接口API访问所述内存数据库中的所述数据;
备份管理器接收来自于所述代理模块的所述数据,并将访问得到的所述数据进行备份。
7.根据权利要求6所述的方法,其特征在于,确定所述数据的同时,还确定访问时间和访问速度;通过应用程序接口API访问所述内存数据库中的所述数据包括:
在所述访问时间、按照所述访问速度,通过所述内存数据库的所述API访问所述内存数据库中的数据表中的所述数据。
8.根据权利要求6所述的方法,其特征在于,确定所述数据的同时,还确定数据备份存放方式和备份存储路径,其中,所述数据存放方式包括格式压缩、单表存放或者整表存放;
将访问得到的所述数据进行备份包括:
将访问得到的所述数据进行格式压缩;
将压缩后的数据按照所述数据备份存放方式写入到存储介质中的所述备份存储路径指示的存储空间中。
基于内存数据库的数据备份系统和方法\n技术领域\n[0001] 本发明涉及通信领域,具体而言,涉及一种基于内存数据库的数据备份系统和方法。\n背景技术\n[0002] 目前,在对内存数据库的备份过程的研究中,针对内存数据库中的数据的备份方法主要有以下两种方式:利用存储文件复制的方式和利用内存数据导出的方式。\n[0003] 其中,采用对存储文件复制的备份方式,由于复制过程涉及到对内存数据库中的存储文件的占用(复制的独占性),因而在备份过程中对存储文件的复制会造成对正常的内存数据库的存盘过程的干扰。采用内存数据导出的备份方式(类似另存为的方式),这样会在短时间内占用大量的系统内存资源,从而造成内存数据库的响应速度的下降,即会对内存数据库的性能产生影响。\n发明内容\n[0004] 本发明的主要目的在于提供一种基于内存数据库的数据备份系统和方法,以至少解决上述的会对内存数据库的正常存储过程造成干扰的问题。\n[0005] 根据本发明的一个方面,提供了一种基于内存数据库的数据备份系统,包括:内存数据库、代理模块、和备份管理器,其中,备份管理器,用于向代理模块下发备份策略,其中,备份策略中包括所要备份的数据;代理模块,用于根据备份策略通过内存数据库提供的应用程序接口API访问内存数据库中的数据;将访问得到的数据传送给备份管理器以进行备份。\n[0006] 根据本发明的另一方面,提供了一种基于内存数据库的数据备份方法,包括:确定要备份的数据;通过应用程序接口API访问内存数据库中的数据;将访问得到的数据进行备份。\n[0007] 通过本发明,利用代理机制对内存数据库中的数据进行备份操作,具体地利用内存数据库自身提供的API,使备份行为转化为一种正常的对内存数据库的访问方式,由于内存数据库对于正常的访问服务允许并发访问,从而避免了对内存数据库的存盘操作的干扰,以及对内存数据库读写(IO)资源的占用问题,实现了对指定目标数据的备份。\n附图说明\n[0008] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:\n[0009] 图1是根据本发明实施例的基于内存数据库的数据备份系统的示意图;\n[0010] 图2是根据本发明实施例的基于内存数据库的数据备份系统进行数据备份的流程图;\n[0011] 图3是根据本发明优选实施例的Agent模块对内存数据库的访问操作流程图;\n[0012] 图4是根据本发明实施例的基于内存数据库的数据备份方法的流程图。\n具体实施方式\n[0013] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。\n[0014] 图1是根据本发明实施例的基于内存数据库的数据备份系统,包括:内存数据库\n10、代理模块20、和备份管理器30,其中,\n[0015] 备份管理器30,用于向代理模块20下发备份策略,其中,备份策略中包括所要备份的数据(可以为一个/多个数据表中的数据);\n[0016] 代理(Agent)模块20,用于根据该备份策略通过内存数据库10提供的API(Application Programming Interface,应用程序接口,也称为应用编程接口)访问内存数据库10中的上述所要备份的数据;将访问得到的数据传送给备份管理器30以进行备份。\n[0017] 该优选实施例利用代理机制对内存数据库中的数据进行备份操作,具体地利用内存数据库自身提供的API,使备份行为转化为一种正常的对内存数据库的访问方式,由于内存数据库对于正常的访问服务允许并发访问,从而避免了对内存数据库的存盘操作的干扰,以及对内存数据库读写(IO)资源的占用问题。通过在备份策略中指定所要备份的数据,实现了对指定目标数据的备份。\n[0018] 在实际实施的过程中,上述的内存数据库10、Agent模块20可以设置在前台应用系统中,备份管理器30可以设置在后台管理系统中。\n[0019] 优选地,代理模块20包括:申请模块,用于在上述备份策略中还包括访问时间、访问数据量、以及访问速度的情况下,根据该访问数据量向自己所在的前台服务器申请数据缓存区,其中,数据缓存区的大小不小于访问数据量;访问模块,用于在申请模块申请到数据缓存区后,在上述访问时间、按照上述访问速度,通过内存数据库10的API访问内存数据库10中的数据表中的数据;第一写入模块,用于将访问得到的数据写入申请到的数据缓存区中;发送模块,用于将数据缓存区中的数据发送到备份管理器20。\n[0020] 该优选实施例提供了代理模块向内存数据库访问数据的具体实施方案。通过在备份策略中指定访问速度,可以将访问数据的速度限制在内存数据库的性能范围内,以避免对内存数据库的性能带来的影响和干扰。此外,通过在备份策略中指定访问时间,还可以使得代理模块在内存数据库的数据访问高峰期访问较少的数据、在非高峰期访问较多的数据,从而极大地减轻备份活动带来的短时间内大规模的系统资源占用情况,从而保证了内存数据库运行的可靠性和稳定性。\n[0021] 优选地,备份管理器30还用于将接收到的来自代理模块20的数据写入到存储介质中。这样,可以由备份管理器对存储的备份数据进行管理。\n[0022] 优选地,备份管理器30包括:压缩模块,用于在上述备份策略中还包括数据备份存放方式和备份存储路径,其中,数据存放方式包括格式压缩、单表存放或者整表存放的情况下,对接收到的来自代理模块20的数据进行格式压缩;第二写入模块,用于将压缩后的数据按照上述数据备份存放方式写入到存储介质中的上述备份存储路径指示的存储空间中。这样,可以将备份数据先进行压缩,压缩后再进行存储,达到节省存储空间的效果。\n[0023] 优选地,备份管理器30包括:配置模块,用于接收来自用户的配置指令,根据配置指令在备份管理器中增加、更新备份策略。这样,可以根据用户的实际备份需求配置相应的备份策略,以对用户关心的数据在指定的时间进行备份,从而可以满足用户的各种需求。\n[0024] 综上,备份管理器主要负责备份策略的管理、配置,备份策略的下发,以及内存数据库数据的接收,压缩、备份数据的管理;Agent模块主要负载备份策略的接收,按照备份策略利用内存数据库提供的API对内存数据库进行访问,并将访问得到的内存数据库的数据按照格式发送给备份管理器以进行备份存储。\n[0025] 其中,在实际实施的过程中,备份策略除上述内容以外,还可以包括:前后台数据通讯大小,以使得备份管理器和Agent模块之间以该参数进行通讯。\n[0026] 结合图1,该数据备份系统实现对内存数据库中的数据进行备份的流程如图2所示,主要包括以下步骤:\n[0027] 步骤S202,操作人员在备份管理器30中针对本次内存数据库备份,新增或者修改备份策略;\n[0028] 步骤S204,由备份管理器30中的管理进程通过备份管理器中的通讯进程,和Agent模块20中的通讯进程建立连接,并将备份策略通过消息的方式传送到Agent模块20的管理进程中;\n[0029] 步骤S206,由Agent模块20的管理进程启动备份数据备份;\n[0030] 步骤S208至步骤S214,在Agent模块20启动备份数据功能后,根据备份策略利用数据访问进程向内存数据库10发送数据访问请求,内存数据库10根据数据访问请求,返回数据;在所要访问的数据全部传送完毕后,内存数据库10向Agent模块20中的管理进程返回数据访问应答。Agent模块20将数据缓存区中的数据发送到备份管理模块;\n[0031] 其中,上述步骤S208至步骤S212中的访问过程是基于内存数据的API访问操作方式进行的。\n[0032] 步骤S216,Agent模块20接收到返回的数据后,传输到备份管理器30的管理进程,由备份管理器30根据备份策略,利用存储进程完成对数据的存储;\n[0033] 步骤S218,Agent模块20根据备份策略判断备份是否结束,结束后,向备份管理模块30发送备份结束消息,通知备份管理器管理相关的数据存储操作。\n[0034] 其中,Agent模块20对内存数据库的访问操作流程(对应于上述的步骤S208至步骤S214)如图3所示,主要包括以下步骤:\n[0035] 步骤S302,根据接收到的备份策略,向自己所在的前台服务器申请数据缓冲区,该数据缓冲区的大小应不小于所要备份的数据量;\n[0036] 步骤S304至步骤S308,根据备份策略,通过内存数据库10提供的API获取待备份的数据表列表信息;\n[0037] 步骤S306至步骤S312,根据备份表列表,依次进行数据表备份操作,主要包括:读取数据表信息、将数据表信息写入数据缓冲区内、以及判断数据缓冲区的使用情况,如符合数据发送条件,则进行数据发送,将数据发送到备份管理器30;\n[0038] 步骤S314,数据表备份结束后,释放掉申请的数据缓冲区。\n[0039] 图4是根据本发明实施例的基于内存数据库的数据备份方法,包括以下步骤:\n[0040] 步骤S402,确定要备份的数据;\n[0041] 步骤S404,通过API(应用程序接口)访问内存数据库中的数据;\n[0042] 步骤S406,将访问得到的数据进行备份。\n[0043] 该实施例通过指定所要备份的数据,仅对指定的数据进行访问,从而解决了相关技术中存在的备份活动带来的短时间内大规模的内存资源占用,从而影响内存数据库的性能的问题。此外,通过内存数据库提供的API对数据进行访问以得到数据进行备份,从而将备份活动优化为一种正常的数据访问行为,解决了相关技术中存在的对内存数据库自身的存储过程带来干扰的问题。\n[0044] 优选地,步骤S402中确定要备份的数据的同时,还确定访问时间和访问速度;步骤S404包括:在上述访问时间、按照上述访问速度,通过内存数据库的API访问内存数据库中的数据表中的数据。这样,通过限定访问速度可以进一步避免对内存数据库的性能带来的影响。\n[0045] 优选地,步骤S402中确定要备份的数据的同时,还确定数据备份存放方式和备份存储路径,其中,数据存放方式包括格式压缩、单表存放或者整表存放;步骤S406包括:将访问得到的数据进行格式压缩;将压缩后的数据按照上述数据备份存放方式写入到存储介质中的备份存储路径指示的存储空间中。先压缩再存储可以节省存储空间。\n[0046] 上述的步骤S402和步骤S406可以由上述实施例中的备份管理器30来执行,步骤S404由Agent模块20来执行。\n[0047] 从以上的描述中,可以看出,本发明实现了如下技术效果:\n[0048] (1)通过代理机制实现对内存数据库的备份,将备份活动作为一种正常的数据访问进行处理,屏蔽了备份活动对内存数据库正常存储过程的干扰;\n[0049] (2)通过备份策略,可以极大地减轻备份活动带来的短时间内大规模的系统资源占用情况,从而保证了内存数据库系统运行的可靠性和稳定性;\n[0050] (3)由于采用的是内存数据库自身的数据读取方式(即API),因而,数据备份系统和方法的通用性较好,移植过程中仅需修改数据读写接口即可,改造成本较低,便于移植。\n[0051] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。\n[0052] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2014-03-12
- 2012-05-09
实质审查的生效
IPC(主分类): G06F 11/14
专利申请号: 201010207324.4
申请日: 2010.06.18
- 2010-11-17
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-02-08
|
2005-08-05
| | |
2
| |
2006-07-05
|
2004-12-24
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |