数据备份方法及系统的制作方法

文档序号:9616173阅读:351来源:国知局
数据备份方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据处理技术领域,更具体地说,涉及一种数据备份方法及系统。
【背景技术】
[0002]为了防止计算机中的数据丢失或损坏,需要对计算机中的数据进行备份,以便在数据出现损坏或丢失的时候,可以通过备份的数据进行恢复。
[0003]当前的数据备份方案众多,主要方案有直接备份和多线程备份。直接备份方案简单,但备份性能差。多线程方案实现方式通常为:每个文件创建一个线程对该文件进行备份。多线程方案较直接备份方案备份性能有所提高。
[0004]发明人在实现本发明的过程中发现,目前的多线程备份方法中,文件数等于线程数,需要频繁创建和回收线程,消耗大量的CPU资源,备份性能仍然较低。

【发明内容】

[0005]本发明的目的是提供一种数据备份方法及系统,以提高备份性能。
[0006]为实现上述目的,本发明提供了如下技术方案:
[0007]一种数据备份方法,包括:
[0008]建立若干个线程池;
[0009]按数据存储目录获取待备份数据;
[0010]将从同一数据存储目录获取的待备份数据传输给所述若干个线程池中的同一个线程池;
[0011]线程池中的若干个线程用于对接收到数据进行备份。
[0012]上述方法,优选的,线程池对所接收到的数据进行数据备份的过程包括:
[0013]将所接收到的待备份数据按数据文件分配给不同的线程进行数据备份。
[0014]上述方法,优选的,还包括:
[0015]当第一线程池中的所有线程都处于繁忙状态时,若还有未备份的待备份数据,则将所述待备份数据加入到与所述第一线程池对应的队列中;所述第一线程池为所述若干个线程池中的任意一个线程池;
[0016]当所述第一线程池中有空闲线程时,从与所述第一线程池对应的队列中读取一数据文件并分配给该空闲线程进行数据备份。
[0017]上述方法,优选的,所述按数据存储目录获取待备份数据基于脚本语言实现;线程池进行数据备份的过程基于java语言实现。
[0018]上述方法,优选的,所述脚本语言为:shell脚本语言,或者,Python脚本语言,或者,ruby脚本语言。
[0019]—种数据备份系统,包括:
[0020]建立模块,用于建立若干个线程池;
[0021]获取模块,用于按数据存储目录获取待备份数据;
[0022]传输模块,用于将从同一数据存储目录获取的待备份数据传输给所述若干个线程池中的同一个线程池;
[0023]备份模块,用于维护所述若干个线程池,线程池中的若干个线程用于对接收到数据进行备份。
[0024]上述系统,优选的,所述线程池具体用于,将所接收到的待备份数据按数据文件分配给不同的线程进行数据备份。
[0025]上述系统,优选的,还包括:
[0026]队列管理模块,用于当第一线程池中的所有线程都处于繁忙状态时,若还有未备份的待备份数据,则将所述待备份数据加入到与所述第一线程池对应的队列中;所述第一线程池为所述若干个线程池中的任意一个线程池;
[0027]读取模块,用于当所述第一线程池中有空闲线程时,从与所述第一线程池对应的队列中读取一数据文件并分配给该空闲线程进行数据备份。
[0028]上述系统,优选的,所述获取模块基于脚本语言实现;所述备份模块基于java语言实现。
[0029]上述系统,优选的,所述脚本语言为:shell脚本语言,或者,Python脚本语言,或者,ruby脚本语言。
[0030]通过以上方案可知,本申请提供的一种数据备份方法及系统,建立若干个线程池,将属于同一个数据存储目录的数据分配给同一个线程池,即每个线程池负责一个目录的数据的备份,每个线程池中的线程负责目录中不同数据的备份,从而不需要频繁创建和回收线程,降低CPU资源的消耗,提高了数据备份性能。而且,采用多线程池进行数据备份,加大了并发备份数据分布的范围,降低了同时备份小文件集的可能性,从而增强了数据备份的稳定性。
【附图说明】
[0031]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1为本申请实施例提供的数据备份方法的一种实现流程图;
[0033]图2为本申请实施例提供的数据备份方法的系统架构图的示例图;
[0034]图3为本申请实施例提供的数据备份系统的一种结构示意图。
[0035]说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
【具体实施方式】
[0036]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]本发明实施例提供的数据备份方法及系统可以用于数据备份服务器。该服务器可以是待备份数据所在的服务器,也就是源数据所在服务器。当然,本发明实施例中,数据备份服务器也可以是与源数据所在服务器相互独立的服务器。
[0038]请参阅图1,图1为本申请实施例提供的数据备份方法的一种实现流程图,可以包括:
[0039]步骤S11:建立若干个线程池;
[0040]步骤S12:按数据存储目录获取待备份数据;
[0041]可以预先由用户配置备份参数,该备份参数可以包括:待备份数据的源路径、备份数据的目的地址以及线程池的数目。待备份数据的源路径即为数据存储目录。可以根据配置参数中的线程池的数目建立线程池。其中,线程池的数目和每个线程池中线程的数量可以根据数据备份服务器的硬件配置确定。所配置的线程池的数量和每个线程池中线程的个数只要能保证数据备份服务器的数据处理速度达到预设要求即可。例如,对于一般的PC机(如,4G内存,4核或8核的CPU)而言,线程池数量可以为3个,每个线程池中线程的数量可以为10个,具体还可以根据PC机的实际运行情况进行调优。
[0042]可选的,在配置备份参数时,还可以设置备份过滤条件,从而可以按数据存储目录获取符合条件的待备份数据,也就是说,所配置的每个数据存储目录下只获取符合条件的数据,不符合条件的数据则不再获取。另外,若用户未设置备份过滤条件,则所配置的每个数据存储目录下的所有数据都获取。
[0043]本发明实施例中,步骤S11和步骤S12的具体执行顺序不做具体限定,可以先执行步骤S11,再执行步骤S12,或者,先执行步骤S12,再执行步骤S11,或者,步骤S11和步骤S12同时进行。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1