CN104636218B - 数据恢复方法及装置 - Google Patents
数据恢复方法及装置 Download PDFInfo
- Publication number
- CN104636218B CN104636218B CN201310574788.2A CN201310574788A CN104636218B CN 104636218 B CN104636218 B CN 104636218B CN 201310574788 A CN201310574788 A CN 201310574788A CN 104636218 B CN104636218 B CN 104636218B
- Authority
- CN
- China
- Prior art keywords
- business datum
- data
- memory space
- index number
- index
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000011084 recovery Methods 0.000 claims abstract description 54
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000008901 benefit Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 13
- 230000009286 beneficial effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开一种数据恢复方法及装置,本发明实施例根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;读取所述备份文件中备份的该故障机器存储的所有业务数据;将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间;相较于现有技术中索引数据进行恢复时所产生的大量磁盘读写操作,本实施例达到了如下有益效果:在恢复索引数据时,避免了索引编号对应存储空间所在机器产生的磁盘读写操作,提高了数据恢复的速度。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种数据恢复方法及装置。
背景技术
目前,实时索引数据全部存储在系统的内存中并被不停的修改,系统会在每次修改索引数据时记录一条日志;在对上述索引数据进行备份时,系统会将全量索引数据定时备份到磁盘中,并同时记录索引修改日志。当索引模块所在的机器出现故障需要恢复数据时,系统先把全量数据恢复到内存中,由于保存全量数据的时间点与机器故障的时间点之间有一定的时长,对于这段时长内的数据,系统将通过索引修改日志来恢复。
上述数据恢复方案会产生大量的磁盘读写操作,比如系统备份全量数据时需要把50GB左右的内存写到磁盘;同时,根据索引修改日志,系统也会不停的写磁盘;而过多的磁盘读写操作将导致索引模块的检索性能变差,特别是检索耗时毛刺(远大于平均耗时的检索请求耗时)的增多。
发明内容
鉴于此,有必要提供一种数据恢复方法及装置,以解决索引模块所在机器发生故障后,系统进行数据恢复时所产生的大量磁盘读写操作的问题。
本发明实施例公开了一种数据恢复方法,包括以下步骤:
根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;
读取所述备份文件中备份的该故障机器存储的所有业务数据;
将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间。
本发明实施例还公开一种数据恢复装置,包括:
查找模块,用于根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;
读取模块,用于读取所述备份文件中备份的该故障机器存储的所有业务数据;
恢复模块,用于将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间。
本发明实施例根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;读取所述备份文件中备份的该故障机器存储的所有业务数据;将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间;相较于现有技术中索引数据进行恢复时所产生的大量磁盘读写操作,本实施例达到了如下有益效果:在恢复索引数据时,避免了索引编号对应存储空间所在机器产生的磁盘读写操作,提高了数据恢复的速度。
附图说明
图1是本发明数据恢复方法第一实施例流程示意图;
图2是本发明数据恢复方法第二实施例流程示意图;
图3是本发明数据恢复方法第三实施例流程示意图;
图4是本发明数据恢复装置第一实施例功能模块示意图;
图5是本发明数据恢复装置第二实施例功能模块示意图;
图6是本发明数据恢复装置第三实施例功能模块示意图。
本发明实施例目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1是本发明数据恢复方法第一实施例流程示意图;如图1所示,本发明数据恢复方法包括以下步骤:
步骤S01、根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;
本发明实施例中,服务端维护多台机器,其中每台机器的内存可以看做一个索引模块,该索引模块为服务端存储索引数据所对应的一个存储空间;服务端为每台机器进行编号即为每台机器分配对应的索引编号;每一个索引编号唯一对应一台机器,当然,每台机器也仅有唯一的一个索引编号;该索引编号也可以理解为各机器中索引模块对应的索引编号。本发明实施例通过部署一个旁路的备份存储空间如备份模块来备份并存储对应的索引数据,且服务端为每台机器内存中存储的业务数据及该机器对应的索引编号,对应地保存一个备份文件,即每台机器内存均对应一个独立的备份文件;也可以理解为每个索引模块均对应一个独立的备份文件。
当其中一台机器出现故障时,服务端获取该故障机器对应的第一索引编号;根据该故障机器对应的第一索引编号,服务端从已备份的数据中查找该第一索引编号对应的备份文件,通过该备份文件,恢复该故障机器中存储的业务数据。
步骤S02、读取所述备份文件中备份的该故障机器存储的所有业务数据;
步骤S03、将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间。
服务端读取故障机器的第一索引编号对应的备份文件中存储的所有业务数据,并将读取的该故障机器存储的所有业务数据进行恢复;本实施例中,服务端将读取的该故障机器存储的所有业务数据恢复至第二索引编号对应的存储空间中,即将该故障机器存储的业务数据恢复至其他正常运行的机器所对应的存储空间中。
本实施例中,服务端在进行故障机器存储的业务数据的恢复时,由于不考虑故障机器是否已恢复正常运行,均直接恢复已存储的备份数据至其他索引编号对应的机器,恢复速度更快。
进一步地,为了避免破坏业务数据的一致性,本发明实施例中,服务端在进行故障机器的业务数据恢复时,将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间之前,服务端识别读取的故障机器存储的业务数据是否被更新过;若服务端识别故障机器存储的业务数据没有被更新过,则将故障机器存储的业务数据恢复至第二索引编号对应的存储空间;若需要恢复的业务数据被更新过,则不能直接将待恢复的业务数据加入到第二索引编号对应的存储空间中。
在本实施例的一优选实施例中,服务端识别读取的故障机器存储的业务数据是否被更新过,包括:服务端识别除第一索引编号外其他所有索引编号对应的存储空间中已存储的数据,是否包含故障机器存储的业务数据;若均不包含故障机器存储的业务数据,则识别故障机器存储的业务数据没有被更新过。
本领域的技术人员可以理解,本发明实施例中所述的第一索引编号和第二索引编号,只是为了描述时区分上述索引编号不是同一索引编号,并不能代表上述索引编号的顺序,更不能代表上述索引编号对应的存储空间的存储大小。
本发明实施例根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;读取所述备份文件中备份的该故障机器存储的所有业务数据;将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间;相较于现有技术中索引数据进行恢复时所产生的大量磁盘读写操作,本实施例达到了如下有益效果:在恢复索引数据时,避免了索引编号对应存储空间所在机器产生的磁盘读写操作,提高了数据恢复的速度;进一步地,由于服务端在存储恢复的业务数据之前,识别该业务数据是否被更新过,具有在进行索引数据恢复时,保持数据一致性的有益效果。
图2是本发明数据恢复方法第二实施例流程示意图;本实施例与图1所述实施例的区别是,在执行索引数据恢复之前,备份索引数据,按照索引编号将各业务数据备份至不同的备份文件中。本实施例中所述的索引数据可以理解为,存储的业务数据及存储该业务数据的存储空间对应的索引编号。
基于图1所述实施例的描述,如图2所示,本发明数据恢复方法在步骤S01、根据故障机器对应的第一索引编号,从已备份的索引数据中查找所述第一索引编号对应的备份文件,之前还包括:
步骤S11、实时接收业务数据,按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间,同时存储所述业务数据对应的备份数据。
本发明实施例中,服务端实时接收业务数据,对接收的业务数据进行处理后,存储在预设索引编号对应的存储空间中,同时存储该业务数据对应的备份数据至对应的备份文件中;其中,所述备份数据包括所述业务数据及存储所述业务数据的存储空间对应的索引编号;这样做的好处是,一旦哪台机器出现故障,即可根据该故障机器的索引编号,直接从该故障机器索引编号对应的备份文件中找到该故障机器的业务数据。本发明实施例中,对每台机器存储的业务数据进行备份时,各机器均单独对应一个备份文件,该备份文件中备份了该机器存储的所有业务数据。
进一步地,为了保证因过期或者陈旧而失效的业务数据不占用服务端的存储空间,减少服务端存储空间的不必要的浪费,本发明实施例采取索引滚动与淘汰的方式进行业务数据的备份。服务端按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间时,若预设索引编号对应的存储空间已存储的业务数据达到该存储空间的存储阈值,则将所述业务数据存储至其他索引编号对应的存储空间;若所有存储空间已存储的业务数据均已达到各存储空间对应的存储阈值,则清空最先存储业务数据的存储空间,将新接收的所述业务数据存储至清空后的所述存储空间中。
比如,基于图1所述实施例中定义的用于存储各机器中所有业务数据的索引模块,其中每台机器均对应一个索引模块;假设有N台机器,每台机器上运行的索引模块对应的编号分别是1,2,…,N;同一服务端维护的所有机器中,在同一时刻只有一个索引模块实时的建立索引。服务端接收到索引数据后,先把索引数据发给索引模块1,如果索引模块1的内存数据空间满了,服务端开始把索引数据发送给索引模块2,依次类推。如果N个索引模块中存储的业务数据都满了,则服务端会淘汰最老的索引数据,服务端清空最先存储业务数据的索引模块1的内存数据后,开始把索引数据发送给索引模块1;服务端中的N个索引模块存储的业务数据就这样循环的滚动和淘汰。
另外,由于服务端备份的索引数据会不停的滚动和淘汰,因此需要保证服务端备份的备份文件只包含当前索引模块的业务数据。每个索引模块从建立索引到数据被淘汰,均有较长的时间间隔,因此服务端合理设置备份文件名便可以实现备份文件只包含当前索引模块的业务数据的目的。比如,服务端将备份文件的名称设置为“backup_index_date”,其中backup是文件名前缀,index是索引编号,date是文件创建的日期;服务端根据index可以区分不同的索引模块,根据date可以区分哪个文件的数据是最新的。
进一步地,本发明实施例中,服务端恢复故障机器存储的业务数据时,为避免故障机器存储的旧数据覆盖服务端接收到的该故障机器对应的新的业务数据,服务端需要记录接收到的每个业务数据产生时间的时间戳,根据各业务数据产生时间的时间戳,判断业务数据产生的时序。
服务端每次收到业务数据,需要先查询这个业务数据是否已经存在于已备份的数据中;若所述业务数据不存在,则识别所述业务数据为新业务数据,将所述业务数据存储至预设索引编号对应的存储空间,同时,保存该业务数据的时间戳;若所述业务数据已存在,则比较接收所述业务数据的第一时间戳T1,与已备份的数据中存储该业务数据的第二时间戳T2的大小关系;根据第一时间戳T1与第二时间戳T2的大小关系,将所述业务数据存储至预设索引编号对应的存储空间。
如果T1大于T2,服务端识别接收的所述业务数据为新的业务数据,将所述业务数据存储至预设索引编号对应的存储空间,同时,记录所述业务数据的时间戳为第一时间戳T1;如果T1等于T2,服务端识别接收的所述业务数据为备份数据,将所述业务数据存储至预设索引编号对应的存储空间;如果T1小于T2,服务端识别接收的所述业务数据为已存储的某数据更新之前的旧数据且被更新过,不能发给索引模块,也不更新时间戳。由于备份文件中的数据含有时间戳字段,所以恢复数据时不会存在旧数据覆盖新数据的情况,能够保证数据一致性。
本发明实施例通过实时接收业务数据,对接收的业务数据及存储该业务数据对应的存储空间的索引编号进行备份,是后续快速恢复故障机器对应的业务数据的前提;另外,本发明实施例记录并备份了各业务数据的时间戳,具有恢复数据时,进一步保证数据一致性的有益效果,避免了旧数据覆盖新数据的情况。
图3是本发明数据恢复方法第三实施例流程示意图;本实施例与图2所述的实施例的区别是,对恢复后的业务数据进行备份。
基于图1和图2所述实施例的具体描述,如图3所示,本发明数据恢复方法在步骤S03、将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间,之后还包括:
步骤S04、将恢复后的业务数据所对应的备份数据进行存储;其中,恢复后的业务数据所对应的备份数据包括:故障机器存储的业务数据及所述第二索引编号。
本实施例中,服务端将恢复后的业务数据所对应的备份数据进行存储,也可以理解为,对恢复后的业务数据及存储该业务数据的存储空间对应的索引编号进行备份;防止存储该业务数据的存储空间所在机器因故障而丢失该业务数据。
本发明实施例将恢复后的业务数据所对应的备份数据进行存储,具有防止该业务数据丢失的有益效果,另外,一旦存储该业务数据的机器再次发生故障,便于对该业务数据进行快速恢复。
图4是本发明数据恢复装置第一实施例功能模块示意图;如图4所示,本发明数据恢复装置包括:查找模块01、读取模块02和恢复模块03。
查找模块01,用于根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;
本发明实施例中,服务端维护多台机器,其中每台机器的内存可以看做一个索引模块,该索引模块为服务端存储索引数据所对应的一个存储空间;服务端为每台机器进行编号即为每台机器分配对应的索引编号;每一个索引编号唯一对应一台机器,当然,每台机器也仅有唯一的一个索引编号;该索引编号也可以理解为各机器中索引模块对应的索引编号。本发明实施例通过部署一个旁路的备份存储空间如备份模块来备份并存储对应的索引数据,且服务端为每台机器内存中存储的业务数据及该机器对应的索引编号,对应地保存一个备份文件,即每台机器内存均对应一个独立的备份文件;也可以理解为每个索引模块均对应一个独立的备份文件。
当其中一台机器出现故障时,服务端的查找模块01获取该故障机器对应的第一索引编号;根据该故障机器对应的第一索引编号,查找模块01从已备份的数据中查找该第一索引编号对应的备份文件,通过该备份文件,恢复该故障机器中存储的业务数据。
读取模块02,用于读取所述备份文件中备份的该故障机器存储的所有业务数据;
恢复模块03,用于将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间。
读取模块02读取故障机器的第一索引编号对应的备份文件中存储的所有业务数据,并将读取的该故障机器存储的所有业务数据进行恢复;本实施例中,恢复模块03将读取模块02读取的该故障机器存储的所有业务数据恢复至第二索引编号对应的存储空间中,即将该故障机器存储的业务数据恢复至其他正常运行的机器所对应的存储空间中。
本实施例中,恢复模块03在进行故障机器存储的业务数据的恢复时,由于不考虑故障机器是否已恢复正常运行,均直接恢复已存储的备份数据至其他索引编号对应的机器,恢复速度更快。
进一步地,为了避免破坏业务数据的一致性,本发明实施例中,恢复模块03在进行故障机器的业务数据恢复时,将读取模块02读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间之前,恢复模块03识别读取的故障机器存储的业务数据是否被更新过;若恢复模块03识别故障机器存储的业务数据没有被更新过,则将故障机器存储的业务数据恢复至第二索引编号对应的存储空间;若需要恢复的业务数据被更新过,则恢复模块03不能直接将待恢复的业务数据加入到第二索引编号对应的存储空间中。
在本实施例的一优选实施例中,恢复模块03识别读取的故障机器存储的业务数据是否被更新过,包括:恢复模块03识别除第一索引编号外其他所有索引编号对应的存储空间中已存储的数据,是否包含故障机器存储的业务数据;若均不包含故障机器存储的业务数据,则识别故障机器存储的业务数据没有被更新过。
本领域的技术人员可以理解,本发明实施例中所述的第一索引编号和第二索引编号,只是为了描述时区分上述索引编号不是同一索引编号,并不能代表上述索引编号的顺序,更不能代表上述索引编号对应的存储空间的存储大小。
本发明实施例根据故障机器对应的第一索引编号,从已备份的数据中查找所述第一索引编号对应的备份文件;读取所述备份文件中备份的该故障机器存储的所有业务数据;将读取的故障机器存储的业务数据恢复至第二索引编号对应的存储空间;相较于现有技术中索引数据进行恢复时所产生的大量磁盘读写操作,本实施例达到了如下有益效果:在恢复索引数据时,避免了索引编号对应存储空间所在机器产生的磁盘读写操作,提高了数据恢复的速度;进一步地,由于服务端在存储恢复的业务数据之前,识别该业务数据是否被更新过,具有在进行索引数据恢复时,保持数据一致性的有益效果。
图5是本发明数据恢复装置第二实施例功能模块示意图;本实施例与图4所述实施例的区别是,本发明实施例中,数据恢复装置还包括存储模块04。
存储模块04,用于实时接收业务数据,按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间,同时存储所述业务数据对应的备份数据;
本发明实施例中,存储模块04实时接收业务数据,对接收的业务数据进行处理后,存储在预设索引编号对应的存储空间中,同时存储该业务数据对应的备份数据至对应的备份文件中;其中,所述备份数据包括所述业务数据及存储所述业务数据的存储空间对应的索引编号;这样做的好处是,一旦哪台机器出现故障,恢复模块03即可根据该故障机器的索引编号,直接从该故障机器索引编号对应的备份文件中找到该故障机器的业务数据。本发明实施例中,对每台机器存储的业务数据进行备份时,各机器均单独对应一个备份文件,该备份文件中备份了该机器存储的所有业务数据。
进一步地,为了保证因过期或者陈旧而失效的业务数据不占用服务端的存储空间,减少服务端存储空间的不必要的浪费,本发明实施例中,存储模块04采取索引滚动与淘汰的方式进行业务数据的备份。存储模块04按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间时,若预设索引编号对应的存储空间已存储的业务数据达到该存储空间的存储阈值,则存储模块04将所述业务数据存储至其他索引编号对应的存储空间;若所有存储空间已存储的业务数据均已达到各存储空间对应的存储阈值,存储模块04则清空最先存储业务数据的存储空间,将新接收的所述业务数据存储至清空后的所述存储空间中。
比如,基于图1所述实施例中定义的用于存储各机器中所有业务数据的索引模块,其中每台机器均对应一个索引模块;假设有N台机器,每台机器上运行的索引模块对应的编号分别是1,2,…,N;同一服务端维护的所有机器中,在同一时刻只有一个索引模块实时的建立索引。存储模块04接收到索引数据后,先把索引数据发给索引模块1,如果索引模块1的内存数据空间满了,存储模块04开始把索引数据发送给索引模块2,依次类推。如果N个索引模块中存储的业务数据都满了,则存储模块04会淘汰最老的索引数据,存储模块04清空最先存储业务数据的索引模块1的内存数据后,开始把索引数据发送给索引模块1;服务端中的N个索引模块存储的业务数据就这样循环的滚动和淘汰。
另外,由于服务端备份的索引数据会不停的滚动和淘汰,因此需要保证服务端备份的备份文件只包含当前索引模块的业务数据。每个索引模块从建立索引到数据被淘汰,均有较长的时间间隔,因此服务端合理设置备份文件名便可以实现备份文件只包含当前索引模块的业务数据的目的。比如,服务端将备份文件的名称设置为“backup_index_date”,其中backup是文件名前缀,index是索引编号,date是文件创建的日期;服务端根据index可以区分不同的索引模块,根据date可以区分哪个文件的数据是最新的。
进一步地,本发明实施例中,服务端恢复故障机器存储的业务数据时,为避免故障机器存储的旧数据覆盖服务端接收到的该故障机器对应的新的业务数据,存储模块04需要记录接收到的每个业务数据产生时间的时间戳,根据各业务数据产生时间的时间戳,判断业务数据产生的时序。
存储模块04每次收到业务数据,需要先查询这个业务数据是否已经存在于已备份的数据中;若所述业务数据不存在,则识别所述业务数据为新业务数据,将所述业务数据存储至预设索引编号对应的存储空间,同时,保存该业务数据的时间戳;若所述业务数据已存在,则比较接收所述业务数据的第一时间戳T1,与已备份的数据中存储该业务数据的第二时间戳T2的大小关系;根据第一时间戳T1与第二时间戳T2的大小关系,将所述业务数据存储至预设索引编号对应的存储空间。
如果T1大于T2,存储模块04识别接收的所述业务数据为新的业务数据,将所述业务数据存储至预设索引编号对应的存储空间,同时,记录所述业务数据的时间戳为第一时间戳T1;如果T1等于T2,存储模块04识别接收的所述业务数据为备份数据,将所述业务数据存储至预设索引编号对应的存储空间;如果T1小于T2,存储模块04识别接收的所述业务数据为已存储的某数据更新之前的旧数据且被更新过,不能发给索引模块,也不更新时间戳。由于备份文件中的数据含有时间戳字段,所以恢复模块03恢复数据时不会存在旧数据覆盖新数据的情况,能够保证数据一致性。
本发明实施例通过实时接收业务数据,对接收的业务数据及存储该业务数据对应的存储空间的索引编号进行备份,是后续快速恢复故障机器对应的业务数据的前提;另外,本发明实施例记录并备份了各业务数据的时间戳,具有恢复数据时,进一步保证数据一致性的有益效果,避免了旧数据覆盖新数据的情况。
基于图4和图5所述实施例的具体描述,请再次参照图4和图5,图4和图5中,所述恢复模块03还用于:
将恢复后的业务数据所对应的备份数据进行存储;其中,恢复后的业务数据所对应的备份数据包括:故障机器存储的业务数据及所述第二索引编号。
本实施例中,恢复模块03将恢复后的业务数据所对应的备份数据进行存储,也可以理解为,恢复模块03对恢复后的业务数据及存储该业务数据的存储空间对应的索引编号进行备份;防止存储该业务数据的存储空间所在机器因故障而丢失该业务数据。
本发明实施例将恢复后的业务数据所对应的备份数据进行存储,具有防止该业务数据丢失的有益效果,另外,一旦存储该业务数据的机器再次发生故障,便于对该业务数据进行快速恢复。
图6是本发明数据恢复装置第三实施例功能模块示意图,图6展示了本发明数据恢复装置中各模块交互时数据流的走向。其中,图6所述的恢复模块具备图4和图5所述实施例中查找模块01、读取模块02和恢复模块03的功能,图6所述的更新模块具备图4和图5所述实施例中存储模块04的功能,图6所述的索引模块具备图4所示的索引模块的功能,图6所述的备份模块,具备恢复模块03中对数据进行备份功能;利用图6所示的功能模块示意图,基于本发明数据恢复方法及装置的发明思想,同样能够达到本发明数据恢复方法及装置的技术效果。
基于图4、图5所述实施例的具体描述,如图6所示,在进行数据恢复时,恢复模块根据故障机器中索引模块的索引编号,从备份模块的备份数据里找到对应的备份文件。恢复模块读出备份文件的所有业务数据,发送给更新模块重新建立索引;具有快速恢复故障机器存储的业务数据的有益效果。
另外,由于恢复数据的过程中,更新模块同时收到最新的业务数据和故障机器的备份数据,为避免故障机器存储的旧数据覆盖新数据,更新模块接收到的该故障机器对应的新的业务数据时,更新模块记录接收到的每个业务数据产生时间的时间戳,根据各业务数据产生时间的时间戳,判断业务数据产生的时序。
更新模块每次收到业务数据时,均需要先查询这个业务数据是否已经存在于已备份的数据中;若所述业务数据不存在,则识别所述业务数据为新业务数据,将所述业务数据发送至预设索引编号对应的索引模块进行存储,同时,保存该业务数据的时间戳;若所述业务数据已存在,则比较接收所述业务数据的第一时间戳T1,与已备份的数据中存储该业务数据的第二时间戳T2的大小关系;如果T1大于T2,更新模块识别接收的所述业务数据为新的业务数据,将所述业务数据发送至预设索引编号对应的索引模块进行存储,同时,记录所述业务数据的时间戳为第一时间戳T1;如果T1等于T2,更新模块识别接收的所述业务数据为备份数据,将所述业务数据发送至预设索引编号对应的索引模块进行存储;如果T1小于T2,更新模块识别接收的所述业务数据为已存储的某数据更新之前的旧数据且被更新过,不能发给索引模块,也不更新时间戳。另外,由于备份模块存储的备份文件中的业务数据含有时间戳字段,所以恢复数据时不会存在旧数据覆盖新数据的情况,能够保证数据一致性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个图4、图5或者图6所述的数据恢复装置的存储介质(如ROM/RAM、磁碟、光盘)中,图4、图5或者图6所述的数据恢复装置的存储介质包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备,或者图4、图5或者图6所述的数据恢复装置等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
1.一种数据恢复方法,其特征在于,包括以下步骤:
根据故障机器对应的第一索引编号,从备份存储空间的已备份的数据中查找所述第一索引编号对应的备份文件;
读取所述备份文件中备份的该故障机器存储的所有业务数据;
识别除第一索引编号外其他所有索引编号对应的存储空间中已存储的数据,是否包含故障机器存储的业务数据;
若不包含故障机器存储的业务数据,则识别故障机器存储的业务数据没有被更新过;
若识别故障机器存储的业务数据没有被更新过,将故障机器存储的业务数据恢复至第二索引编号对应的存储空间。
2.如权利要求1所述的方法,其特征在于,所述根据故障机器对应的第一索引编号,从备份存储空间的已备份的索引数据中查找所述第一索引编号对应的备份文件,之前还包括:
实时接收业务数据,按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间,同时存储所述业务数据对应的备份数据;
其中,所述备份数据包括所述业务数据及存储所述业务数据的存储空间对应的索引编号。
3.如权利要求2所述的方法,其特征在于,所述将所述业务数据存储至预设索引编号对应的存储空间,包括:记录接收的每个业务数据产生时间的时间戳。
4.如权利要求3所述的方法,其特征在于,所述按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间,包括:
查询接收的所述业务数据是否在已备份的数据中存在;
若所述业务数据不存在,则识别所述业务数据为新业务数据,将所述业务数据存储至预设索引编号对应的存储空间;若所述业务数据已存在,则比较接收所述业务数据的第一时间戳T1,与已备份的数据中存储该业务数据的第二时间戳T2的大小关系;根据第一时间戳T1与第二时间戳T2的大小关系,将所述业务数据存储至预设索引编号对应的存储空间。
5.如权利要求4所述的方法,其特征在于,所述根据第一时间戳T1与第二时间戳T2的大小关系,将所述业务数据存储至预设索引编号对应的存储空间,包括:
若T1大于T2,识别接收的所述业务数据为新的业务数据,将所述业务数据存储至预设索引编号对应的存储空间,同时,记录所述业务数据的时间戳为第一时间戳T1;
若T1等于T2,识别接收的所述业务数据为备份数据,将所述业务数据存储至预设索引编号对应的存储空间;
若T1小于T2,识别接收的所述业务数据为已存储的某数据更新之前的旧数据且该数据被更新过,不将所述业务数据存储至预设索引编号对应的存储空间。
6.如权利要求2所述的方法,其特征在于,所述按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间,包括:
若预设索引编号对应的存储空间已存储的业务数据达到该存储空间的存储阈值,则将所述业务数据存储至其他索引编号对应的存储空间;
若所有存储空间已存储的业务数据均已达到各存储空间对应的存储阈值,则清空最先存储业务数据的存储空间,将新接收的所述业务数据存储至清空后的所述存储空间中。
7.如权利要求1所述的方法,其特征在于,所述将故障机器存储的业务数据恢复至第二索引编号对应的存储空间,之后还包括:将恢复后的业务数据所对应的备份数据进行存储;
其中,恢复后的业务数据所对应的备份数据包括:故障机器存储的业务数据及所述第二索引编号。
8.一种数据恢复装置,其特征在于,包括:查找模块,用于根据故障机器对应的第一索引编号,从备份存储空间的已备份的数据中查找所述第一索引编号对应的备份文件;读取模块,用于读取所述备份文件中备份的该故障机器存储的所有业务数据;
恢复模块,用于识别除第一索引编号外其他所有索引编号对应的存储空间中已存储的数据,是否包含故障机器存储的业务数据;
若不包含故障机器存储的业务数据,则识别故障机器存储的业务数据没有被更新过;若识别故障机器存储的业务数据没有被更新过,将故障机器存储的业务数据恢复至第二索引编号对应的存储空间。
9.如权利要求8所述的装置,其特征在于,还包括:
存储模块,用于实时接收业务数据,按照预设存储机制,将所述业务数据存储至预设索引编号对应的存储空间,同时存储所述业务数据对应的备份数据;
其中,所述备份数据包括所述业务数据及存储所述业务数据的存储空间对应的索引编号。
10.如权利要求9所述的装置,其特征在于,所述存储模块还用于:
记录接收的每个业务数据产生时间的时间戳。
11.如权利要求10所述的装置,其特征在于,所述存储模块还用于:
查询接收的所述业务数据是否在已备份的数据中存在;
若所述业务数据不存在,则识别所述业务数据为新业务数据,将所述业务数据存储至预设索引编号对应的存储空间;若所述业务数据已存在,则比较接收所述业务数据的第一时间戳T1,与已备份的数据中存储该业务数据的第二时间戳T2的大小关系;根据第一时间戳T1与第二时间戳T2的大小关系,将所述业务数据存储至预设索引编号对应的存储空间。
12.如权利要求11所述的装置,其特征在于,所述存储模块还用于:
若T1大于T2,识别接收的所述业务数据为新的业务数据,将所述业务数据存储至预设索引编号对应的存储空间,同时,记录所述业务数据的时间戳为第一时间戳T1;
若T1等于T2,识别接收的所述业务数据为备份数据,将所述业务数据存储至预设索引编号对应的存储空间;
若T1小于T2,识别接收的所述业务数据为已存储的某数据更新之前的旧数据且该数据被更新过,不将所述业务数据存储至预设索引编号对应的存储空间。
13.如权利要求9所述的装置,其特征在于,所述存储模块还用于:
若预设索引编号对应的存储空间已存储的业务数据达到该存储空间的存储阈值,则将所述业务数据存储至其他索引编号对应的存储空间;
若所有存储空间已存储的业务数据均已达到各存储空间对应的存储阈值,则清空最先存储业务数据的存储空间,将新接收的所述业务数据存储至清空后的所述存储空间中。
14.如权利要求8所述的装置,其特征在于,所述恢复模块还用于:
将恢复后的业务数据所对应的备份数据进行存储;其中,恢复后的业务数据所对应的备份数据包括:故障机器存储的业务数据及所述第二索引编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310574788.2A CN104636218B (zh) | 2013-11-15 | 2013-11-15 | 数据恢复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310574788.2A CN104636218B (zh) | 2013-11-15 | 2013-11-15 | 数据恢复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636218A CN104636218A (zh) | 2015-05-20 |
CN104636218B true CN104636218B (zh) | 2019-04-16 |
Family
ID=53215005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310574788.2A Active CN104636218B (zh) | 2013-11-15 | 2013-11-15 | 数据恢复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636218B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339279B (zh) * | 2016-08-24 | 2021-10-12 | 新华三技术有限公司 | 一种业务恢复方法及装置 |
CN107783728B (zh) * | 2016-08-31 | 2021-07-23 | 百度在线网络技术(北京)有限公司 | 数据存储方法、装置和设备 |
CN106681865B (zh) * | 2017-01-16 | 2020-07-07 | 北京腾凌科技有限公司 | 业务恢复方法及装置 |
CN110399249A (zh) * | 2019-06-04 | 2019-11-01 | 腾讯科技(北京)有限公司 | 一种数据容灾方法及相关装置 |
CN113190581A (zh) * | 2021-04-30 | 2021-07-30 | 宝宝巴士股份有限公司 | 一种基于大数据动态生成报表的方法及终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656624B (zh) * | 2008-08-18 | 2011-12-07 | 中兴通讯股份有限公司 | 一种多节点应用级容灾系统及容灾方法 |
US8843449B2 (en) * | 2009-06-16 | 2014-09-23 | Bmc Software, Inc. | Unobtrusive copies of actively used compressed indices |
WO2012071695A1 (zh) * | 2010-11-29 | 2012-06-07 | 华为技术有限公司 | 节点故障处理方法、系统及相关设备 |
-
2013
- 2013-11-15 CN CN201310574788.2A patent/CN104636218B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104636218A (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102024016B (zh) | 一种分布式文件系统快速数据恢复的方法 | |
CN104636218B (zh) | 数据恢复方法及装置 | |
US8234475B2 (en) | Save set bundling for staging | |
CN106201771B (zh) | 数据存储系统和数据读写方法 | |
CN106354583B (zh) | 一种MySQL数据库的热备份方法与系统 | |
US8924355B1 (en) | Checkpoint restart | |
CN102934097B (zh) | 数据去重 | |
US9183268B2 (en) | Partition level backup and restore of a massively parallel processing database | |
CN102945278B (zh) | 一种数据库记录重做日志的方法和装置 | |
CN103761165B (zh) | 日志备份方法及装置 | |
US7577808B1 (en) | Efficient backup data retrieval | |
CN105824846B (zh) | 数据迁移方法及装置 | |
CN107608826A (zh) | 一种存储集群的节点的故障恢复方法、装置及介质 | |
CN103986779B (zh) | 一种应用数据传输方法、装置及终端设备 | |
CN105376277A (zh) | 一种数据同步方法及装置 | |
CN103077166A (zh) | 小文件存储的空间复用方法和装置 | |
CN109240607A (zh) | 一种文件读取方法和装置 | |
CN106095615A (zh) | 应用数据还原方法及装置 | |
CN107066349A (zh) | 一种集群文件系统数据保护的方法及系统 | |
CN106339387A (zh) | 一种数据库集群中新增服务器的数据同步方法及装置 | |
CN105955845A (zh) | 一种数据恢复方法及装置 | |
CN104270605A (zh) | 一种视频监控数据的处理方法及装置 | |
CN104820625B (zh) | 一种面向信息管理系统的数据记录、备份及恢复方法 | |
CN107357920A (zh) | 一种增量式的多副本数据同步方法及系统 | |
CN106682021A (zh) | 数据库迁移方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231226 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518044, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |