掌桥专利:专业的专利平台
掌桥专利
首页

数据的备份方法、相关装置、存储介质及系统

文献发布时间:2023-06-19 12:14:58


数据的备份方法、相关装置、存储介质及系统

技术领域

本申请涉及计算机技术领域,尤其涉及一种数据的备份方法、相关装置、存储介质及系统。

背景技术

随着大数据时代的到来,越来越能凸显出数据的重要地位。在对数据保管过程中,一旦遇到一些不可控的情况,如:数据缺失、乱码、被篡改等情况,将会造成巨大的损失。在相关技术中,可利用消息队列的相关特性,对原始数据进行多数据中心的同步复制,以实现数据的多处备份,但在该过程中对消息队列的相关特性十分依赖,进而导致数据备份过程极为复杂,以及该数据备份过程可移植性较差的问题。

发明内容

本申请实施例提供了一种数据的备份方法、相关装置、存储介质及系统,可以解决在相关技术中的数据备份过程比较复杂且可移植性较差的完整过程的问题。所述技术方案如下:

第一方面,本申请实施例提供了一种数据的备份方法,所述方法应用于第一服务器,所述第一服务器中包括第一存储空间和第二存储空间,所述第一存储空间为待处理队列存取数据的物理空间,所述第二存储空间为工作队列存取数据的物理空间,所述方法包括:

将至少一个备份任务写入所述待处理队列对应的第一存储空间中;其中,所述至少一个备份任务由所述第一服务器基于所述第一服务器接收到的至少一个分发请求生成;

基于所述待处理队列将所述至少一个备份任务流转到所述工作队列对应的第二存储空间中,以使所述工作队列为所述至少一个备份任务设置处理时刻得到至少一个待备份任务;其中,每个所述待备份任务关联有一个处理时刻;

将所述处理时刻为当前时刻的至少一个待备份任务写入所述待处理队列对应的第一存储空间中,并将所述第一存储空间中的至少一个待备份任务发送至第二服务器,以使所述第二服务器基于所述至少一个待备份任务从第三服务器中下载与所述至少一个待备份任务对应的至少一个待备份数据,并对所述至少一个待备份数据进行备份处理;其中,所述第三服务器中存储有用户上传的所述至少一个待备份数据。

第二方面,本申请实施例提供了一种数据的备份方法,所述方法应用于第二服务器,所述方法包括:

接收由第一服务器发送的至少一个待备份任务;其中,所述第一服务器中包括第一存储空间和第二存储空间,所述第一存储空间为待处理队列存取数据的物理空间,所述第二存储空间为工作队列存取数据的物理空间;所述至少一个待备份任务为存放在所述第一服务器的待处理队列中的至少一个待备份任务,所述至少一个待备份任务由所述第一服务器的工作队列对至少一个备份任务设置处理时刻得到,所述至少一个备份任务由所述第一服务器基于所述第一服务器接收到的至少一个分发请求生成;

基于所述至少一个待备份任务从第三服务器中下载与所述至少一个待备份任务对应的至少一个待备份数据,并对所述至少一个待备份数据进行备份处理;其中,所述第三服务器中存储有用户上传的所述至少一个待备份数据。

第三方面,本申请实施例提供了一种第一服务器,所述第一服务器中包括第一存储空间和第二存储空间,所述第一存储空间为待处理队列存取数据的物理空间,所述第二存储空间为工作队列存取数据的物理空间,所述第一服务器包括:

写入模块,用于将至少一个备份任务写入所述待处理队列对应的第一存储空间中;其中,所述至少一个备份任务由所述第一服务器基于所述第一服务器接收到的至少一个分发请求生成;

流转模块,用于基于所述待处理队列将所述至少一个备份任务流转到所述工作队列对应的第二存储空间中,以使所述工作队列为所述至少一个备份任务设置处理时刻得到至少一个待备份任务;其中,每个所述待备份任务关联有一个处理时刻;

处理模块,用于将所述处理时刻为当前时刻的至少一个待备份任务写入所述待处理队列对应的第一存储空间中,并将所述第一存储空间中的至少一个待备份任务发送至第二服务器,以使所述第二服务器基于所述至少一个待备份任务从第三服务器中下载与所述至少一个待备份任务对应的至少一个待备份数据,并对所述至少一个待备份数据进行备份处理;其中,所述第三服务器中存储有用户上传的所述至少一个待备份数据。

第四方面,本申请实施例提供了一种第二服务器,所述第二服务器包括:

接收模块,用于接收由第一服务器发送的至少一个待备份任务;其中,所述第一服务器中包括第一存储空间和第二存储空间,所述第一存储空间为待处理队列存取数据的物理空间,所述第二存储空间为工作队列存取数据的物理空间;所述至少一个待备份任务为存放在所述第一服务器的待处理队列中的至少一个待备份任务,所述至少一个待备份任务由所述第一服务器的工作队列对至少一个备份任务设置处理时刻得到,所述至少一个备份任务由所述第一服务器基于所述第一服务器接收到的至少一个分发请求生成;

处理模块,用于基于所述至少一个待备份任务从第三服务器中下载与所述至少一个待备份任务对应的至少一个待备份数据,并对所述至少一个待备份数据进行备份处理;其中,所述第三服务器中存储有用户上传的所述至少一个待备份数据。

第五方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第六方面,本申请实施例提供一种第一服务器,可包括:处理器、存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

第七方面,本申请实施例提供一种第二服务器,可包括:处理器、存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

第八方面,本申请实施例提供一种数据的备份系统,可包括:第一服务器、第二服务器;其中,所述第一服务器为前面描述的第一服务器,所述第二服务器为前面描述的第二服务器。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

本申请实施例的方案在执行时,第一服务器将至少一个备份任务写入待处理队列对应的第一存储空间中,第一服务器基于待处理队列将至少一个备份任务流转到工作队列对应的第二存储空间中,以使工作队列为至少一个备份任务设置处理时刻得到至少一个待备份任务,第一服务器将处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间中,第一服务器将第一存储空间中的至少一个待备份任务发送至第二服务器,第二服务器接收由第一服务器发送的至少一个待备份任务,第二服务器基于至少一个待备份任务从第三服务器中下载与至少一个待备份任务对应的至少一个待备份数据,第二服务器对至少一个待备份数据进行备份处理。通过利用第一服务器中的待处理队列和工作队列的Redis队列特性,对备份任务进行相关的处理得到待备份任务,并将该待备份任务发送给第二服务器,第二服务器在接收到该待备份任务后,可基于该待备份任务执行相应的备份操作,由此完成对第三服务器中待备份数据的备份处理,充分利用Redis队列特性以实现轻量级的数据备份架构的设计,也提高了该数据备份过程可移植性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的数据的备份系统的架构示意图;

图2是本申请实施例提供的一种数据的备份方法的流程示意图;

图3是本申请实施例提供的一种数据的备份方法的另一流程示意图;

图4是本申请实施例提供的数据的备份流程示意图;

图5是本申请实施例提供的一种数据的备份方法的另一流程示意图;

图6是本申请实施例提供的一种第一服务器的结构示意图;

图7是本申请实施例提供的一种第二服务器的结构示意图;

图8是本申请实施例提供的一种装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。

图1示出了可以应用于本申请的数据的备份系统的架构示意图。

如图1所示,数据的备份系统主要包括:第一服务器101和第二服务器102,数据备份的相关操作主要由第一服务器101和第二服务器102完成;该数据的备份系统还可以包括:用户终端103和第三服务器104。用户可以通过用户终端103与第三服务器104进行数据交互,第三服务器104会将用户相关的数据记录下来得到待备份数据;或用户可以通过用户终端103将需要储存的数据上传到第三服务器104中,用户终端103上传到第三服务器104的数据也即待备份数据。第三服务器104在接收到用户上传的待备份数据后,会先将该待备份数据存储到第三服务器104对应的主数据中心内,再基于该待备份数据生成用于指示第一服务器101进行数据备份相关操作的分发请求,并将该分发请求发送给第一服务器101。第一服务器101接收到该分发请求后,会对该分发请求进行解析得到备份任务,并对该备份任务进行相关处理后得到待备份任务,并将该待备份任务发送给第二服务器102。第二服务器102在接收到该待备份任务后,会基于该待备份任务从第三服务器104中下载与该待备份任务对应的待备份数据,并对所下载的待备份数据进行数据备份处理。需要说明的是,第二服务器102可以直接将其所下载的待备份数据复制到第二服务器102对应的数据库中,也可以是由第二服务器102将其所下载的待备份数据发送给专门用于数据备份存储的电子设备(用于数据存储的终端或服务器),以使该电子设备能存储其所接收到的待备份数据,由此实现对第二服务器102所下载的待备份数据的备份处理。

第一服务器101可以是分布式关键值(Key-Value,KV)服务器,用于处理由第三服务器104发送的用于数据备份的分发请求,以得到该分发请求对应的待备份任务,并将该待备份任务发送给第二服务器102,以使第二服务器102基于该待备份任务执行相应的备份操作。第一服务器101可以是硬件,也可以是软件。当第一服务器101为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当第一服务器101为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。

第二服务器102可以是备份任务执行服务器,用于接收由第一服务器101发送的待备份任务,并基于该待备份任务执行相应的数据备份操作。第二服务器102可以是硬件,也可以是软件。当第二服务器102为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当第二服务器102为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。

第三服务器104可以是数据存储服务器,用于接收并存储由用户终端103上传的待备份数据,并基于该待备份数据生成对应的分发请求,进而将该分发请求发送给第一服务器101,以使第一服务器101可基于该分发请求得到相应待备份任务。第三服务器104可以是硬件,也可以是软件。当第三服务器104为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当第三服务器104为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。

用户终端103可以是硬件,也可以是软件。当用户终端103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等等。当用户终端103为软件时,可以安装于上述所列举的电子设备中。其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。当用户终端103为硬件时,其上可以安装有显示设备,显示设备显示可以是各种能实现显示功能的设备;例如:显示设备可以是阴极射线管显示器(Cathode raytubedisplay,CR)、发光二极管显示器(Light-emitting diode display,LED)、电子墨水屏、液晶显示屏(Liquid crystal display,LCD)、等离子显示面板(Plasma displaypanel,PDP)等;用户可以利用用户终端103上的显示设备,来查看显示的文字、图片、视频等信息,并基于用户终端103与第三服务器104进行数据交互。

在本申请中,需要进行数据备份的原始数据均存储在第三服务器104中,该原始数据由用户基于用户终端103上传至第三服务器,该原始数据可被备份存储的位置可以是第二服务器102对应的本地数据库,也可以是专门用于数据备份存储的其他电子设备(用于数据存储的终端或服务器)。

应理解,图1中的第一服务器、第二服务器、第三服务器和用户终端的数目仅是示意性的。根据现实需要,可以是任意数量的第一服务器、第二服务器、第三服务器和用户终端。

下面将结合附图2至附图5,对本申请实施例提供的数据的备份方法进行详细介绍。

请参见图2,为本申请实施例提供了一种数据的备份方法的流程示意图。如图2所示,本申请实施例的所述方法可以包括以下步骤:

需要说明的是,第一服务器中包括第一存储空间和第二存储空间,第一存储空间为待处理队列存取数据的物理空间,第二存储空间为工作队列存取数据的物理空间。待处理队列和工作队列均为远程字典服务(Remote Dictionary Server,Redis)队列,Redis队列除了具备先进先出的特性外,还具备为存储在其对应存储空间内的数据设置键值的特性,以及基于设置的键值对数据进行排序的特性。

S201,第一服务器将至少一个备份任务写入待处理队列对应的第一存储空间中。

其中,至少一个备份任务由第一服务器基于第一服务器接收到的至少一个分发请求生成,至少一个分发请求通常由存储有用户上传的数据的第三服务器生成并发送给第一服务器。

具体的,用户在将数据上传至可以对数据进行存储的第三服务器后,第三服务器会对用户上传的数据进行存储,并会基于用户上传的数据生成用于数据备份的分发请求。若用户进行一次数据上传操作,则第三服务器会对应生成一个分发请求;若用户进行多次数据上传操作,则第三服务器会对应生成多个分发请求。并且,第三服务器会将该分发请求发送给第一服务器,第一服务器在接收到由第三服务器发送的分发请求后,会基于该分发请求生成该分发请求对应的备份任务,并将得到的备份任务写入待处理队列对应的第一存储空间中。写入待处理队列对应的第一存储空间内的备份任务对应的原始处理状态为待处理状态,待处理队列会基于其对应的Redis队列特性,对第一存储空间内的备份任务进行阻塞式弹出并推入操作,使第一存储空间内的备份任务流转到工作队列对应的第二存储空间中,并将该备份任务从第一存储空间中删除。

S202,第一服务器基于待处理队列将至少一个备份任务流转到工作队列对应的第二存储空间中,以使工作队列为至少一个备份任务设置处理时刻得到至少一个待备份任务。

其中,处理时刻是指第二存储空间内的备份任务可以写入到待处理队列中的时间点。在为每个备份任务设置其各自对应的处理时刻后可得到待备份任务,每个待备份任务关联有一个处理时刻。

具体的,在第一服务器基于其所接收到的至少一个分发请求生成至少一个备份任务后,会将该至少一个备份任务依次写入待处理队列对应的第一存储空间,进而待处理队列会基于其对应的Redis队列特性,对第一存储空间内的至少一个备份任务进行数据流转,使第一存储空间内的至少一个备份任务流转到工作队列对应的第二存储空间中。进而工作队列会对其对应的第二存储空间内的至少一个备份任务设置处理时刻,由此得到至少一个待备份任务,使每个待备份任务都对应有一个处理时刻。同时,第一服务器还会将至少一个待备份任务对应的原始处理状态更改为可执行状态,以便于后续待处理队列对其对应的第一存储空间内的处于可执行状态的至少一个待备份任务与其他数据(如:还未进行数据流转的原始备份任务等数据)进行区分。

S203,第一服务器将处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间中。

具体的,第一服务器可基于预设时间间隔(如:若处理时刻以1分钟为最小时间单位,则预设时间间隔可以1秒的时间间隔)对工作队列对应的第二存储空间内的数据进行周期性扫描。若检测到第二存储空间中存在处理时刻为当前时刻的至少一个待备份任务时,会将该至少一个待备份任务写入待处理队列中,此时工作队列对应的第二存储空间中仍存在写入到待处理队列对应的第一存储空间内的至少一个待备份任务。

S204,第一服务器将第一存储空间中的至少一个待备份任务发送至第二服务器。

具体的,第一服务器通过周期性地扫描工作队列对应的第二存储空间内至少一个待备份任务对应的处理时刻,由此确定当前需要写入待处理队列对应的第一存储空间内的至少一个待备份任务。在将处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间后,第一服务器会将第一存储空间中处理状态为可执行状态的至少一个待备份任务发送至第二服务器,以使第二服务器可基于其所接收到的至少一个待备份任务从第三服务器(第三服务器中存储有用户上传的至少一个待备份数据)中下载与该至少一个待备份任务对应的至少一个待备份数据,并对该至少一个待备份数据进行备份处理。

S205,第二服务器接收由第一服务器发送的至少一个待备份任务。

具体的,在第一服务器将待处理队列中处理状态为可执行状态的至少一个待备份任务发送给第二服务器后,第二服务器会接收到该至少一个待备份任务,并将该至少一个待备份任务存储至第二服务器的内存队列对应的存储空间中。第二服务器会将接收到的所有待备份任务都存放在内存队列对应的存储空间中,在确定内存队列对应的存储空间中已经存储了在一段时间内所有需要处理的待备份任务后,可对内存队列对应的存储空间中至少一个待备份任务进行批次划分,以便于第二服务器可按照不同的待备份批次,同时从第三服务器中下载多个待备份任务对应的待备份数据,以此提高第二服务器处理数据的吞吐量。但针对至少一个待备份任务进行批次划分的过程中具体的批次划分方式不做具体限定,如:可以包括但不限于按照各个待备份任务各自对应的备份数据类型、存储路径或备份时间来进行批次划分。

S206,第二服务器基于至少一个待备份任务从第三服务器中下载与至少一个待备份任务对应的至少一个待备份数据。

其中,待备份数据是指用户上传至第三服务器中并由第三服务器确定需要进行备份保存的数据。

具体的,第二服务器可以是基于至少一个待备份任务依次从第三服务器中下载与该至少一个待备份任务对应的至少一个待备份数据,也可以是按照不同的待备份批次同时从第三服务器中下载与该待备份批次中多个待备份任务对应的待备份数据。第二服务器可以是每次基于一个待备份任务生成一个对应的下载请求,该下载请求中携带有与该待备份任务相关的信息。第二服务器将该下载请求发送给第三服务器,使第三服务器可基于该下载请求将该下载请求对应的待备份数据发送给第二服务器,以此完成第二服务器对一个待备份任务对应的待备份数据的下载。第二服务器也可以是每次基于同一待备份批次中的多个待备份任务生成一个对应的下载请求,该下载请求中携带有与该待备份批次中的多个待备份任务相关的信息。第二服务器并将该下载请求发送给第三服务器,使第三服务器可基于该下载请求将该下载请求对应的待备份数据发送给第二服务器,以此完成第二服务器同时对多个待备份任务对应的待备份数据的下载。

S207,第二服务器对至少一个待备份数据进行备份处理。

具体的,第二服务器可以将下载得到的至少一个待备份数据存储到第二服务器的本地数据库中,以此完成对至少一个待备份数据的备份处理;第二服务器也可以将下载得到的至少一个待备份数据发送至专门用于数据备份存储的电子设备,使该电子设备对其所接收到的至少一个待备份数据进行备份存储。

本申请实施例的方案在执行时,第一服务器将至少一个备份任务写入待处理队列对应的第一存储空间中,第一服务器基于待处理队列将至少一个备份任务流转到工作队列对应的第二存储空间中,以使工作队列为至少一个备份任务设置处理时刻得到至少一个待备份任务,第一服务器将处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间中,第一服务器将第一存储空间中的至少一个待备份任务发送至第二服务器,第二服务器接收由第一服务器发送的至少一个待备份任务,第二服务器基于至少一个待备份任务从第三服务器中下载与至少一个待备份任务对应的至少一个待备份数据,第二服务器对至少一个待备份数据进行备份处理。通过利用第一服务器中的待处理队列和工作队列的Redis队列特性,对备份任务进行相关的处理得到待备份任务,并将该待备份任务发送给第二服务器;第二服务器在接收到该待备份任务后,可基于该待备份任务执行相应的备份操作,由此完成对第三服务器中待备份数据的备份处理,充分利用Redis队列特性以实现轻量级的数据备份架构的设计,也提高了该数据备份过程可移植性。

请参见图3,为本申请实施例提供了一种数据的备份方法的流程示意图。如图3所示,本申请实施例应用于第一服务器,本申请实施例的所述方法可以包括以下步骤:

S301,接收由第三服务器发送的至少一个分发请求,并基于至少一个分发请求生成至少一个备份任务。

其中,第三服务器中存储有用户上传的至少一个待备份数据,至少一个分发请求由第三服务器基于用户上传的至少一个待备份数据生成。

具体的,用户在将数据上传至可以对数据进行存储的第三服务器后,第三服务器会对用户上传的数据进行存储,并会基于用户上传的数据生成用于数据备份的分发请求,并将该分发请求发送给第一服务器,第一服务器在接收到该分发请求后,会基于该分发请求生成对应的备份任务。

S302,将至少一个备份任务写入待处理队列对应的第一存储空间中。

具体的,可参见步骤S201的具体实现过程,此处不再赘述。

S303,基于待处理队列将至少一个备份任务流转到工作队列对应的第二存储空间中,以使工作队列为至少一个备份任务设置处理时刻得到至少一个待备份任务。

具体的,可参见步骤S202的具体实现过程,此处不再赘述。

S304,将处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间中,并将第一存储空间中的至少一个待备份任务发送至第二服务器,以使第二服务器基于至少一个待备份任务从第三服务器中下载与至少一个待备份任务对应的至少一个待备份数据,并对至少一个待备份数据进行备份处理。

具体的,可参见步骤S203和步骤S204,此处不再赘述。

S305,在接收到备份失败消息时,获取备份失败消息对应的至少一个待备份任务。

其中,备份失败消息是指第二服务器未能成功基于备份失败消息对应的待备份任务进行数据备份的消息,通常是由第二服务器发送给第一服务器的。

具体的,第二服务器在基于由第一服务器发送的待备份任务从第三服务器中下载与该待备份任务对应的待备份数据时,可能会因为网络质量较差、需要下载的待备份数据丢失或下载地址失效等问题,导致第二服务器不能成功地从第三服务器中下载待备份任务对应的待备份数据,进而无法完成对该待备份任务对应的待备份数据的备份处理;也可能是第二服务器在下载得到需要备份的待备份数据后,由于网络质量较差导致第二服务器无法对该待备份数据进行相关的备份处理。此时,第二服务器在确定无法对该待备份任务对应的待备份数据进行备份存储时,也即确定对该待备份任务对应的待备份数据备份失败时,会基于此次下载故障或备份故障生成备份失败的消息,并将该备份失败的消息发送给第一服务器。第一服务器在接收到该备份失败消息时,会对该备份失败消息进行解析以得到该备份失败消息对应的至少一个待备份任务,并对该至少一个待备份任务进行相应的延迟处理操作,以便于后续能对该至少一个待备份任务进行相关的备份重试操作。

S306,将备份失败消息对应的至少一个待备份任务写入延迟队列对应的第三存储空间中。

其中,第一服务器中还包括第三存储空间,第三存储空间为延迟队列存取数据的物理空间,延迟队列也为Redis队列,具有与工作队列相同的队列特性。

具体的,在第一服务器接收到备份失败消息后,会通过对该备份失败消息进行解析得到解析结果。若该解析结果对应的待备份任务不是延迟队列中已存在的待备份任务,则基于解析的结果从工作队列中确定该备份失败消息对应的至少一个待备份任务将该备份失败消息对应的至少一个待备份任务从工作队列中流转或写入延迟队列对应的第三存储空间中,以便延迟队列对该该备份失败消息对应的至少一个待备份任务进行相应的延迟处理。若该解析结果对应的待备份任务为延迟队列中已存在的待备份任务,则直接对该待备份任务进行相应的延迟处理。

S307,基于延迟队列为备份失败消息对应的至少一个待备份任务设置延迟处理时刻。

其中,延迟处理时刻是指第三存储空间内的待备份任务可以延迟写入到待处理队列中的时间点。

具体的,由于第三存储空间内的待备份任务原先关联有一个处理时刻,第一服务器会基于当前时刻、第三存储空间内的待备份任务原先关联的处理时刻以及该待备份任务对应的备份失败的次数,来设置该待备份任务在其原先的处理时刻的基础上延迟处理的时间点,如:第三存储空间的待备份任务A已经备份失败了两次,且该待备份任务A原先关联的处理时刻为2点30分,当前时刻为2点33分,每次备份失败的延迟间隔为2分钟,则需要为该待备份任务A延迟4分钟,则为该待备份任务A设置的延迟处理时刻为2点37分,也即在当前时刻为2点37分时,才能将该待备份任务A从第三存储空间中写入到待处理队列对应的第一存储空间中。

S308,将第三存储空间中延迟处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间中,并将第一存储空间中的至少一个待备份任务发送至第二服务器,以使第二服务器基于至少一个待备份任务从第三服务器中下载与至少一个待备份任务对应的至少一个待备份数据,并对至少一个待备份数据进行备份处理。

具体的,第一服务器可基于预设时间间隔(如:若处理时刻以1分钟为最小时间单位,则预设时间间隔可以1秒的时间间隔)对延迟队列对应的第三存储空间内的数据进行周期性扫描。若检测到第三存储空间中存在延迟处理时刻为当前时刻的至少一个待备份任务时,会将该至少一个待备份任务写入待处理队列中,此时延迟队列对应的第三存储空间中仍存在写入到待处理队列对应的第一存储空间内的至少一个待备份任务。在将第三存储空间中延迟处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间后,第一服务器会将第一存储空间中处理状态为可执行状态的至少一个待备份任务发送至第二服务器,以使第二服务器可基于其所接收到的至少一个待备份任务从第三服务器中下载与该至少一个待备份任务对应的至少一个待备份数据,并对该至少一个待备份数据进行备份处理。

S309,在接收到备份成功消息时,获取备份成功消息对应的至少一个待备份任务。

其中,备份成功消息是指第二服务器成功基于备份成功消息对应的待备份任务进行数据备份的消息,通常是由第二服务器发送给第一服务器的。

具体的,第二服务器在基于由第一服务器发送的待备份任务从第三服务器中下载与该待备份任务对应的待备份数据后,会将该待备份数据存储到第二服务器的本地数据库中,或将该待备份数据发送至专门用于数据备份存储的电子设备中进行备份存储。在确定完成对该待备份数据的备份操作时,也即确定对该待备份数据备份成功时,第二服务器会对应生成备份成功消息,并将该备份成功消息发送给第一服务器。第一服务器在接收到该备份成功消息后,会对该备份成功消息进行解析以得到该备份成功消息对应的至少一个待备份任务,以便后续对该至少一个待备份任务进行相关的删除操作。

S310,将备份成功消息对应的至少一个待备份任务从工作队列对应的第二存储空间中和/或延迟队列对应的第三存储空间中删除。

具体的,备份成功消息对应的至少一个待备份任务可以是存储在工作队列对应的第二存储空间中的待备份任务,也可以是存储在延迟队列对应的第三存储空间中的待备份任务,也可以是同时存储在工作队列对应的第二存储空间中的待备份任务和存储在延迟队列对应的第三存储空间中的待备份任务。在确定备份成功消息对应的至少一个待备份任务存储的位置后,可将该备份成功消息对应的至少一个待备份任务从对应的存储位置中删除,以减少第一服务器中的内存占用。

本申请实施例的方案在执行时,第一服务器接收由第三服务器发送的至少一个分发请求,并基于至少一个分发请求生成至少一个备份任务;将至少一个备份任务写入待处理队列对应的第一存储空间中,基于待处理队列将至少一个备份任务流转到工作队列对应的第二存储空间中,以使工作队列为至少一个备份任务设置处理时刻得到至少一个待备份任务;将处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间中,并将第一存储空间中的至少一个待备份任务发送至第二服务器,以使第二服务器基于至少一个待备份任务从第三服务器中下载与至少一个待备份任务对应的至少一个待备份数据,并对至少一个待备份数据进行备份处理;在接收到备份失败消息时,获取备份失败消息对应的至少一个待备份任务,将备份失败消息对应的至少一个待备份任务写入延迟队列对应的第三存储空间中,基于延迟队列为备份失败消息对应的至少一个待备份任务设置延迟处理时刻;将第三存储空间中延迟处理时刻为当前时刻的至少一个待备份任务写入待处理队列对应的第一存储空间中,并将第一存储空间中的至少一个待备份任务发送至第二服务器,以使第二服务器基于至少一个待备份任务从第三服务器中下载与至少一个待备份任务对应的至少一个待备份数据,并对至少一个待备份数据进行备份处理;在接收到备份成功消息时,获取备份成功消息对应的至少一个待备份任务;将备份成功消息对应的至少一个待备份任务从工作队列对应的第二存储空间中和/或延迟队列对应的第三存储空间中删除。通过利用第一服务器中的待处理队列和工作队列的Redis队列特性,对备份任务进行相关的处理得到待备份任务,并将该待备份任务发送给第二服务器;第二服务器在接收到该待备份任务后,可基于该待备份任务执行相应的备份操作,生成对应的备份成功消息或备份失败消息,并将该备份成功消息或备份失败消息反馈给第一服务器,使第一服务器可对该备份成功消息或备份失败消息对应的待备份任务进行相应的删除或重试操作;由此完成对第三服务器中待备份数据的备份处理,充分利用Redis队列特性以实现轻量级的数据备份架构的设计,也提高了该数据备份过程可移植性和可靠性。

请参见图4所示的数据的备份流程示意图,本申请主要涉及第一服务器、第二服务器和第三服务器之间的数据交互过程,其中主要针对第一服务器和第二服务器之间的数据交互过程进行详细的描述。第三服务器在接收到用户上传的待备份数据后,会基于该待备份数据生成用于指示第一服务器进行相关备份操作的分发请求,并将该分发请求发送给第一服务器。第一服务器会基于接收到的分发请求生成对应的备份任务,将该备份任务写入待处理队列对应的第一存储空间中,并流转到工作队列对应的第二存储空间中,工作队列对该备份任务设置处理时刻得到待备份任务,并将该待备份任务的处理状态更改为可执行状态。第一服务器也会接收到由第二服务器发送的备份成功消息或备份失败消息,将备份失败消息对应的待备份任务写入延迟队列对应的第三存储空间中,延迟队列会对该待备份任务设置延迟处理时刻;将备份成功消息对应的待备份任务从工作队列对应的第二存储空间中或从延迟队列对应的第三存储空间中删除。第一服务器会基于预设时间间隔周期性地检测工作队列对应的第二存储空间中或延迟队列对应的第三存储空间是否存在处理时刻或延迟处理时刻为当前时刻的待备份任务;若存在,则第一服务器将该待备份任务发送给第二服务器。第二服务器在接收到该待备份任务后,会先将该待备份任务存储在内存队列对应的存储空间中,第二服务器在基于内存队列对应的存储空间中的待备份任务从第三服务器的数据库中下载与该待备份任务对应的待备份数据,并基于该待备份数据执行相应的数据备份操作。

请参见图5,为本申请实施例提供了一种数据的备份方法的流程示意图。如图5所示,本申请实施例应用于第二服务器,本申请实施例的所述方法可以包括以下步骤:

S501,接收由第一服务器发送的至少一个待备份任务。

具体的,可参见步骤S205的具体实现过程,此处不再赘述。

S502,对至少一个待备份任务进行备份批次划分得到至少一个待备份批次。

其中,待备份批次是指第二服务器同时从第三服务器中下载多个待备份数据的下载批次,每个待备份批次中包括至少一个待备份任务。

具体的,第二服务器会将接收到的至少一个待备份任务存储至第二服务器的内存队列对应的存储空间中,并且在确定内存队列对应的存储空间中已经存储了在一段时间内所有需要处理的待备份任务后,可对内存队列对应的存储空间中至少一个待备份任务进行批次划分,以便于第二服务器可按照不同的待备份批次,同时从第三服务器中下载多个待备份任务对应的待备份数据,以此提高第二服务器处理数据的吞吐量。但针对至少一个待备份任务进行批次划分的过程中具体的批次划分方式不做具体限定,如:可以包括但不限于按照各个待备份任务各自对应的备份数据类型、存储路径或备份时间来进行批次划分。

S503,基于至少一个待备份批次从第三服务器中下载与至少一个待备份批次中的至少一个待备份任务对应的至少一个待备份数据。

其中,待备份数据是指用户上传至第三服务器中并由第三服务器确定需要进行备份保存的数据。

具体的,第二服务器可以每次基于同一待备份批次中的多个待备份任务生成一个对应的下载请求,该下载请求中携带有与该待备份批次中的多个待备份任务相关的信息。第二服务器并将该下载请求发送给第三服务器,使第三服务器可基于该下载请求将该下载请求对应的待备份数据发送给第二服务器,以此完成第二服务器同时对多个待备份任务对应的待备份数据的下载。

S504,对至少一个待备份数据进行备份处理。

具体的,可参见步骤S207的具体实现过程,此处不再赘述。

S505,在确定对至少一个待备份数据备份成功时,生成备份成功消息。

其中,备份成功消息是指第二服务器成功基于备份成功消息对应的待备份任务进行数据备份的消息,通常是由第二服务器发送给第一服务器的。

具体的,第二服务器在基于由第一服务器发送的待备份任务从第三服务器中下载与该待备份任务对应的待备份数据后,会将该待备份数据存储到第二服务器的本地数据库中,或将该待备份数据发送至专门用于数据备份存储的电子设备中进行备份存储。在确定完成对该待备份数据的备份操作时,也即确定对该待备份数据备份成功时,第二服务器会对应生成备份成功消息,并将该备份成功消息发送给第一服务器。

S506,将备份成功消息发送给第一服务器,以使第一服务器将备份成功消息对应的至少一个待备份任务从工作队列对应的第二存储空间中和/或延迟队列对应的第三存储空间中删除。

具体的,可参见步骤S310的具体实现过程,此处不再赘述。

S507,在确定对至少一个待备份数据备份失败时,生成备份失败消息。

其中,备份失败消息是指第二服务器未能成功基于备份失败消息对应的待备份任务进行数据备份的消息,通常是由第二服务器发送给第一服务器的。

具体的,第二服务器在基于由第一服务器发送的待备份任务从第三服务器中下载与该待备份任务对应的待备份数据时,可能会因为网络质量较差、需要下载的待备份数据丢失或下载地址失效等问题,导致第二服务器不能成功地从第三服务器中下载待备份任务对应的待备份数据,进而无法完成对该待备份任务对应的待备份数据的备份处理;也可能是第二服务器在下载得到需要备份的待备份数据后,由于网络质量较差导致第二服务器无法对该待备份数据进行相关的备份处理。此时,第二服务器在确定无法对该待备份任务对应的待备份数据进行备份存储时,也即确定对该待备份任务对应的待备份数据备份失败时,会基于此次下载故障或备份故障生成备份失败的消息,并将该备份失败的消息发送给第一服务器。

S508,将备份失败消息发送给第一服务器,以使第一服务器将备份失败消息对应的至少一个待备份任务写入延迟队列对应的第三存储空间中。

具有的,请参见步骤S305、S306、S307和S308的具体实现过程,此处不再赘述。

本申请实施例的方案在执行时,第二服务器接收由第一服务器发送的至少一个待备份任务,对至少一个待备份任务进行备份批次划分得到至少一个待备份批次;基于至少一个待备份批次从第三服务器中下载与至少一个待备份批次中的至少一个待备份任务对应的至少一个待备份数据,对至少一个待备份数据进行备份处理;在确定对至少一个待备份数据备份成功时,生成备份成功消息;将备份成功消息发送给第一服务器,以使第一服务器将备份成功消息对应的至少一个待备份任务从工作队列对应的第二存储空间中和/或延迟队列对应的第三存储空间中删除;在确定对至少一个待备份数据备份失败时,生成备份失败消息;将备份失败消息发送给第一服务器,以使第一服务器将备份失败消息对应的至少一个待备份任务写入延迟队列对应的第三存储空间中。通过利用第一服务器中的待处理队列和工作队列的Redis队列特性,对备份任务进行相关的处理得到待备份任务,并将该待备份任务发送给第二服务器;第二服务器在接收到该待备份任务后,可基于该待备份任务分批次执行相应的备份操作,生成对应的备份成功消息或备份失败消息,并将该备份成功消息或备份失败消息反馈给第一服务器,使第一服务器可对该备份成功消息或备份失败消息对应的待备份任务进行相应的删除或重试操作;由此完成对第三服务器中待备份数据的备份处理,充分利用Redis队列特性以实现轻量级的数据备份架构的设计,提高了该数据备份过程可移植性以及服务器处理数据的吞吐量。

请参见图6,其示出了本申请一个示例性实施例提供的一种第一服务器的结构示意图。以下简称第一服务器6,第一服务器6可以通过软件、硬件或者两者的结合实现成为服务器的全部或一部分,第一服务器6中包括第一存储空间和第二存储空间,第一存储空间为待处理队列存取数据的物理空间,第二存储空间为工作队列存取数据的物理空间,第一服务器6包括:

第一写入模块601,用于将至少一个备份任务写入所述待处理队列对应的第一存储空间中;其中,所述至少一个备份任务由所述第一服务器基于所述第一服务器接收到的至少一个分发请求生成;

流转模块602,用于基于所述待处理队列将所述至少一个备份任务流转到所述工作队列对应的第二存储空间中,以使所述工作队列为所述至少一个备份任务设置处理时刻得到至少一个待备份任务;其中,每个所述待备份任务关联有一个处理时刻;

第一处理模块603,用于将所述处理时刻为当前时刻的至少一个待备份任务写入所述待处理队列对应的第一存储空间中,并将所述第一存储空间中的至少一个待备份任务发送至第二服务器,以使所述第二服务器基于所述至少一个待备份任务从第三服务器中下载与所述至少一个待备份任务对应的至少一个待备份数据,并对所述至少一个待备份数据进行备份处理;其中,所述第三服务器中存储有用户上传的所述至少一个待备份数据。

可选地,所述第一服务器6还包括:

接收模块,用于接收由第三服务器发送的至少一个分发请求;其中,所述至少一个分发请求由所述第三服务器基于用户上传的至少一个待备份数据生成;

生成模块,用于基于所述至少一个分发请求生成所述至少一个备份任务。

可选地,所述第一服务器6还包括:

第一获取模块,用于在接收到备份失败消息时,获取所述备份失败消息对应的至少一个待备份任务;

第二写入模块,用于将所述备份失败消息对应的至少一个待备份任务写入所述延迟队列对应的第三存储空间中;

设置模块,用于基于所述延迟队列为所述备份失败消息对应的至少一个待备份任务设置延迟处理时刻;其中,所述第三存储空间中的每个所述待备份任务关联有一个延迟处理时刻;

第二处理模块,用于将所述第三存储空间中所述延迟处理时刻为当前时刻的至少一个待备份任务写入所述待处理队列对应的第一存储空间中,并将所述第一存储空间中的至少一个待备份任务发送至第二服务器,以使所述第二服务器基于所述至少一个待备份任务从第三服务器中下载与所述至少一个待备份任务对应的至少一个待备份数据,并对所述至少一个待备份数据进行备份处理。

可选地,所述第一服务器6还包括:

第二获取模块,用于在接收到备份成功消息时,获取所述备份成功消息对应的至少一个待备份任务;

删除模块,用于将所述备份成功消息对应的至少一个待备份任务从所述工作队列对应的第二存储空间中和/或所述延迟队列对应的第三存储空间中删除。

需要说明的是,上述实施例提供的第一服务器6在执行数据的备份方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据的备份方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

请参见图7,其示出了本申请一个示例性实施例提供的一种第二服务器的结构示意图。以下简称第二服务器7,第二服务器7可以通过软件、硬件或者两者的结合实现成为服务器的全部或一部分。第二服务器7包括:

接收模块701,用于接收由第一服务器发送的至少一个待备份任务;其中,所述第一服务器中包括第一存储空间和第二存储空间,所述第一存储空间为待处理队列存取数据的物理空间,所述第二存储空间为工作队列存取数据的物理空间;所述至少一个待备份任务为存放在所述第一服务器的待处理队列中的至少一个待备份任务,所述至少一个待备份任务由所述第一服务器的工作队列对至少一个备份任务设置处理时刻得到,所述至少一个备份任务由所述第一服务器基于所述第一服务器接收到的至少一个分发请求生成;

处理模块702,用于基于所述至少一个待备份任务从第三服务器中下载与所述至少一个待备份任务对应的至少一个待备份数据,并对所述至少一个待备份数据进行备份处理;其中,所述第三服务器中存储有用户上传的所述至少一个待备份数据。

可选地,所述处理模块702包括:

划分单元,用于对所述至少一个待备份任务进行备份批次划分得到至少一个待备份批次;其中,每个所述待备份批次中包括至少一个待备份任务;

下载单元,用于基于所述至少一个待备份批次从所述第三服务器中下载与所述至少一个待备份批次中的至少一个待备份任务对应的至少一个待备份数据。

可选地,所述第二服务器7还包括:

第一生成模块,用于在确定对所述至少一个待备份数据备份成功时,生成备份成功消息;

第一发送模块,用于将所述备份成功消息发送给所述第一服务器,以使所述第一服务器将所述备份成功消息对应的至少一个待备份任务从所述工作队列对应的第二存储空间中和/或所述延迟队列对应的第三存储空间中删除。

可选地,所述第二服务器7还包括:

第二生成模块,用于在确定对所述至少一个待备份数据备份失败时,生成备份失败消息;

第二发送模块,用于将所述备份失败消息发送给所述第一服务器,以使所述第一服务器将所述备份失败消息对应的至少一个待备份任务写入所述延迟队列对应的第三存储空间中。

需要说明的是,上述实施例提供的第二服务器7在执行数据的备份方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据的备份方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图2~图5所示实施例的方法步骤,具体执行过程可以参见图2~图5所示实施例的具体说明,在此不进行赘述。

图8为本申请实施例提供的一种数据的备份装置结构示意图,以下简称装置8,装置8可以集成于前述第一服务器或第二服务器中。如图8所示,该装置包括:存储器802、处理器801、输入装置803、输出装置804和通信接口。

存储器802可以是独立的物理单元,与处理器801、输入装置803和输出装置804可以通过总线连接。存储器802、处理器801、输入装置803和输出装置804也可以集成在一起,通过硬件实现等。

存储器802用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器801调用该程序,执行以上方法实施例的操作。

输入装置802包括但不限于键盘、鼠标、触摸面板、摄像头和麦克风;输出装置包括但不限于显示屏。

通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。

可选地,当上述实施例的数据的备份方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。

处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。

处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。

存储器可以包括易失性存储器(volatile memory),例如存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的数据的备份方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

相关技术
  • 数据的备份方法、相关装置、存储介质及系统
  • 数据恢复方法、数据备份方法及相关设备、系统
技术分类

06120113228926