CN108599982B - 数据恢复方法及相关设备 - Google Patents
数据恢复方法及相关设备 Download PDFInfo
- Publication number
- CN108599982B CN108599982B CN201810209795.5A CN201810209795A CN108599982B CN 108599982 B CN108599982 B CN 108599982B CN 201810209795 A CN201810209795 A CN 201810209795A CN 108599982 B CN108599982 B CN 108599982B
- Authority
- CN
- China
- Prior art keywords
- node
- data file
- server node
- server
- source node
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
Abstract
本申请提供了一种数据恢复方法及相关设备,其中,数据恢复方法包括:调度器接收第一服务器节点发送的请求恢复指令;其中,第一服务器节点为数据文件损坏的故障节点,所述请求恢复指令中携带有第一服务器节点的日志序列号;调度器获取多个第二服务器节点的日志序列号;调度器从多个第二服务器节点中选择出至少一个源节点,源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点;调度器指示所述至少一个源节点中的每个源节点,恢复第一服务器节点中待恢复的数据文件;至少一个源节点中的每个源节点用于恢复待恢复的数据文件中的不同数据文件。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及数据恢复技术。
背景技术
现今,关系型数据库中,为了保证数据库的吞吐性能,数据的插入、修改及删除操作并非直接作用于数据文件(Datafile),而是在缓冲池(Buffer Pool)和事务日志中执行,缓冲池中的数据再以刷脏的形式写入数据文件。
在关系型数据库的实际应用过程中,会出现数据文件损坏的现象,需要恢复数据文件中的数据。由于关系型数据库的数据写入过程较为复杂,因此,数据文件中数据的恢复基本都是采用离线手动的方式完成。具体的,设置一主多备几个数据库,当一个数据库中的数据文件损坏时,从其他数据库的数据文件中手动拷贝数据进行恢复。
但是,多个备用数据库的刷脏操作并非完全同步,也很可能是落后于主数据库。这样,从刷脏操作落后的数据库拷贝数据到其他数据库或者主数据库,就很可能造成数据丢失。
发明内容
本申请提供了一种数据恢复方法及相关设备,以解决恢复数据库中的损坏的数据文件中存在数据丢失问题。
为了实现上述目的,现提出的方案如下:
本申请的第一方面提供了一种数据恢复方法,包括:调度器接收第一服务器节点发送的请求恢复指令;其中,所述第一服务器节点为数据文件损坏的故障节点,所述请求恢复指令中携带有所述第一服务器节点的日志序列号;所述调度器获取多个第二服务器节点的日志序列号;所述调度器从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点;所述调度器指示所述至少一个源节点中的每个源节点,恢复所述第一服务器节点中待恢复的数据文件;所述至少一个源节点中的每个源节点用于恢复所述待恢复的数据文件中的不同数据文件。
从上述过程可以看出:调度器从第二服务器节点中筛选的源节点的日志序列号不小于第一服务器节点的日志序列号,说明源节点中的关系型数据库中的数据量是不小于第一服务器节点的关系型数据库中的数据量。因此,指示源节点恢复第一服务器节点的待恢复的数据文件,可以避免数据丢失。
在一个实现方式中,所述调度器从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点,包括:所述调度器从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指数据库运行正常、且日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点。
在一个实现方式中,所述调度器指示所述至少一个源节点中的每个源节点,恢复所述第一服务器节点中待恢复的数据文件,包括:所述调度器循环计算每个所述源节点的待恢复的数据文件,直至满足计算的所述每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止;其中,所述落后的数据文件包括:所述源节点的缓冲池中未写入到所述源节点的待恢复的数据文件的数据;所述调度器向每个所述源节点发送恢复指令,所述恢复指令中携带有所述源节点的待恢复的数据文件。上述过程可以看出:调度器计算得到的每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之后的方差最小,可以保证第一服务器节点的待恢复的数据文件,按照数据文件的大小,尽可能平均地分配到多个源节点,且保证每个源节点的待恢复的数据文件的大小符合自身的工作能力。
在一个实现方式中,所述请求恢复指令由所述第一服务器节点在向数据文件中写入数据失败时生成。
本申请的第二方面提供了一种数据恢复方法,包括:第二服务器节点接收调度器发送的指示,所述指示指定了所述第二服务器节点的待恢复的数据文件;所述第二服务器节点在第一服务器节点恢复所述待恢复的数据文件;其中,所述第一服务器节点为数据文件损坏的故障节点。
在一个实现方式中,还包括:所述第二服务器节点判断自身是否是落后节点;
若所述第二服务器节点判断出自身是落后节点,则所述第二服务器节点将落后的数据写入所述待恢复的数据文件;其中,若所述第二服务器节点判断出自身不是落后节点,以及所述第二服务器节点将落后的数据写入所述待恢复的数据文件之后,所述第二服务器节点在第一服务器节点恢复所述待恢复的数据文件。上述过程可以看出:在第二服务器节点
在一个实现方式中,所述第二服务器节点将落后的数据写入所述待恢复的数据文件,包括:所述第二服务器节点从日志序列号列表中选取脏页,直至选取脏页后的第二服务器节点的检查点不小于所述第一服务器节点的检查点为止;所述第二服务器节点将选取的脏页写入所述待恢复的数据文件。
本申请的第三方面提供了一种调度器,包括:接收单元,用于接收第一服务器节点发送的请求恢复指令;其中,所述第一服务器节点为数据文件损坏的故障节点,所述请求恢复指令中携带有所述第一服务器节点的日志序列号;获取单元,用于获取多个第二服务器节点的日志序列号;筛选单元,用于从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点;指示单元,用于指示所述至少一个源节点中的每个源节点,恢复所述第一服务器节点中待恢复的数据文件;所述至少一个源节点中的每个源节点用于恢复所述待恢复的数据文件中的不同数据文件。
在一个实现方式中,所述筛选单元,包括:筛选子单元,用于从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指数据库运行正常、且日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点。
在一个实现方式中,所述指示单元,包括:计算单元,用于循环计算每个所述源节点的待恢复的数据文件,直至满足计算的所述每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止;其中,所述落后的数据文件包括:所述源节点的缓冲池中未写入到所述源节点的被分配的数据文件的数据;发送单元,用于向每个所述源节点发送恢复指令,所述恢复指令中携带有所述源节点的待恢复的数据文件。
在一个实现方式中,所述请求恢复指令由所述第一服务器节点在向数据文件中写入数据失败时生成。
本申请的第四方面提供了一种服务器节点,所述服务器节点为第二服务器节点,包括:接收单元,用于接收调度器发送的指示,所述指示指定了所述第二服务器节点的待恢复的数据文件;恢复单元,用于在第一服务器节点恢复所述待恢复的数据文件;其中,所述第一服务器节点为数据文件损坏的故障节点。
在一个实现方式中,还包括:判断单元,用于判断自身是否是落后节点;写入单元,用于在所述判断单元判断出自身是落后节点,将落后的数据写入所述待恢复的数据文件;其中,所述判断单元判断出自身不是落后节点,以及在所述写入单元将落后的数据写入所述待恢复的数据文件之后,所述恢复单元在第一服务器节点恢复所述待恢复的数据文件。
在一个实现方式中,所述写入单元,包括:选取单元,用于从日志序列号列表中选取脏页,直至选取脏页后的第二服务器节点的检查点不小于所述第一服务器节点的检查点为止;写入子单元,用于将选取的脏页写入所述待恢复的数据文件。
本申请的第五方面还提供了一种调度器,包括存储器和处理器;所述存储器用于存储计算机程序代码;所述处理器用于执行所述存储器存储的代码,使得所述调度器执行上述任一项所述的方法。
本申请的第六方面还提供了一种服务器节点,所述服务器节点为第二服务器节点,包括存储器和处理器;所述存储器用于存储计算机程序代码;所述处理器用于执行所述存储器存储的代码,使得所述第二服务器节点执行上述任一项所述的方法。
本申请的第七方面还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令用于执行上述所介绍的数据恢复方法。
本申请的第八方面还提供了一种计算机程序产品,当所述该计算机产品被执行时,用于执行上述所介绍的数据恢复方法。
附图说明
图1为本申请实施例公开的一种数据库集群的示意图;
图2为本申请实施例公开的一种数据恢复方法的时序图;
图3为本申请实施例公开的一种调度器的示意图;
图4为本申请实施例公开的一种第二服务器节点的示意图;
图5为本申请另一实施例公开的一种调度器的示意图;
图6为本申请另一实施例公开的服务器节点的示意图。
具体实施方式
本申请实施例公开了一种数据库集群,参见图1,包括n个服务器节点,n大于1。每个服务器节点中设置有一个关系型数据库,其中,服务器节点1中设置主数据库,可称之为主节点,服务器节点2~服务器节点n中设置备用数据库。主数据库的数据文件中的数据,会通过服务器节点之间的传输协议传输到备用数据库,由备用数据库进行解析,再以先写入缓冲池和事务日志,再由缓冲池以刷脏的形式写入自身的数据文件。
以下以包括3个服务器节点的数据库集群为例,对本申请实施例公开的数据恢复方法进行详细说明。本实例中,服务器节点1设置有主数据库,服务器节点2和服务器节点3分别设置备用数据库。
参见图2,本实施例公开了一种数据恢复方法,包括步骤:
S201、服务器节点1判断出在数据文件中写入数据失败,停止服务器节点1和数据库集群中的其他服务器节点间的数据传输。
其中,数据文件是指服务器节点中的永久性存储介质的存储空间,用于保存关系型数据库中持久性的数据。服务器节点1将缓冲池的脏页写入数据文件。并且,还会将数据文件中的数据传输至服务器节点2和服务器节点3。在服务器节点1将缓冲池的脏页写入数据文件的过程中,会不断判断数据写入是否成功。若判断出缓冲池的脏页写入数据文件失败,则说明数据文件损坏,服务器节点1为故障节点,则服务器节点1停止自身与服务器节点2和服务器节点3之间的数据传输。
可选地,本申请的另一实施例中,服务器节点1判断出数据文件中的数据写入失败,数据文件损坏,还可以将数据库集群中的主节点切换至集群中除故障节点以外的其他的服务器节点中的任意一个,当然,还可以设定切换优先级顺序,依切换优先级顺序进行主节点的切换。其中,数据库集群中的主节点的切换操作,可以停止服务器节点1和其他服务器节点间的数据传输停止之后执行。
S202、服务器节点1向调度器发送请求恢复指令。
调度器可以设置于数据库集群中的任意一个服务器节点中,也可以是一个第三方设备。服务器节点1向调度器发送的请求恢复指令用于请求恢复服务器节点1中的数据文件,指令中携带有服务器节点1的日志序列号(log sequence number,LSN),服务器节点的日志序列号用于表示服务器节点中数据写入到事务日志的字节总量,也用于说明服务器节点中数据写入到缓冲池中的字节总量。
S203、调度器分别获取服务器节点2和服务器节点3的日志序列号。
其中,服务器节点2和服务器节点3是数据库集群中的正常服务器节点。
还需要说明的是,调度器使用mysql命令登录每一个正常的服务器节点,并执行“show status”命令获得正常的服务器节点中数据库的运行状态,并执行“show engineinnodb status”命令查询出来的正常的服务器节点的日志序列号。
S204、调度器依据服务器节点1的日志序列号和正常的服务器节点的日志序列号,筛选出正常的服务器节点中的源节点。
其中,源节点用于恢复服务器节点1的数据文件,是指日志序列号不小于服务器节点1的日志序列号的正常的服务器节点。调度器从正常的服务器节点中筛选出日志序列号不小于服务器节点1的日志序列号的服务器节点,作为源节点,说明源节点中的关系型数据库中的数据量是不小于服务器节点1的关系型数据库中的数据量。因此,采用源节点中数据恢复服务器节点1的损坏的数据文件,可以避免数据丢失。
可选地,本步骤的一种实施方式中,该步骤包括:
筛选出正常的服务器节点中,数据库运行状态正常且日志序列号不小于服务器节点1的日志序列号的服务器节点,作为源节点。
具体的,调度器执行“show status”命令,无法连接到某一个正常的服务器节点中的数据库,或者调度器执行“show status”命令失败,说明该服务器节点中数据库的运行状态失败。若调度器成功执行“show status”命令,则说明该服务器节点中的数据库的运行状态正常。
本申请的实例中,设定两个正常的服务器节点中,筛选出服务器节点3是源节点。以下步骤中针对源节点执行的步骤以及源节点本身执行的步骤,在本申请的实例中,均是指代服务器节点3。
S205、调度器计算出每个源节点的待恢复的数据文件。
调度器依据故障节点中损坏的数据文件,计算得到每个源节点的待恢复的数据文件。并且,每个源节点的待恢复的数据文件与故障节点中的损坏的数据文件的标识相同,用于恢复故障节点中的损坏的数据文件中的数据,其数据文件的大小要小于故障节点中的损坏的数据文件的大小。所有源节点的待恢复的数据文件的组合,即为故障节点中的损坏的数据文件。
由于在每一个服务器节点的数据库中,均包括有多个数据文件,且每个数据文件存有唯一标识。因此,在故障节点判断出自身的数据文件损坏时,则需要将该损坏的数据文件的标识向调度器发送。可选地,损坏的数据文件的标识可以携带在故障节点发送的请求恢复指令中。
调度器在计算得到每个源节点的待恢复的数据文件,要依据故障节点中的损坏文件的小大,尽可能平均地分配到每个源节点。
可选地,本步骤的一种实施方式中,该步骤包括:
采用分支界限算法循环计算每个源节点的待恢复的数据文件,直至满足计算后的每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止。
其中,落后的数据文件包括源节点的缓冲池中未写入到数据文件的数据。并且,源节点的缓冲池的数据要写入的数据文件,是与故障节点中损害的数据文件同一标识的文件。
还需要说明的是,源节点是否存在落后的数据文件,需要由服务器节点的检查点(checkpoint)来判断。每个服务器节点的检查点是事务日志对脏页刷新到数据文件的操作而做的检查点,用于记录缓冲池中的当前刷脏到哪个位置。因此,在本实施方式中,调度器需要获知每个源节点的检查点。而源节点的检查点可以采用由正常的服务器节点向调度器上报的方式获得,还可以是由调度器主动向正常的服务器节点获取。
S206、调度器发送恢复指令到每个源节点。
其中,调度器向每个源节点发送的恢复指令中携带有源节点的待恢复的数据文件。具体的,携带的是每个源节点的待恢复的数据文件的大小以及标识。
步骤S205和步骤S206是调度器实现指示至少一个源节点中的每个源节点,恢复所述服务器节点1中待恢复的数据文件的一种具体实施方式。
S207、源节点接收调度器发送的恢复指令,判断自身是否为落后节点。
其中,源节点接收调度器发送的恢复指令是实现源节点接收调度器发送的指示的一种具体实施方式。并且,源节点接收的指示中制定了源节点的待恢复的数据文件。
源节点接收到恢复指令,源节点比对自身的检查点(checkpoint)和服务器节点1的检查点,进而判断自身是否为刷脏的落后节点。
服务器节点1的检查点一般由调度器提供给每个源节点,可选地,可以将服务器节点的检查点携带到恢复指令中向每个源节点发送,也可以是由调度器单独向每个源节点发送。另外,调度器中的服务器节点1的检查点,即故障节点的检查点则由故障节点上报。同样,也可以携带在故障节点发送的请求恢复指令中,或者由故障节点单独上报。
若源节点判断自身的检查点小于服务器节点1的检查点,则判定源节点是刷脏的落后节点,否则判定源节点不是刷脏的落后节点。
还需要说明的是,因为服务器节点1为故障节点,源节点的检查点小于服务器节点1的检查点,说明源节点中写入到数据文件中的数据要落后与服务器节点1,源节点中的缓冲池中还有需要写入到数据文件的数据。因此,需要先将缓冲池中未写入到数据文件中的数据先写入到数据文件中。
若源节点判断出自身为落后节点,则执行步骤S208、源节点将落后的数据写入源节点的待恢复的数据文件。
若源节点为落后节点,则说明源节点的缓冲池中还有需要写入到数据文件的数据,因此需要先将上述数据写入到数据文件。
可选地,步骤S208的一种实施方式,包括:
从日志序列号列表中选取脏页,直至选取脏页后的源节点的检查点不小于服务器节点1的检查点为止;将选取的脏页写入数据文件。
其中,日志序列号列表用于保存服务器节点中需要写入数据文件的数据。从日志序列号列表选取一页脏页,说明该脏页会写入到数据文件中。因此,随着日志序列号列表不断选取脏页,源节点的检查点会不断更新,直至更新后的源节点的检查点不小于服务器节点1的检查点为止。
还需要说明的是,在源节点的数据库中的数据文件中写入脏页的过程中,数据库本身可能会有其他的线程,这样,就会将新产生的脏页到数据文件。为了避免将选取的脏页写入数据文件的过程中,源节点的数据文件中有新产生的脏页写入,破坏数据文件结构。因此,需要在源节点的数据文件中写入脏页的线程和源节点中数据文件中写入新产生的脏页的线程进行并发控制。
并且,源节点中的数据文件不止一个,因此,仅需要对源节点的待恢复的数据文件进行并发控制,其他的数据文件不需要进行并发控制。并且,每个数据文件有唯一的标识,可以用数据文件的标识作为标记,明确出需要并行控制的数据文件。
具体的,将源节点的待恢复的数据文件的标识写入并发控制列表,将源节点中的数据库中新建的用于在被待恢复的数据文件中写入数据的线程挂起。但是,若源节点的数据库中存在处于运行中的线程,则不能将该线程挂起,而是要等该线程执行完毕。
若源节点判断出自身不是落后节点,以及源节点中的落后节点执行完步骤S208之后,还执行步骤S209、源节点将待恢复的数据文件写入到服务器节点1中的数据库的数据文件。
其中,服务器节点1向调度器发送请求恢复指令中可以携带有数据文件的目录,待调度器计算得到每个源节点的待恢复的数据文件之后,向每个源节点发送恢复指令,可以将服务器节点1中的数据文件的目录携带到恢复指令中。这样,源节点将待恢复的数据文件写入到服务器节点1中的数据库的数据文件,可以将源节点的待恢复的数据文件写入到恢复指令中携带的数据文件的目录中。
还需要说明的是,步骤S207和步骤S208中所述的源节点判断自身是否是落后节点,且针对判断结果执行的对应操作,是一种可选的方案。在源节点执行数据恢复方法的流程中,源节点可以不对自身是否是落后节点的判断,直接在服务器节点1恢复待恢复的数据文件。并且,源节点在服务器节点1恢复待恢复的数据文件的一种实施方式为步骤S209。
S210、服务器节点1判断出所有源节点被分配的数据文件写入完毕,恢复原有数据库流程。
其中,在源节点将待恢复的数据文件全部写入到服务器节点1中的数据库的数据文件中之后,会上报表明写入完成的信息至调度器。若调度器收到了所有的源节点上报的信息,说明所有源节点的待恢复的数据文件写入完毕。调度器判断出所所有源节点的待恢复的数据文件全部写入完毕,则会向服务器节点1发送用于表明写入完毕的指令。
本申请另一实施例公开了一种调度器,如图3所示,包括:
接收单元301,用于按照对应图2的实施例中步骤S202所公开的实施方式,接收第一服务器节点发送的请求恢复指令;其中,第一服务器节点为数据文件损坏的故障节点,请求恢复指令中携带有第一服务器节点的日志序列号。可选地,请求恢复指令由第一服务器节点在向数据文件中写入数据失败时生成。
获取单元302,用于按照对应图2的实施例中步骤S203所公开的实施方式,获取多个第二服务器节点的日志序列号;其中,多个第二服务器节点包括数据库集群中除第一服务器节点以外的服务器节点。
筛选单元303,用于按照对应图2的实施例中步骤S204所公开的实施方式,从多个第二服务器节点中选择出至少一个源节点,源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点。
可选地,本申请的另一实施例中,筛选单元303,包括:
筛选子单元,用于按照对应图2的实施例中步骤S204中的具体实施方式,从多个第二服务器节点中选择出至少一个源节点,源节点是指数据库运行正常、且日志序列号不小于第一服务器节点的日志序列号的第二服务器节点。
指示单元304,用于按照对应图2的实施例中步骤S205~S206所公开的实施方式,指示所述至少一个源节点中的每个源节点,恢复第一服务器节点中待恢复的数据文件;至少一个源节点中的每个源节点用于恢复待恢复的数据文件中的不同数据文件。
可选地,本申请的另一实施例中,指示单元304,包括:
计算单元,用于按照对应图2的实施例中步骤S205所公开的实施方式,循环计算每个源节点的待恢复的数据文件,直至满足计算的每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止;其中,落后的数据文件包括:源节点的缓冲池中未写入到源节点的被分配的数据文件的数据。
发送单元,用于按照对应图2的实施例中步骤S206所公开的实施方式,向每个所述源节点发送恢复指令,所述恢复指令中携带有所述源节点的待恢复的数据文件。
本申请另一实施例公开了一种服务器节点,作为第二服务器节点,如图4所示,包括:
接收单元401,用于按照对应图2的实施例中步骤S207所公开的实施方式,接收调度器发送的指示,指示指定了第二服务器节点的待恢复的数据文件。
恢复单元402,用于按照对应图2的实施例中步骤S209所公开的实施方式,在第一服务器节点恢复待恢复的数据文件;其中,第一服务器节点为数据文件损坏的故障节点。
可选地,本申请的另一实施例中,如图4所示,第二服务器节点还包括:
判断单元403,用于按照对应图2的实施例中步骤S207所公开的实施方式,判断自身是否是落后节点。
写入单元404,用于在判断单元403判断出自身是落后节点,按照对应图2的实施例中步骤S208所公开的实施方式,将落后的数据写入待恢复的数据文件。
可选地,本申请的另一实施例中,写入单元404,包括:
选取单元,用于按照对应图2的实施例中步骤S208中的具体实施方式,从日志序列号列表中选取脏页,直至选取脏页后的第二服务器节点的检查点不小于第一服务器节点的检查点为止。写入子单元,用于按照对应图2的实施例中步骤S205中的具体实施方式,将选取的脏页写入待恢复的数据文件。
其中,判断单元403判断出自身不是落后节点,以及在写入单元404将落后的数据写入待恢复的数据文件之后,恢复单元402在第一服务器节点恢复待恢复的数据文件。
如图5所示,本申请另一实施例公开了一种调度器500,包括:处理器501、存储器502和通信端口503,还包括电源、以及安装在硬件上的操作系统等部分,具体在图5中未一一列举出来,但并不对本申请实施例中的调度器500构成限定。在本申请的一些实施例中,处理器501和存储器502可通过总线或其它方式进行连接,具体此处不做限定。其中,图5中以处理器501和存储器502通过总线连接为例进行示例说明。
处理器501用于控制调度器的操作,还可以称为中央处理单元(英文:centralprocessing unit,CPU)。
存储器502,可以包括只读存储器(英语:read-only memory,ROM)和随机存取存储器(英文:random access memory,RAM),还可以其他存储器或者是存储介质,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器(英文:non-volatile random access memory,NVRAM)。存储器502存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,各种操作指令用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。存储器502还存储有本申请实施例所涉及的数据、程序等。处理器501通过运行存储器502中的程序,以用于完成上述每一个实施例中调度器执行的方法。
处理器501可以是一种集成电路芯片,具有信号的处理能力。在本申请实施例实现过程中,本申请实施例中调度器所执行的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(英文:digital signal processing,DSP)、专用集成电路(英文:application-specificintegrated circuit,ASIC)、现场可编程门阵列(英文:field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502或者处理器501,处理器501读取存储器502或自身中的信息,结合其硬件完成本申请实施例的调度器的配置方法的步骤。
如图6所示,本申请另一实施例公开了一种服务器节点600,包括:处理器601、存储器602和通信端口603,还包括电源、以及安装在硬件上的操作系统等部分,具体在图6中未一一列举出来,但并不对本申请实施例中的服务器节点600构成限定。在本申请的一些实施例中,处理器601和存储器602可通过总线或其它方式进行连接,具体此处不做限定。其中,图6中以处理器601和存储器602通过总线连接为例进行示例说明。
处理器601用于控制服务器节点的操作,还可以称为中央处理单元(英文:centralprocessing unit,CPU)。
存储器602,可以包括只读存储器(英语:read-only memory,ROM)和随机存取存储器(英文:random access memory,RAM),还可以其他存储器或者是存储介质,并向处理器601提供指令和数据。存储器602的一部分还可以包括非易失性随机存取存储器(英文:non-volatile random access memory,NVRAM)。存储器602存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,各种操作指令用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。存储器602还存储有本申请实施例所涉及的数据、程序等。处理器601通过运行存储器602中的程序,以用于完成上述每一个实施例中第二服务器节点执行的数据恢复方法。
处理器601可以是一种集成电路芯片,具有信号的处理能力。在本申请实施例实现过程中,本申请实施例中服务器节点所执行的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(英文:digital signal processing,DSP)、专用集成电路(英文:application-specificintegrated circuit,ASIC)、现场可编程门阵列(英文:field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602或者处理器601,处理器601读取存储器602或自身中的信息,结合其硬件完成本申请实施例的第二服务器节点执行的数据恢复方法的步骤。
本申请另一实施例还公开了一种计算机可读存储介质,其中,该计算机可读存储介质中存储有指令,指令用于执行调度器或者第二服务器节点所执行的数据恢复方法。
本申请另一实施例还公开了一种计算机程序产品,其中,当该计算机产品被执行时,用于执行调度器或者第二服务器节点所执行的数据恢复方法。
在本申请上述实施例中,可以全部或者部分地通过软件、硬件或者其组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或者多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或者部分地产生按照本申请实施例所述的流程或功能,所述计算机可以是通过计算机、专用计算机、计算机网络或者其他可编辑装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如:所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、双绞线、光纤)或者无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或者多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如:软盘、硬盘、磁带)、光介质(例如:光盘)、或者半导体介质(例如固态硬盘(SSD))等。
Claims (16)
1.一种数据恢复方法,其特征在于,包括:
调度器接收第一服务器节点发送的请求恢复指令;其中,所述第一服务器节点为数据文件损坏的故障节点,所述请求恢复指令中携带有所述第一服务器节点的日志序列号;
所述调度器获取多个第二服务器节点的日志序列号;
所述调度器从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点;
所述调度器指示所述至少一个源节点中的每个源节点,恢复所述第一服务器节点中待恢复的数据文件;所述至少一个源节点中的每个源节点用于恢复所述待恢复的数据文件中的不同数据文件;
所述调度器指示所述至少一个源节点中的每个源节点,恢复所述第一服务器节点中待恢复的数据文件,包括:
所述调度器循环计算每个所述源节点的待恢复的数据文件,直至满足计算的所述每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止;其中,所述落后的数据文件包括:所述源节点的缓冲池中未写入到所述源节点的待恢复的数据文件的数据;
所述调度器向每个所述源节点发送恢复指令,所述恢复指令中携带有所述源节点的待恢复的数据文件。
2.根据权利要求1所述的方法,其特征在于,所述调度器从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点,包括:
所述调度器从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指数据库运行正常、且日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点。
3.根据权利要求1或2所述的方法,其特征在于,所述请求恢复指令由所述第一服务器节点在向数据文件中写入数据失败时生成。
4.一种数据恢复方法,其特征在于,包括:
第二服务器节点接收调度器发送的指示,所述指示指定了所述第二服务器节点的待恢复的数据文件;所述第二服务器节点为所述调度器选择出的至少一个源节点之一,所述源节点的日志序列号不小于所述第一服务器节点的日志序列号;所述至少一个源节点中的每个源节点用于恢复所述待恢复的数据文件中的不同数据文件;所述指示为所述调度器执行如下操作后发送的:循环计算每个所述源节点的待恢复的数据文件,直至满足计算的所述每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止;其中,所述落后的数据文件包括:所述源节点的缓冲池中未写入到所述源节点的待恢复的数据文件的数据;
所述第二服务器节点在第一服务器节点恢复所述待恢复的数据文件;其中,所述第一服务器节点为数据文件损坏的故障节点。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述第二服务器节点判断自身是否是落后节点;
若所述第二服务器节点判断出自身是落后节点,则所述第二服务器节点将落后的数据写入所述待恢复的数据文件;
其中,若所述第二服务器节点判断出自身不是落后节点,以及所述第二服务器节点将落后的数据写入所述待恢复的数据文件之后,所述第二服务器节点在第一服务器节点恢复所述待恢复的数据文件。
6.根据权利要求5所述的方法,其特征在于,所述第二服务器节点将落后的数据写入所述待恢复的数据文件,包括:
所述第二服务器节点从日志序列号列表中选取脏页,直至选取脏页后的第二服务器节点的检查点不小于所述第一服务器节点的检查点为止;
所述第二服务器节点将选取的脏页写入所述待恢复的数据文件。
7.一种调度器,其特征在于,包括:
接收单元,用于接收第一服务器节点发送的请求恢复指令;其中,所述第一服务器节点为数据文件损坏的故障节点,所述请求恢复指令中携带有所述第一服务器节点的日志序列号;
获取单元,用于获取多个第二服务器节点的日志序列号;
筛选单元,用于从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点;
指示单元,用于指示所述至少一个源节点中的每个源节点,恢复所述第一服务器节点中待恢复的数据文件;所述至少一个源节点中的每个源节点用于恢复所述待恢复的数据文件中的不同数据文件;
所述指示单元,包括:
计算单元,用于循环计算每个所述源节点的待恢复的数据文件,直至满足计算的所述每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止;其中,所述落后的数据文件包括:所述源节点的缓冲池中未写入到所述源节点的被分配的数据文件的数据;
发送单元,用于向每个所述源节点发送恢复指令,所述恢复指令中携带有所述源节点的待恢复的数据文件。
8.根据权利要求7所述的调度器,其特征在于,所述筛选单元,包括:
筛选子单元,用于从所述多个第二服务器节点中选择出至少一个源节点,所述源节点是指数据库运行正常、且日志序列号不小于所述第一服务器节点的日志序列号的第二服务器节点。
9.根据权利要求7或8所述的调度器,其特征在于,所述请求恢复指令由所述第一服务器节点在向数据文件中写入数据失败时生成。
10.一种服务器节点,其特征在于,所述服务器节点为第二服务器节点,包括:
接收单元,用于接收调度器发送的指示,所述指示指定了所述第二服务器节点的待恢复的数据文件;所述第二服务器节点为所述调度器选择出的至少一个源节点之一,所述源节点的日志序列号不小于所述第一服务器节点的日志序列号;所述至少一个源节点中的每个源节点用于恢复所述待恢复的数据文件中的不同数据文件;所述指示为所述调度器执行如下操作后发送的:循环计算每个所述源节点的待恢复的数据文件,直至满足计算的所述每个源节点的待恢复的数据文件的大小和落后的数据文件的大小之和的方差最小为止;其中,所述落后的数据文件包括:所述源节点的缓冲池中未写入到所述源节点的待恢复的数据文件的数据;
恢复单元,用于在第一服务器节点恢复所述待恢复的数据文件;其中,所述第一服务器节点为数据文件损坏的故障节点。
11.根据权利要求10所述的服务器节点,其特征在于,还包括:
判断单元,用于判断自身是否是落后节点;
写入单元,用于在所述判断单元判断出自身是落后节点,将落后的数据写入所述待恢复的数据文件;
其中,所述判断单元判断出自身不是落后节点,以及在所述写入单元将落后的数据写入所述待恢复的数据文件之后,所述恢复单元在第一服务器节点恢复所述待恢复的数据文件。
12.根据权利要求11所述的服务器节点,其特征在于,所述写入单元,包括:
选取单元,用于从日志序列号列表中选取脏页,直至选取脏页后的第二服务器节点的检查点不小于所述第一服务器节点的检查点为止;
写入子单元,用于将选取的脏页写入所述待恢复的数据文件。
13.一种调度器,其特征在于,包括存储器和处理器;
所述存储器用于存储计算机程序代码;
所述处理器用于执行所述存储器存储的代码,使得所述调度器执行权利要求1至3任一项所述的方法。
14.一种服务器节点,其特征在于,所述服务器节点为第二服务器节点,包括存储器和处理器;
所述存储器用于存储计算机程序代码;
所述处理器用于执行所述存储器存储的代码,使得所述第二服务器节点执行权利要求4至6任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,所述指令用于执行权利要求1至3任一项,或者权利要求4至6任一项所介绍的数据恢复方法。
16.一种计算机程序产品,其特征在于,当所述计算机程序产品被执行时,用于执行上述权利要求1至3任一项,或者权利要求4至6任一项所介绍的数据恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810209795.5A CN108599982B (zh) | 2018-03-14 | 2018-03-14 | 数据恢复方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810209795.5A CN108599982B (zh) | 2018-03-14 | 2018-03-14 | 数据恢复方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108599982A CN108599982A (zh) | 2018-09-28 |
CN108599982B true CN108599982B (zh) | 2021-02-12 |
Family
ID=63626429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810209795.5A Active CN108599982B (zh) | 2018-03-14 | 2018-03-14 | 数据恢复方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108599982B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254271A (zh) * | 2021-06-09 | 2021-08-13 | 上海达梦数据库有限公司 | 一种数据序列恢复方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707729A (zh) * | 2009-11-30 | 2010-05-12 | 中兴通讯股份有限公司 | 一种实现网络节点数据自动备份和恢复的系统及方法 |
CN101996108A (zh) * | 2009-08-18 | 2011-03-30 | 中兴通讯股份有限公司 | 一种分布式环境的备份和恢复方法及其系统 |
CN103034664A (zh) * | 2011-10-10 | 2013-04-10 | 上海盛霄云计算技术有限公司 | 控制数据库数据迁移的方法、系统及装置 |
CN106155832A (zh) * | 2015-03-30 | 2016-11-23 | Tcl集团股份有限公司 | 一种数据恢复的方法、装置及Android设备 |
CN106354583A (zh) * | 2016-08-30 | 2017-01-25 | 广州鼎甲计算机科技有限公司 | 一种MySQL数据库的热备份方法与系统 |
CN106789180A (zh) * | 2016-11-30 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种元数据服务器的服务控制方法及装置 |
CN107797883A (zh) * | 2016-09-06 | 2018-03-13 | 南京中兴新软件有限责任公司 | 一种内存数据库的备份、恢复方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636741B2 (en) * | 2005-08-15 | 2009-12-22 | Microsoft Corporation | Online page restore from a database mirror |
CN103761161B (zh) * | 2013-12-31 | 2017-01-04 | 华为技术有限公司 | 恢复数据的方法、服务器及系统 |
-
2018
- 2018-03-14 CN CN201810209795.5A patent/CN108599982B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996108A (zh) * | 2009-08-18 | 2011-03-30 | 中兴通讯股份有限公司 | 一种分布式环境的备份和恢复方法及其系统 |
CN101707729A (zh) * | 2009-11-30 | 2010-05-12 | 中兴通讯股份有限公司 | 一种实现网络节点数据自动备份和恢复的系统及方法 |
CN103034664A (zh) * | 2011-10-10 | 2013-04-10 | 上海盛霄云计算技术有限公司 | 控制数据库数据迁移的方法、系统及装置 |
CN106155832A (zh) * | 2015-03-30 | 2016-11-23 | Tcl集团股份有限公司 | 一种数据恢复的方法、装置及Android设备 |
CN106354583A (zh) * | 2016-08-30 | 2017-01-25 | 广州鼎甲计算机科技有限公司 | 一种MySQL数据库的热备份方法与系统 |
CN107797883A (zh) * | 2016-09-06 | 2018-03-13 | 南京中兴新软件有限责任公司 | 一种内存数据库的备份、恢复方法和装置 |
CN106789180A (zh) * | 2016-11-30 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种元数据服务器的服务控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108599982A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870829B (zh) | 一种分布式数据恢复方法、服务器、相关设备及系统 | |
CN109995813B (zh) | 一种分区扩展方法、数据存储方法及装置 | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
US9436552B2 (en) | Checkpoint triggering in a computer system | |
JP5669823B2 (ja) | チェンジトラッキングを用いたシステムリカバリ方法 | |
US20150112941A1 (en) | Backup management system and method thereof | |
CN107817950B (zh) | 一种数据处理方法及装置 | |
CN109783014B (zh) | 一种存储数据的方法及装置 | |
CN109491609B (zh) | 一种缓存数据处理方法、装置、设备及可读存储介质 | |
RU2653254C1 (ru) | Способ, узел и система управления данными для кластера базы данных | |
CN108255576B (zh) | 虚拟机热迁移异常处理方法、装置和存储介质 | |
CN112506710B (zh) | 分布式文件系统数据修复方法、装置、设备及存储介质 | |
US20190227710A1 (en) | Incremental data restoration method and apparatus | |
CN111818124B (zh) | 数据存储方法、装置、电子设备及介质 | |
US20240028486A1 (en) | Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors | |
CN115562911B (zh) | 虚拟机数据备份方法及装置、系统、电子设备、存储介质 | |
CN110351313B (zh) | 数据缓存方法、装置、设备及存储介质 | |
CN110737924B (zh) | 一种数据保护的方法和设备 | |
CN110377664B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN108599982B (zh) | 数据恢复方法及相关设备 | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
CN111211993A (zh) | 流式计算的增量持久化方法及其装置 | |
US10452321B2 (en) | Storage system and control method therefor | |
CN111177104A (zh) | 一种nas存储系统的日志下刷方法及装置 | |
CN112231150B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220215 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |