CN109558270B - 数据备份的方法和装置、数据还原的方法和装置 - Google Patents
数据备份的方法和装置、数据还原的方法和装置 Download PDFInfo
- Publication number
- CN109558270B CN109558270B CN201710876950.4A CN201710876950A CN109558270B CN 109558270 B CN109558270 B CN 109558270B CN 201710876950 A CN201710876950 A CN 201710876950A CN 109558270 B CN109558270 B CN 109558270B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- backup
- cluster
- task
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据备份的方法和装置以及数据还原的方法和装置,以上一次备份任务的执行时间作为开始时间并以本次备份任务的执行时间作为结束时间,依据ElasticSearch集群的索引中记录的更新时间,查找出在开始时间与结束时间之间更新过的数据,从而仅对查找出的数据进行备份。由此可见,通过在ElasticSearch集群的索引中为数据记录更新时间以及记录每一次备份任务的执行时间,ElasticSearch集群可以实现增量备份,这样就避免了对相同数据重复备份,从而不仅提高了备份效率,还节省了备份占用的磁盘空间。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种数据备份的方法和装置以及一种数据还原的方法和装置。
背景技术
ElasticSearch(简称ES)是一种基于Lucene的搜索服务器,能够提供分布式多用户能力的全文搜索引擎。对于ES集群中的数据,为了防止操作人员误操作而删除了必要数据,需要对ES集群中的数据进行备份。这样,在必要数据丢失的情况下,可以采用备份对ES集群中的数据进行还原,从而保证数据的安全性。
在现有技术中,ES集群的数据备份是通过快照的方式来实现的,也即,在需要备份的时候,对当前ES集群中的所有数据进行备份。可见,采用快照方式实现的数据备份方式,实际上是一种全量备份的方式。但是,由于每一次备份时对ES集群中的所有数据都要进行备份,这就导致有些数据不断地被重复备份,因此,不仅备份效率较低,而且备份也会占用较多的磁盘空间。
发明内容
本发明实施例所要解决的技术问题是,提供一种数据备份的方法和装置以及一种数据还原的方法和装置,以使得ES集群的数据备份能够实现增量备份,避免对数据进行重复备份,从而提高备份效率,节省备份占用的磁盘空间。
第一方面,本发明实施例提供了一种数据备份的方法,该方法包括:
响应于本次备份任务的触发指令,读取上一次备份任务的执行时间;
若读取到所述上一次备份任务的执行时间,获取所述上一次备份任务的执行时间作为开始时间,获取所述本次备份任务的执行时间作为结束时间;
根据第一ElasticSearch集群在索引中为数据记录的更新时间,从所述第一ElasticSearch集群中读取更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据;
将所述目标数据保存为所述第一ElasticSearch集群的一个备份文件。
可选的,所述根据第一ElasticSearch集群在索引中为数据记录的更新时间,从所述第一ElasticSearch集群中读取更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据,包括:
根据所述第一ElasticSearch集群在索引中为数据记录的更新时间,查找出更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据;
从所述第一ElasticSearch集群中,每次读取所述目标数据中预设数量的数据,直至所述目标数据被全部读取。
可选的,该方法还包括:
若读取不到所述上一次备份任务的执行时间,获取预设的备份起始时间作为开始时间,获取所述本次备份任务的执行时间作为结束时间;
或,
若读取不到所述上一次备份任务的执行时间,将开始时间设置为全量备份的起始时间,获取所述本次备份任务的执行时间作为结束时间。
可选的,所述触发指令是在当前时间达到指定时间的情况下触发的,或,所述触发指令是在第一ElasticSearch集群中的数据量达到指定数据量的情况下触发的。
可选的,该方法还包括:
对所述备份文件进行压缩,得到压缩文件。
第二方面,本发明实施例还提供了一种数据还原的方法,该方法包括:
获取按照上述数据备份的方法对第一ElasticSearch集群进行备份而得到的备份文件;
对所述备份文件中的所有数据进行遍历,并将遍历出的数据插入到第二ElasticSearch集群中。
可选的,所述将遍历出的数据插入到第二ElasticSearch集群中,包括:
每次将所述遍历出的数据中预设数量的数据插入到所述第二ElasticSearch集群中,直至所述遍历出的数据被全部插入。
可选的,该方法还包括:
在所述备份文件中的所有数据均插入到所述第二ElasticSearch集群之后,将所述备份文件从未还原目录移动到已还原目录。
第三方面,本发明实施例还提供了一种数据备份的装置,该装置包括:
第一读取单元,用于响应于本次备份任务的触发指令,读取上一次备份任务的执行时间;
获取单元,用于若读取到所述上一次备份任务的执行时间,获取所述上一次备份任务的执行时间作为开始时间,获取所述本次备份任务的执行时间作为结束时间;
第二读取单元,用于根据第一ElasticSearch集群在索引中为数据记录的更新时间,从所述第一ElasticSearch集群中读取更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据;
保存单元,用于将所述目标数据保存到所述第一ElasticSearch集群的备份文件。
第四方面,本发明实施例还提供了一种数据还原的装置,该装置包括:
获取单元,用于获取如权利要求9所述的装置对第一ElasticSearch集群进行备份而得到的备份文件;
遍历单元,用于对所述备份文件中的所有数据进行遍历;
插入单元,用于将遍历出的数据插入到第二ElasticSearch集群中。
第五方面,提供了一种存储介质,所述存储介质用于存储程序代码,所述程序代码用于执行前述第一方面提及的任意一种实施方式的数据备份的方法。
第六方面,提供了一种存储介质,所述存储介质用于存储程序代码,所述程序代码用于执行前述第二方面提及的任意一种实施方式的数据还原的方法。
第七方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行前述第一方面提及的任意一种实施方式的数据备份的方法。
第八方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行前述第二方面提及的任意一种实施方式的数据备份的方法。
在本发明实施例中,在ElasticSearch集群的索引中为每个数据记录该数据的更新时间,并且,在每一次备份任务执行时记录其执行时间。对于本次备份任务来说,可以以上一次备份任务的执行时间作为开始时间并以本次备份任务的执行时间作为结束时间,依据ElasticSearch集群的索引中记录的更新时间,查找出在开始时间与结束时间之间更新过的数据,从而仅对查找出的数据进行备份。由此可见,通过在ElasticSearch集群的索引中为数据记录更新时间以及记录每一次备份任务的执行时间,ElasticSearch集群可以实现增量备份,这样就避免了对相同数据重复备份,从而不仅提高了备份效率,还节省了备份占用的磁盘空间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一个示例性应用场景的网络系统示意图;
图2为本发明实施例中一种数据备份的方法流程示意图;
图3为本发明实施例中一种数据还原的方法流程示意图;
图4为本发明实施例中一个示例性应用场景实施例的信令交互示意图;
图5为本发明实施例中一种数据备份的装置结构示意图;
图6为本发明实施例中一种数据还原的装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人经过研究发现,现有技术中,为了防止ES集群中的数据丢失,通常采用快照的方式对ES集群中的数据进行备份。也就是说,在每次需要对ES集群中的数据进行备份时,会对当前ES集群中所有的数据都进行备份。由于ES集群中的数据不断被更新,因此需要频繁的对ES集群中的数据进行备份。其实,实际应用中,对于ES集群中的数据可以只备份一次就能防止该数据的丢失。但是,由于每次备份时,对ES集群中的所有数据进行备份,导致部分数据不断的被重复备份。重复的备份ES集群中的部分数据,不仅造成备份的效率比较低,而且被重复备份的数据也会占用较多的磁盘空间。
基于此,在本发明实施例中,在响应本次备份任务的触发指令后,读取上一次备份任务的执行时间,若读取到上一次备份任务的执行时间,则将该执行时间作为本次备份任务的开始时间,将本次备份任务的执行时间作为结束时间;由于第一ES集群中的数据都会有对应的更新时间,因此,根据第一ES集群中在索引中为数据记录的更新时间,从该第一ES集群中读取更新时间位于开始时间和结束时间之间的数据,作为目标数据,并将该目标数据保存为第一ES集群的一个备份文件。可见,通过在索引中为ES集群中的数据记录数据的更新时间,并且记录每一次备份任务的执行时间,使得每次对ES集群中的数据进行备份时,都只是对更新时间位于上次备份任务的执行时间与本次备份任务的执行时间之间的数据进行备份,对于已经备份过的数据不需要进行重复备份。这样就避免了对ES集群中已经备份过的数据重复的进行备份,从而不仅提高了备份效率,还节省了备份占用的磁盘空间。
举例来说,本发明实施例的场景之一,可以是应用到如图1所示的场景。在该场景中,第一ES集群中包含多个服务器,第二ES集群中也包含多个服务器,第一ES集群与第二ES集群可以进行信息交互,并且第二ES集群需要与第一ES集群进行数据同步。因此,第二ES集群存在获取第一ES集群中数据的需求,则第二ES集群可以通过服务器102向第一ES集群中的服务器101发送请求同步数据的同步指令,其中,该同步指令包括服务器101执行备份任务的触发指令。服务器101接收到该服务器102发送的同步指令后,响应该同步指令中的本次备份任务的触发指令,读取上一次执行备份任务的执行时间。若服务器101读取到上一次备份任务的执行时间,则获取上一次备份任务的执行时间,并将该执行时间作为本次备份任务的开始时间,将本次备份任务的执行时间作为本次备份任务的结束时间。服务器101根据第一ES集群在索引中为数据记录的更新时间,从第一ES集群中读取更新时间位于本次备份任务的开始时间和结束时间之间的数据,作为目标数据,并将该目标数据保存为第一ES集群的一个备份文件。当本次备份任务完成之后,服务器101向服务器102发送已备份的数据。
可以理解的是,上述场景仅是本发明实施例提供的一个场景示例,本发明实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本发明实施例中数据备份的方法和装置以及数据还原的方法和装置的各种非限制性实施方式。
示例性方法
参见图2,示出了本发明实施例中数据备份的方法流程示意图。在本实施例中,该方法包括以下步骤:
S201:响应于本次备份任务的触发指令,读取上一次备份任务的执行时间。
当需要对第一ES集群中的数据进行备份时,可以触发本次备份任务的触发指令,开始对第一ES集群中的数据进行备份。
在本实施例中,本次备份任务的触发方式可以有多种,以实现在多种不同的时机下触发备份任务。
例如,一种备份任务的触发方式在于,在上一次备份任务结束时,可以记录上一次备份任务的执行时间,将该执行时间加上预设的时间间隔,得到触发本次备份任务的触发指令的指定时间,若当前时间达到指定时间,则触发本次备份任务的触发指令。即,周期性的触发备份任务的触发指令。其中,预设的时间间隔可以由技术人员预先设定的时间间隔,也可以是由程序算法自动生成的时间间隔。
例如,预设的时间间隔可以被设置为60秒。在上一次备份任务结束时,记录上一次备份任务的执行时间,假设为2017-01-01:14:30:35,即为2017年1月1日14时30分35秒,将该执行时间加上预设的时间间隔,得到触发本次备份任务的触发指令的指定时间为:2017-01-01:14:31:35,即为2017年1月1日14时31分35秒。若当前时间达到指定时间2017-01-01:14:31:35,则触发本次备份任务的触发指令。相应的,下一次触发备份任务的触发指令的指定时间即为2017-01-01:14:32:35。
可以理解的是,当需要频繁的对第一集群中的数据进行备份时,可以采用周期性触发备份任务的触发指令的实施方式,自动对第一ES集群中的数据进行周期性备份。
另一种备份任务的触发方式在于,操作人员手动设置触发本次备份任务的触发指令的指定时间,若当前时间达到指定时间,则触发本次备份任务的触发指令。
在实际应用中,如果认为第一ES集群中的更新的部分数据比较重要时,为了保证能够及时备份该数据,可能会临时产生对第一ES集群中的该数据进行备份的需求。因此,可以人为给定触发本次备份任务的触发指令的指定时间,使得当前时间达到指定时间时,能够触发本次备份任务的触发指令,对第一ES集群中的数据进行备份。
另一种备份任务的触发方式在于,第一ES集群中的数据量达到指定数据量时,触发本次备份任务的触发指令。
当第一ES集群中的数据量达到指定数据量时,可以认为当前第一ES集群中的新增的数据量较多,已经有必要对第一ES集群中的数据进行备份。因此,可以触发本次设备任务的触发指令,从而开始对第一ES集群中的数据进行备份。进一步的,由于第一ES集群中的数据可能会不断攀升,因此可以重新设置触发备份任务的触发指令时对应的指定数据量。
例如,原先第一ES集群中的数据量为5000条,并且设置针对于第一ES集群的指定数据量为10000条,则当第一ES集群中的数据量达到10000条时,可以认为当前第一ES集群中的新增的数据量较多,已经有必要对第一ES集群中的数据进行备份。因此,可以触发本次备份任务的触发指令,并将指定数据量重新设置为15000条,以便于触发下一次备份任务的触发指令。
作为另一种示例,当第一ES集群中的更新的数据量达到指定数据量时,可以认为当前第一ES集群中的更新的数据量较多,已经有必要对第一ES集群中的数据进行备份。因此,可以触发本次设备任务的触发指令,从而开始对第一ES集群中的数据进行备份。
S202:若读取到上一次备份任务的执行时间,则获取上一次备份任务的执行时间作为开始时间,获取本次备份任务的执行时间作为结束时间。
在读取上一次备份任务的执行时间的时候,若之前已经执行过备份任务,通常可以读取到上一次备份任务的执行时间。若之前没有执行过备份任务,即本次备份任务是针对第一ES集群的首次备份任务,则可能读取不到上一次备份任务的执行时间;或者由于程序运行错误、上一次备份任务的执行时间被删除等其它原因,也可能导致读取不到上一次备份任务的执行时间。在一些实施方式中,针对读取不到上一次备份任务的情况,本实施例提供两种设置本次备份任务的开始时间的实施方式:
第一种设置开始时间的实施方式在于,获取预设的备份起始时间作为开始时间。该预设的备份起始时间可以是本次备份任务的执行时间之前的时间。在实际应用中,可以将预设的备份起始时间设置为很久之前的时间,例如可以是,“1999-01-01:00:00:00”、“1900-07-01:12:00:00”等。
第二种设置开始时间的实施方式在于,将开始时间设置为全量备份的起始时间,即不限定本次备份任务的开始时间。作为一种示例,若本次备份任务的开始时间设置为全量备份的起始时间时,可以对第一ES集群中的所有数据进行备份。
可以理解的是,对于任意一次备份任务来说,可以采用该备份任务开始执行的时间作为该备份任务的执行时间,也可以采用该备份任务结束执行的时间作为执行时间。进一步而言,在不断进行的备份过程中,对于所有的备份任务来说,可以都采用各自开始执行的时间作为各自的执行时间,或者,也可以都采用各自结束执行的时间作为各自的执行时间。
S203:根据第一ES集群在索引中为数据记录的更新时间,从第一ES集群中读取更新时间位于开始时间和结束时间之间的数据,作为目标数据。
可以理解的是,更新时间在上一次备份任务的执行时间之前的第一ES集群中数据,都已经进行过备份,不需要再重复备份。而更新时间在上一次备份任务的执行时间与本次备份任务的执行时间之间的数据,是尚未被备份过的数据,因此在本次备份任务的执行过程中需要对该数据进行备份。也就是说,更新时间位于本次备份任务的开始时间和结束时间之间的数据,即为本次备份任务中需要备份的目标数据。
作为一种示例,读取更新时间位于开始时间与结束时间之间的数据,作为目标数据可以具体包括以下步骤:
根据第一ES集群在索引中为数据记录的更新时间,查找出更新时间位于开始时间和结束时间之间的数据,作为目标数据;
从第一ES集群中,每次读取目标数据中预设数量的数据,直至目标数据被全部读取。
可以理解的是,在读取目标数据之前,需要先从第一ES集群中查找到哪些数据是需要进行备份的目标数据,而第一ES集群中更新时间位于开始时间和结束时间之间的数据,即为需要进行备份的数据。因此可以根据第一ES集群中的数据对应的更新时间,查找出更新时间位于开始时间和结束时间之间的数据,确定为需要进行备份的目标数据。然后,读取全部的目标数据,以便于对该数据进行备份。
值的注意的是,在读取目标数据的过程中,并不是一次性读取所有目标数据,而是每次读取该目标数据中预设数量的数据,直至目标数据全部被读取。其中,预设数量可以为技术人员或者算法程序预先设定的数量值。通常情况下,第一ES集群中需要备份的目标数据的数据量可能较大,为了保证能够顺利的读取所有的目标数据,可以采用分批读取目标数据的方式读取全部的目标数据。
例如,第一ES集群中查到的目标数据可以为10000条,在读取该目标数据时,可以每次只读取1000条数据,在当前1000条数据读取完毕之后,再读取下一个1000条的目标数据,直至10000条目标数据全部被读取完。
作为一种示例,可以采用Scroll的方式读取目标数据,每次只读取一定数量的目标数据,并且将读取到的目标数据转换成json字符串,然后更新scrollid,继续读取下一批次的目标数据,直至读取完所有的目标数据。
S204:将该目标数据保存为第一ES集群的一个备份文件。
在确定了第一ES集群中需要进行备份的目标数据后,可以将该目标数据保存到第一ES集群的一个备份文件中,则完成了对第一ES集群中目标数据的备份。可以理解的是,在该备份文件中,仅仅保存了第一ES集群中的目标数据,即仅仅保存了第一ES集群中从所述开始时间到所述结束时间之间产生的数据。因此,通常来说,第一ES集群的数据会被分别备份到多个备份文件中,各个备份文件分别保存了第一ES集群中在不同的时间段内产生的数据。
在一些实施方式中,可以记录本次备份任务的执行时间,以便于下一次对第一ES集群中的数据进行备份时,作为下一次备份任务的开始时间。
可以理解的是,若不存在第一ES集群的备份文件,可以为第一ES集群新建一个备份文件,并将目标数据保存到该新建的备份文件中。在一些实施方式中,新建的备份文件的命名,可以利用本次备份文件的开始时间和结束时间来命名。
在本实施例的一些实施方式中,在本次备份任务完成之后,还可以将该备份文件进行压缩,得到压缩文件。其中,压缩文件的格式可以是rar格式、zip格式、cab格式等。
值的注意的是,对备份文件进行压缩得到的压缩文件,其文件内容与原备份文件中的文件内容是一致的,但是压缩文件的容量比原备份文件的容量小,压缩文件占用的存储空间会比原备份文件占用的存储空间小,有利于减少对第一ES集群进行备份后备份文件所占用的存储空间。此外,在网络中对备份文件进行传输时,相比于没有被压缩的原备份文件,压缩文件在网络中进行传输时被损坏的可能性更小;而且,由于压缩文件的容量小,传输速度更快。
在本实施例中,在响应本次备份任务的触发指令后,读取上一次备份任务的执行时间,若读取到上一次备份任务的执行时间,则将该执行时间作为本次备份任务的开始时间,将本次备份任务的执行时间作为结束时间;由于SE集群中的数据都会有对应的更新时间,因此,根据第一ES集群中在索引中为数据记录的更新时间,从该第一ES集群中读取更新时间位于开始时间和结束时间之间的数据,作为目标数据,并将该目标数据保存到第一ES集群的备份文件中。可见,通过在索引中为ES集群中的数据记录数据的更新时间,并且记录每一次备份任务的执行时间,使得每次对ES集群中的数据进行备份时,都只是对更新时间位于上次备份任务的执行时间与本次备份任务的执行时间之间的数据进行备份,对于已经备份过的数据不需要进行重复备份。这样就避免了对ES集群中已经备份过的数据重复的进行备份,从而不仅提高了备份效率,还节省了备份占用的磁盘空间。
上述实施例描述是对第一ES集群中的数据进行备份的过程。在实际应用中,第一ES集群的备份文件可能会发送到第二ES集群中,用于第二ES集群与第一ES集群的数据同步。为此,本发明实施例还提供了一种数据还原的方法。
参见图3,示出了本发明实施例中数据还原的方法流程示意图。在本实施例中,该方法包括以下步骤:
步骤S301:获取上述实施例中对第一ES集群中的数据进行备份而得到的备份文件。
实际应用中,获取的可以是没有被压缩的备份文件,也可以是将备份文件进行压缩得到的压缩文件。若获取的备份文件为经压缩得到的压缩文件时,可以将该压缩文件进行解压,得到解压后的备份文件。
步骤S302:对备份文件中的所有数据进行遍历,并将遍历出的数据插入到第二ES集群中。
作为一种示例,在获得第一ES集群的备份文件后,对备份文件中的所有数据进行遍历,每次将遍历出的数据中预设数量的数据插入到第二ES集群中,直至遍历出的数据全部被插入到第二ES集群中。
实际应用中,备份文件中的数据量一般较大,为了能顺利将备份文件中的数据全部插入到第二ES集群中,可以采用分批次插入的方式,将遍历出的数据分批插入到第二ES集群中。即,每次只将遍历出的预设数量的数据插入到第二ES集群中,等本批次所有数据都插入至第二ES集群后,再从剩余的数据中继续选择预设数量的数据,并将其插入到第二ES集群中的数据,直至所有遍历出的数据都被插入到第二ES集群中。
作为一种示例,可以采用Bulk的方式请求批量添加、更新多条数据的方式,设定每个批次插入的数据的预设数量。在向第二ES集群插入数据时,可以向第二ES集群发送插入请求,并在请求成功后插入预设数量的数据。当此次插入完成之后,再从剩余的数据中选择预设数量的数据,并向第二ES集群发送插入请求以请求插入数据,直至备份文件中遍历出的所有数据都被插入到第二ES集群中,完成备份文件中数据的还原。
在一些实施方式中,为了保证不再重复的将该备份文件还原到到第二ES集群中,本实施例还可以包括:
在备份文件中的所有数据都被插入到第二ES集群之后,将该备份文件从未还原目录移动到已还原目录。
当需要将新的备份文件中的数据插入到第二ES集群中时,可以检测该备份文件是否为已还原目录中的备份文件,若是,则不需要将该备份文件中的数据再次插入到第二ES集群中;若不是,则允许将该备份文件中的数据插入到第二ES集群中。通过这样的方式,可以保证将已经还原到第二ES集群中的备份文件不必重复还原到第二ES集群中。
本实施例中,通过获取对第一ES集群进行得到备份文件,对该备份文件中的所有数据进行遍历,并将遍历出的数据插入到第二ES集群中,使得第一ES集群中的备份文件能够还原至第二ES集群中,实现第一ES集群与第二ES集群的数据同步。
下面,请一并参阅图4。结合具体应用场景,给出场景实例对本发明实施方式进行详细描述:
在该场景中,存在主、从结构的两个ES集群,主结构的ES集群为第一ES集群,从结构的ES集群为第二ES集群,并且备份服务器A位于第一ES集群上,还原服务器B位于第二ES集群上。其中,第二ES集群中的数据需要从第一ES集群中同步得到,则第二ES集群与第一ES集群的数据同步流程具体可以包括:
S401:还原服务器B向备份服务器A发送触发本次备份任务的触发指令。
S402:备份服务器A响应于本次备份任务的触发指令,读取上一次备份任务的执行时间。
S403:备份服务器A若读取到上一次备份任务的执行时间,则获取上一次备份任务的执行时间作为开始时间,获取本次备份任务的执行时间作为结束时间。
S404:备份服务器A根据第一ES集群在索引中为数据记录的更新时间,从第一ES集群中读取更新时间位于开始时间和结束时间之间的数据,作为目标数据。
S405:备份服务器A将该目标数据保存为第一ES集群的一个备份文件。
S406:备份服务器A将备份文件进行压缩,得到压缩文件。
S407:备份服务器A并将该压缩文件发送给还原服务器B。
S408:还原服务器B对接收到的压缩文件进行解压,得到解压后的备份文件。
S409:还原服务器B对备份文件中的所有数据进行遍历.
S410:还原服务器B并将遍历出的数据插入到第二ES集群中。
S411:还原服务器B将该备份文件从未还原目录移动到已还原目录。
通过上述过程,通过将第一ES集群中的数据通过备份服务器A进行备份,并发送给第二ES集群中的还原服务器B,由还原服务器进行备份文件中数据的还原,从而可以实现第一ES集群与第二ES集群之间的数据同步。
此外,本发明实施例还提供了一种数据备份的装置。请参阅图5,示出了本发明实施例中一种数据备份的装置结构示意图,该装置具体包括:
第一读取单元501,用于响应于本次备份任务的触发指令,读取上一次备份任务的执行时间;
获取单元502,用于若读取到上一次备份任务的执行时间,则获取上一次备份任务的执行时间作为开始时间,获取本次备份任务的执行时间作为结束时间;
第二读取单元503,用于根据第一ES集群在索引中为数据记录的更新时间,从第一ES集群中读取更新时间位于开始时间与结束时间之间的数据,作为目标数据;
保存单元504,用于将目标数据保存为第一ES集群的一个备份文件。
可选的,获取单元502包括:
查找子单元,用于根据第一ES集群在索引中为数据记录的更新时间,查找出更新时间位于开始时间与结束时间之间的数据,作为目标数据;
读取子单元,用于从第一ES集群中,每次读取目标数据中预设数量的数据,直至目标数据被全部读取。
可选的,该装置还包括:
第一设置单元,用于若读取不到上一次备份任务的执行时间,获取预设的备份起始时间作为开始时间,获取本次备份任务的执行时间作为结束时间;
或,
第二设置单元,用于若读取不到上一次备份任务的执行时间,将开始时间设置为全量备份的起始时间,获取本次备份任务的执行时间作为结束时间。
可选的,触发指令时在当前时间达到指定时间的情况下触发的,或,触发指令是在第一ES集群中的数据量达到指定数据量的情况下触发的。
可选的,该装置还包括:
压缩单元,用于对备份文件进行压缩,得到压缩文件。
可见,通过在索引中为ES集群中的数据记录数据的更新时间,并且记录每一次备份任务的执行时间,使得每次对ES集群中的数据进行备份时,都只是对更新时间位于上次备份任务的执行时间与本次备份任务的执行时间之间的数据进行备份,对于已经备份过的数据不需要进行重复备份。这样就避免了对ES集群中已经备份过的数据重复的进行备份,从而不仅提高了备份效率,还节省了备份占用的磁盘空间。
此外,本发明实施例还提供了一种数据还原的装置。请参阅图6,示出了本发明实施例中一种数据还原的装置结构示意图,该装置具体包括:
获取单元601,用于获取上述装置对第一ES集群进行备份而得到的备份文件;
遍历单元602,用于对备份文件中的所有数据进行遍历;
插入单元603,用于将遍历出的数据插入到第二ES集群中。
可选的,插入单元603用于每次将遍历出的书库中预设数量的数据插入到第二ES集群中,直至遍历出的数据被全部插入。
可选的,该装置包括:
移动单元,用于在备份文件中的所有数据均插入到第二ES集群之后,将备份文件从未还原目录移动到已还原目录。
本发明实施例中,通过获取对第一ES集群进行得到备份文件,对该备份文件中的所有数据进行遍历,并将遍历出的数据插入到第二ES集群中,使得第一ES集群中的备份文件能够还原至第二ES集群中,实现第一ES集群与第二ES集群的数据同步。
此外,本发明实施例还提供了一种数据备份的设备,所述设备包括:
处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行前述图2所示的实施例中提及的任意一种实施方式的数据备份的方法。
此外,本发明实施例还提供了一种数据还原的设备,所述设备包括:
处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行前述图3所示的实施例中提及的任意一种实施方式的数据还原的方法。
此外,本发明实施例提供了一种存储介质,所述存储介质用于存储程序代码,所述程序代码用于执行前述图2所示的实施例中任意一种实施方式的数据备份的方法。
此外,本发明实施例提供了一种存储介质,所述存储介质用于存储程序代码,所述程序代码用于执行前述图3所示的实施例中任意一种实施方式的数据还原的方法。
此外,本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行前述图2所示的实施例中任意一种实施方式的数据备份的方法。
此外,本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行前述图3所示的实施例中任意一种实施方式的数据还原的方法。
本发明实施例中提到的“第一ES集群”、“第一读取单元”、“第一设置单元”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例和设备实施例而言,由于其基本相似于系统实施例,所以描述得比较简单,相关之处参见系统实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的优选实施方式,并非用于限定本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种数据备份的方法,其特征在于,包括:
响应于本次备份任务的触发指令,读取上一次备份任务的执行时间;
若读取到所述上一次备份任务的执行时间,获取所述上一次备份任务的执行时间作为开始时间,获取所述本次备份任务的执行时间作为结束时间;
根据第一ElasticSearch集群在索引中为数据记录的更新时间,从所述第一ElasticSearch集群中读取更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据;所述目标数据是尚未备份过的数据;
将所述目标数据保存为所述第一ElasticSearch集群的一个备份文件。
2.根据权利要求1所述的方法,其特征在于,所述根据第一ElasticSearch集群在索引中为数据记录的更新时间,从所述第一ElasticSearch集群中读取更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据,包括:
根据所述第一ElasticSearch集群在索引中为数据记录的更新时间,查找出更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据;
从所述第一ElasticSearch集群中,每次读取所述目标数据中预设数量的数据,直至所述目标数据被全部读取。
3.根据权利要求1所述的方法,其特征在于,还包括:
若读取不到所述上一次备份任务的执行时间,获取预设的备份起始时间作为开始时间,获取所述本次备份任务的执行时间作为结束时间;
或,
若读取不到所述上一次备份任务的执行时间,将开始时间设置为全量备份的起始时间,获取所述本次备份任务的执行时间作为结束时间。
4.根据权利要求1所述的方法,其特征在于,所述触发指令是在当前时间达到指定时间的情况下触发的,或,所述触发指令是在第一ElasticSearch集群中的数据量达到指定数据量的情况下触发的。
5.根据权利要求1所述的方法,其特征在于,还包括:
对所述备份文件进行压缩,得到压缩文件。
6.一种数据还原的方法,其特征在于,包括:
获取按照权利要求1至5任意一项所述的方法对第一ElasticSearch集群进行备份而得到的备份文件;
对所述备份文件中的所有数据进行遍历,并将遍历出的数据插入到第二ElasticSearch集群中。
7.根据权利要求6所述的方法,其特征在于,所述将遍历出的数据插入到第二ElasticSearch集群中,包括:
每次将所述遍历出的数据中预设数量的数据插入到所述第二ElasticSearch集群中,直至所述遍历出的数据被全部插入。
8.根据权利要求6所述的方法,其特征在于,还包括:
在所述备份文件中的所有数据均插入到所述第二ElasticSearch集群之后,将所述备份文件从未还原目录移动到已还原目录。
9.一种数据备份的装置,其特征在于,包括:
第一读取单元,用于响应于本次备份任务的触发指令,读取上一次备份任务的执行时间;
获取单元,用于若读取到所述上一次备份任务的执行时间,获取所述上一次备份任务的执行时间作为开始时间,获取所述本次备份任务的执行时间作为结束时间;
第二读取单元,用于根据第一ElasticSearch集群在索引中为数据记录的更新时间,从所述第一ElasticSearch集群中读取更新时间位于所述开始时间与所述结束时间之间的数据,作为目标数据;所述目标数据是尚未备份过的数据;
保存单元,用于将所述目标数据保存为所述第一ElasticSearch集群的一个备份文件。
10.一种数据还原的装置,其特征在于,包括:
获取单元,用于获取如权利要求9所述的装置对第一ElasticSearch集群进行备份而得到的备份文件;
遍历单元,用于对所述备份文件中的所有数据进行遍历;
插入单元,用于将遍历出的数据插入到第二ElasticSearch集群中。
11.一种存储介质,其特征在于,所述存储介质用于存储程序代码,所述程序代码用于执行权利要求1-5任一项所述的数据备份的方法。
12.一种存储介质,其特征在于,所述存储介质用于存储程序代码,所述程序代码用于执行权利要求6-8任一项所述的数据还原的方法。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-5任一项所述的数据备份的方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求6-8任一项所述的数据还原的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710876950.4A CN109558270B (zh) | 2017-09-25 | 2017-09-25 | 数据备份的方法和装置、数据还原的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710876950.4A CN109558270B (zh) | 2017-09-25 | 2017-09-25 | 数据备份的方法和装置、数据还原的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558270A CN109558270A (zh) | 2019-04-02 |
CN109558270B true CN109558270B (zh) | 2021-02-05 |
Family
ID=65862502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710876950.4A Active CN109558270B (zh) | 2017-09-25 | 2017-09-25 | 数据备份的方法和装置、数据还原的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558270B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377580B (zh) * | 2019-07-25 | 2022-02-01 | 中国工商银行股份有限公司 | 一种数据迁移方法、装置及设备 |
CN111240892B (zh) * | 2019-12-02 | 2023-09-29 | 泰康保险集团股份有限公司 | 数据备份方法及装置 |
CN112905308B (zh) * | 2021-05-07 | 2021-07-30 | 武汉众邦银行股份有限公司 | 一种es集群双机房高可用部署方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901175A (zh) * | 2010-02-11 | 2010-12-01 | 宇龙计算机通信科技(深圳)有限公司 | 一种数据备份的方法及电子终端 |
CN102917072A (zh) * | 2012-10-31 | 2013-02-06 | 北京奇虎科技有限公司 | 用于数据服务器集群之间进行数据迁移的设备、系统及方法 |
CN103810060A (zh) * | 2013-11-21 | 2014-05-21 | 北京奇虎科技有限公司 | 基于分布式数据库的数据备份方法及其系统 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
CN105630629A (zh) * | 2015-12-15 | 2016-06-01 | 深圳市慧动创想科技有限公司 | 数据备份方法和系统 |
US9483485B1 (en) * | 2012-09-28 | 2016-11-01 | Emc Corporation | Restore database from backup system where full and incremental backups are performed simultaneously |
CN106294013A (zh) * | 2016-08-10 | 2017-01-04 | 广东省科技基础条件平台中心 | 一种不同备份域之间的数据容灾方法和系统 |
CN106919675A (zh) * | 2017-02-24 | 2017-07-04 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN106998436A (zh) * | 2017-03-24 | 2017-08-01 | 浙江宇视科技有限公司 | 录像备份方法及装置 |
WO2017147794A1 (zh) * | 2016-03-02 | 2017-09-08 | 华为技术有限公司 | 差异数据备份的方法和设备 |
-
2017
- 2017-09-25 CN CN201710876950.4A patent/CN109558270B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901175A (zh) * | 2010-02-11 | 2010-12-01 | 宇龙计算机通信科技(深圳)有限公司 | 一种数据备份的方法及电子终端 |
US9483485B1 (en) * | 2012-09-28 | 2016-11-01 | Emc Corporation | Restore database from backup system where full and incremental backups are performed simultaneously |
CN102917072A (zh) * | 2012-10-31 | 2013-02-06 | 北京奇虎科技有限公司 | 用于数据服务器集群之间进行数据迁移的设备、系统及方法 |
CN103810060A (zh) * | 2013-11-21 | 2014-05-21 | 北京奇虎科技有限公司 | 基于分布式数据库的数据备份方法及其系统 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
CN105630629A (zh) * | 2015-12-15 | 2016-06-01 | 深圳市慧动创想科技有限公司 | 数据备份方法和系统 |
WO2017147794A1 (zh) * | 2016-03-02 | 2017-09-08 | 华为技术有限公司 | 差异数据备份的方法和设备 |
CN106294013A (zh) * | 2016-08-10 | 2017-01-04 | 广东省科技基础条件平台中心 | 一种不同备份域之间的数据容灾方法和系统 |
CN106919675A (zh) * | 2017-02-24 | 2017-07-04 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN106998436A (zh) * | 2017-03-24 | 2017-08-01 | 浙江宇视科技有限公司 | 录像备份方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109558270A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634774B (zh) | 数据备份、恢复方法及装置 | |
CN109558270B (zh) | 数据备份的方法和装置、数据还原的方法和装置 | |
EP3125501B1 (en) | File synchronization method, server, and terminal | |
CN105095300A (zh) | 一种数据库备份方法及系统 | |
CN112714359B (zh) | 视频推荐方法、装置、计算机设备及存储介质 | |
CN110998537B (zh) | 一种过期备份处理方法及备份服务器 | |
US20190227710A1 (en) | Incremental data restoration method and apparatus | |
CN103473277A (zh) | 文件系统的快照方法和装置 | |
CN111400105A (zh) | 数据库备份方法及装置 | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
CN114020522A (zh) | 数据备份方法、装置、电子设备及系统 | |
CN112000850B (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN113254394A (zh) | 一种快照处理方法、系统、设备及存储介质 | |
CN110866068B (zh) | 一种基于hdfs的公告数据存储方法及其装置 | |
CN112631826B (zh) | 一种备份处理方法、装置及计算机可读存储介质 | |
CN110708355A (zh) | 一种文件上传的方法、系统、设备及可读存储介质 | |
CN115048240B (zh) | 基于Kubernetes的数据处理方法、系统及介质 | |
CN113535482B (zh) | 云备份链数据备份方法及装置、设备、可读介质 | |
CN108121514B (zh) | 元信息更新方法、装置、计算设备及计算机存储介质 | |
CN115328696A (zh) | 一种数据库中的数据备份方法 | |
CN111625500B (zh) | 文件快照方法及装置、电子设备和存储介质 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN115658697A (zh) | 一种索引重建方法、装置、设备及存储介质 | |
CN114237976A (zh) | 一种数据获取方法及装置 | |
CN113641693A (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 | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |