CN106878399B - 一种数据发送方法及装置 - Google Patents
一种数据发送方法及装置 Download PDFInfo
- Publication number
- CN106878399B CN106878399B CN201710046046.0A CN201710046046A CN106878399B CN 106878399 B CN106878399 B CN 106878399B CN 201710046046 A CN201710046046 A CN 201710046046A CN 106878399 B CN106878399 B CN 106878399B
- Authority
- CN
- China
- Prior art keywords
- server
- database
- backup
- service data
- backup database
- 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
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据发送方法及装置。该方法包括:在由掉电状态转换为上电状态时,确定本服务器是否为服务器集群中当前的主服务器;若为否,在本服务器具有第一备份数据库,且该数据库具有备份成功标记时,向当前的主服务器发送备份成功通知报文,以使当前的主服务器在接收到该报文后,向本服务器发送业务数据;备份成功标记是在将本服务器的数据库中的业务数据均拷贝至第一备份数据库中后,向第一备份数据库添加的;清空本服务器的数据库;获得当前的主服务器发送的业务数据;存储所获得的业务数据至本服务器的数据库中。在整个服务器集群由掉电状态转换为上电状态的情况下,本方案中,主服务器能够向其余服务器同步完整的业务数据。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种数据发送方法及装置。
背景技术
随着通信技术的发展,服务器集群的应用变得越来越广泛。服务器集群是指一组相互独立的、通过高速网络互联的服务器,其可以实现数据的冗余备份和负载分担。正常工作状态下,该服务器集群中会有一个服务器为主服务器,并且,每个服务器都具有用于存储业务数据的数据库。
一般而言,当某一服务器由掉电状态转换为上电状态后,当前的主服务器会将自身的数据库中的所有业务数据均同步(即发送)给该服务器。当该服务器接收到业务数据后,其会先删除自身的数据库中的所有业务数据,再将所接收到的业务数据存储至自身的数据库中。此时存在着一种可能的情况:在删除自身的数据库中的所有业务数据后,该服务器还没来得及将所接收到的所有业务数据存储至自身的数据库中,整个服务器集群就掉电了,那么,该服务器的数据库中是空的,或者,该服务器的数据库中的业务数据是不完整的。当整个服务器集群中的各服务器再次上电后,假设当前的主服务器正好为该服务器,在该服务器的数据库中是空的的情况下,该服务器会将自身的数据库中的空数据同步给其余服务器;在该服务器的数据库中的业务数据是不完整的情况下,该服务器会将自身的数据库中不完整的业务数据同步给其余服务器。也就是说,该服务器无法向其余服务器同步完整的业务数据。
因此,在整个服务器集群由掉电状态转换为上电状态的情况下,如何保证主服务器能够向其余服务器同步完整的业务数据对于本领域技术人员而言是一个亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种数据发送方法及装置,以在整个服务器集群由掉电状态转换为上电状态的情况下,保证主服务器能够向其余服务器同步完整的业务数据。
本发明实施例提供了一种数据发送方法,应用于服务器集群中的任一服务器,所述方法包括:
在本服务器由掉电状态转换为上电状态时,确定本服务器是否为所述服务器集群中当前的主服务器;
若为否,在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文,以使当前的主服务器在接收到所述备份成功通知报文后,向本服务器发送业务数据;其中,所述第一备份数据库的备份成功标记是在将本服务器的数据库中的所有业务数据均拷贝至所述第一备份数据库中之后,向所述第一备份数据库添加的;
清空本服务器的数据库;
获得当前的主服务器发送的业务数据;
存储所获得的业务数据至本服务器的数据库中。
本发明实施例还提供了一种数据发送装置,应用于服务器集群中的任一服务器,所述装置包括:
确定模块,用于在本服务器由掉电状态转换为上电状态时,确定本服务器是否为所述服务器集群中当前的主服务器;
通知报文发送模块,用于在所述确定模块的确定结果为否的情况下,在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文,以使当前的主服务器在接收到所述备份成功通知报文后,向本服务器发送业务数据;其中,所述第一备份数据库的备份成功标记是在将本服务器的数据库中的所有业务数据均拷贝至所述第一备份数据库中之后,向所述第一备份数据库添加的;
第一清空模块,用于清空本服务器的数据库;
业务数据获得模块,用于获得当前的主服务器发送的业务数据;
存储模块,用于存储所获得的业务数据至本服务器的数据库中。
本方案中,对于本服务器而言,当其由掉电状态转换为上电状态时,在其不是当前的主服务器,且其的数据库中的所有业务数据均已经在第一备份数据库中进行了备份存储的情况下,其会向当前的主服务器发送备份成功通知报文。在接收到备份成功通知报文后,当前的主服务器就会将自身的数据库中当前存储的所有业务数据同步给本服务器,以使得本服务器在清空自身的数据库后,存储来自当前的主服务器的业务数据至自身的数据库中。
假设本服务器还未来得及将来自当前的主服务器的所有业务存储至自身的数据库中,整个服务器集群就掉电了,此时,本服务器的数据库中是空的,或者,本服务器的数据库中的业务数据是不完整的。当整个服务器集群再次上电后,若本服务器正好成为当前的主服务器,为了保证向服务器集群中的其余服务器同步的业务数据的完整性,本服务器可以先利用第一备份数据库对自身的数据库进行数据恢复,然后再执行业务数据的同步操作。具体地,本服务器可以先清空自身的数据库,然后将第一业务数据库中的业务数据均拷贝至自身的数据库中,这样,数据恢复操作就完成了,此时,本服务器的数据库内具有完整的业务数据。之后,本服务器向其余服务器同步的一定是完整的业务数据,本服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
由于备份数据库内的数据不会由于其所在的服务器的掉电而发生丢失,故在整个服务器集群由掉电状态转换为上电状态的情况下,本方案可以保证主服务器能够向其余服务器同步完整的业务数据,主服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为服务器集群的组网结构示意图;
图2为本发明实施例所提供的一种数据发送方法的流程图;
图3为图2中S201的具体流程示意图;
图4为本发明实施例所提供的一种数据发送装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术存在的问题,本发明实施例提供了一种数据发送方法及装置。
下面首先对本发明实施例所提供的一种数据发送方法进行说明。
需要说明的是,本发明实施例所提供的一种数据发送方法可以应用于服务器集群中的任一服务器。对于本服务器而言,其内部可以预先配置有该服务器集群中的其余服务器的标识信息,例如其余服务器的IP地址。当本服务器需要向其余服务器发送报文时,其可以向交换机发送目的IP地址为其余服务器的IP地址的报文。这样,根据所接收到的报文的目的IP地址,交换机会将该报文转发至相应服务器处。
需要强调的是,服务器集群中所包括的服务器的数量并不局限于图1中所示的三个,具体数量可以根据实际情况来确定,在此不再一一赘述。
参见图2,图中示出了本发明实施例所提供的一种数据发送方法的流程图。如图2所示,该方法可以包括如下步骤:
S201,在本服务器由掉电状态转换为上电状态时,确定本服务器是否为服务器集群中当前的主服务器;若为否,执行S202。
如图3所示,在本发明实施例的一种具体实施方式中,S201,可以包括:
S2011,向服务器集群中的其余服务器发送查询请求报文,其中,查询请求报文用于查询接收到该查询请求报文的服务器是否为当前的主服务器。
S2012,若在发出查询请求报文后的预定时间段内未接收到任一服务器回复的、携带有预定数据的应答报文,基于预设的选举规则,从向自身回复应答报文的服务器以及自身中选举当前的主服务器,其中,预定数据用于表征发出携带预定数据的应答报文的服务器为当前的主服务器。
其中,预定时间段可以为10ms、20ms或者30ms,当然,预定时间段的取值并不局限于以上列举的三种情况,具体可以根据实际情况来确定,在此不再一一赘述。
S2013,根据选举结果,确定自身是否为服务器集群中当前的主服务器。
容易理解的是,若本服务器选举出来的主服务器为自身,这表明本服务器是服务器集群中当前的主服务器,故该服务器后续需要执行向其余服务器同步业务数据的操作。相反,若本服务器选举出来的主服务器不是自身,这表明该服务器不是服务器集群中当前的主服务器,故该服务器后续无需执行向其余服务器同步业务数据的操作,其需要存储当前的主服务器同步的业务数据。
S2014,若在发出查询请求报文后的预定时间段内接收到任一服务器回复的、携带有预定数据的应答报文,这表明自身不是服务器集群中当前的主服务器。
可以理解的是,若本服务器在发出查询请求报文后的预定时间段内接收到了某一服务器回复的、携带有预定数据的应答报文,这说明发出该携带有预定数据的应答报文的服务器为服务器集群中当前的主服务器,因此,本服务器不可能是服务器集群中当前的主服务器。
下面结合图1,以一个具体的例子对本服务器确定自身是否为服务器集群中当前的主服务器的具体过程进行详细介绍。
如图1所示,对于Server1、Server2和Server3中的任意一者而言,其内部可以预先配置有其余两个服务器的标识信息,以及各服务器的标识信息与相应优先级级别之间的对应关系。假设预设的选举规则的选举依据是优先级级别,优先级级别是依据服务器的硬件配置来确定的,并且,三个服务器中,Server1的硬件配置是最高的,Server3的硬件配置是最低的,那么,各服务器内存储的、服务器的标识信息与优先级级别之间的对应关系可以如下面的表1所示:
服务器的标识信息 | 优先级级别 |
IP1 | 一级 |
IP2 | 二级 |
IP3 | 三级 |
表1
对于上表中的三个优先级级别而言,一级是级别最高的优先级,三级是级别最低的优先级,二级的优先级介于一级和三级之间。
假设Server1由掉电状态转换为了上电状态(Server2和Server3由掉电状态转换为上电状态后执行的操作与Server1类似,这儿仅以Server1执行的操作为例进行说明),此时,Server1会分别向Server2和Server3发送查询请求报文。在查询请求报文发出后,Server1根据自身在预定时间段内是否接收到携带预定数据的应答报文,其后续执行的处理流程存在着一定的差别。
具体地,若Server1在发出查询请求报文后的预定时间段内接收到了来自Server2的、携带预定数据的应答报文,这说明Server2为服务器集群中当前的主服务器,即服务器集群中本来就存在着主服务器,故Server1后续无需执行主服务器的选举步骤,其仅需要接收当前的主服务器同步的业务数据。
若Server1在发出查询请求报文后的预定时间段内未接收到来自Server2或者Server3的、携带预定数据的应答报文,这说明服务器集群中当前并不存在主服务器,故Server1需要执行主服务器的选举步骤。
若在发出查询请求报文后的预定时间段内,Server2和Server3均向Server1回复了应答报文,并且,Server2和Server3回复的应答报文中均不包括预定数据,这说明Server2和Server3是与Server1一同由掉电状态转换为上电状态的,即服务器集群中的各服务器是同时上电的。在各服务器同时上电后,Server1可以去查询自身存储的服务器的标识信息与优先级级别的对应关系,以确定Server1的标识信息IP1、Server2的标识信息IP2和Server3的标识信息IP3中,所对应优先级级别最高的标识信息。容易看出,Server1确定出的优先级级别最高的标识信息为IP1,故Server1会将具有标识信息IP1的服务器,即自身确定为当前的主服务器。
容易看出,通过上述方式,在自身由掉电状态转换为上电状态时,本服务器可以较为容易地确定自身是否为服务器集群中当前的主服务器,以便于在自身不是服务器集群中当前的主服务器的情况下,执行后续的S202。
S202,在本服务器具有第一备份数据库,且第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文,以使当前的主服务器在接收到备份成功通知报文后,向本服务器发送业务数据;其中,第一备份数据库的备份成功标记是在将本服务器的数据库中的所有业务数据均拷贝至第一备份数据库中之后,向第一备份数据库添加的。
其中,第一备份数据库中可以具有一数据表,该备份成功标记可以记录在该数据表中。
本领域技术人员可以理解的是,对于存储在数据库或者任一备份数据库内的数据而言,其的安全性可以得到较好的保证,该数据不会由于数据库或者该备份数据库所在的服务器的掉电而发生丢失。
对于本服务器而言,在其由掉电状态转换为上电状态,且确定出自身不是服务器集群中当前的主服务器的情况下,在接收当前的主服务器同步的业务数据之前,其可以去确定自身是否具有第一备份数据库。在自身具有第一备份数据库的情况下,本服务器可以去查看第一备份数据库的数据表中是否记录有备份成功标记。若第一备份数据库的数据表中记录有备份成功标记,这说明本服务器已经预先将本服务器的数据库中的所有业务数据均拷贝至第一备份数据库中了,即本服务器的数据库中的所有业务数据已经成功地在第一备份数据库中进行了备份存储。
S203,清空本服务器的数据库。
S204,获得当前的主服务器发送的业务数据。
S205,存储所获得的业务数据至本服务器的数据库中。
本方案中,对于本服务器而言,当其由掉电状态转换为上电状态时,在其不是当前的主服务器,且其的数据库中的所有业务数据均已经在第一备份数据库中进行了备份存储的情况下,其会向当前的主服务器发送备份成功通知报文。在接收到备份成功通知报文后,当前的主服务器就会将自身的数据库中当前存储的所有业务数据同步给本服务器,以使得本服务器在清空自身的数据库后,存储来自当前的主服务器的业务数据至自身的数据库中。
假设本服务器还未来得及将来自当前的主服务器的所有业务存储至自身的数据库中,整个服务器集群就掉电了,此时,本服务器的数据库中是空的,或者,本服务器的数据库中的业务数据是不完整的。当整个服务器集群再次上电后,若本服务器正好成为当前的主服务器,为了保证向服务器集群中的其余服务器同步的业务数据的完整性,本服务器可以先利用第一备份数据库对自身的数据库进行数据恢复,然后再执行业务数据的同步操作。具体地,本服务器可以先清空自身的数据库,然后将第一业务数据库中的业务数据均拷贝至自身的数据库中,这样,数据恢复操作就完成了,此时,本服务器的数据库内具有完整的业务数据。之后,本服务器向其余服务器同步的一定是完整的业务数据,本服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
由于备份数据库内的数据不会由于其所在的服务器的掉电而发生丢失,故在整个服务器集群由掉电状态转换为上电状态的情况下,本方案可以保证主服务器能够向其余服务器同步完整的业务数据,主服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
在本发明实施例的一种具体实施方式中,在本服务器具有第一备份数据库,且第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,该方法还可以包括:
在本服务器不是服务器集群中当前的主服务器,且本服务器不具有备份数据库的情况下,创建第一备份数据库;
拷贝本服务器的数据库中的所有业务数据至第一备份数据库中之后,向第一备份数据库添加备份成功标记。
本实施例中,若本服务器并不具有备份数据库,为了避免主服务器向其余服务器同步空数据或者不完整的业务数据的情况出现,本服务器可以创建第一备份数据库,并在将自身的数据库中的所有业务数据均在第一备份数据库中进行备份存储之后,为第一备份数据库添加备份成功标记。
这样,一旦当前的主服务器向本服务器同步业务数据的过程中,发生了整集群重启的情况,并且,本服务器成为了当前的主服务器,本服务器能够利用所创建的第一备份数据库对自身的数据库进行数据恢复,以保证本服务器后续向其余服务器同步的是完整的业务数据。
在本发明实施例的另一种具体实施方式中,在本服务器具有第一备份数据库,且第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,该方法还可以包括:
在本服务器不是服务器集群中当前的主服务器,本服务器具有第二备份数据库,且第二备份数据库不具有备份成功标记的情况下,删除第二备份数据库,创建第一备份数据库;
拷贝本服务器的数据库中的所有业务数据至第一备份数据库中之后,向第一备份数据库添加备份成功标记。
本实施例中,若本服务器具有第二备份数据库,且第二备份数据库不具有备份成功标记,这说明本服务器的数据库内的业务数据并未全部备份存储在第二备份数据库内,即第二备份数据库内存储的业务数据并不完整。这种情况下,若本服务器在整集群重启后成为了当前的主服务器,即使本服务器利用第二备份数据库对自身的数据库进行了数据恢复,本服务器向其余服务器同步的仍是不完整的业务数据。因此,在本服务器具有第二备份数据库,且第二备份数据库不具有备份成功标记的情况下,本服务器可以直接删除第二备份数据库,重新创建第一备份数据库,并在将本服务器的数据库中的所有业务数据均在第一备份数据库中进行备份存储之后,为第一备份数据库添加备份成功标记。
这样,一旦当前的主服务器向本服务器同步业务数据的过程中,发生了整集群重启的情况,并且,本服务器成为了当前的主服务器,本服务器能够利用所创建的第一备份数据库对自身的数据库进行数据恢复,以保证本服务器后续向其余服务器同步的是完整的业务数据。
本实施例中,存储所获得的业务数据至本服务器的数据库中之后,该方法还可以包括:
删除第一备份数据库。
下面仍然结合图1,对本实施例的具体实施过程进行说明。
当Server1由掉电状态转换为上电状态时,在自身不是当前的主服务器,自身具有第一备份数据库,且第一备份数据库具有备份成功标记的情况下,Server1会向当前的主服务器,例如Server2发送备份成功通知报文。当Server2接收到该备份成功通知报文后,Server2会将自身的数据库中已存储的所有业务数据均发送至Server1,以使得Server1存储所接收到的业务数据至Server1的数据库中。在这之后,当Server2获得新的业务数据时,Server2也会将该新的业务数据发送至Server1,以使得Server1存储所接收到的该新的业务数据至Server1的数据库内,显然,Server1的第一备份数据库内的数据并不会发生变化。
之后,假设整个服务器集群发生了重启,在当前的主服务器为Server1的情况下,由于Server1具有第一备份数据库,并且,第一备份数据库具有备份成功标记,此时,Server1会利用第一备份数据库对自身的数据库进行数据恢复。具体地,Server1会清空自身的数据库,拷贝第一备份数据库中的所有业务数据至自身的数据库中,然后将自身的数据库内的业务数据发送至其余服务器。很显然,对于Server1而言,其的第一备份数据库内并未存储之前Server2作为主服务器时、Server2接收到的新的业务数据,而其的数据库内则存储了该新的业务数据,即第一备份数据库内的业务数据相对于该数据库内的业务数据而言不够完整,故Server1作为主服务器时,其余服务器被同步的业务数据并不是最为完整的业务数据。
为了避免出现上述问题,本实施例中,当存储所获得的业务数据至自身的数据库中之后,Server1就将会将第一备份数据库删除。这样,当整个服务器集群发生重启时,即使Server1成为当前的主服务器,由于Server1未存储有第一备份数据库,Server1可以直接将自身的数据库中的业务数据同步给其余服务器,因此,其余服务器被同步的业务数据较为完整。
容易看出,本实施例中,在整个服务器集群由掉电状态转换为上电状态的情况下,主服务器向其余服务器同步的业务数据的完整性得到了更为有效地保证。另外,该删除操作也较好地避免了第一备份数据库对本服务器内的存储空间的占用。
在本发明实施例的一种具体实施方式中,确定本服务器是否为服务器集群中当前的主服务器之后,该方法还可以包括;
若为是,当接收到服务器集群中的一服务器发送的备份成功通知报文时,发送本服务器的数据库中当前存储的所有业务数据至发出该备份成功通知报文的服务器。
本实施例中,在本服务器由掉电状态转换为上电状态时,若本服务器确定出自身为服务器集群中当前的主服务器,本服务器并不会立即向其余服务器同步业务数据,其会等待一段时间,当接收到备份成功通知报文时,其才会向发出该备份成功通知报文的服务器同步业务数据。这样,对于其余服务器中的任一者而言,其可以有充足的时间,将自身的数据库中的所有业务数据备份存储至自身的第一备份数据库中,即使整个服务器集群发生了重启,且自身成为当前的主服务器,其也能利用自身的第一备份数据库对自身的数据库进行数据恢复,进而保证后续执行业务数据同步操作时业务数据的完整性。
在本发明实施例的一种具体实施方式中,发送本服务器的数据库中当前存储的所有业务数据至发出该备份成功通知报文的服务器之前,该方法还可以包括:
在本服务器具有第三备份数据库,且第三备份数据库具有备份成功标记的情况下,清空本服务器的数据库;
拷贝第三备份数据库中的业务数据至本服务器的数据库中。
本实施例中,在本服务器由掉电状态转换为上电状态时,若本服务器确定出自身为服务器集群中当前的主服务器,本服务器可以去确定自身是否具有备份数据库,此时存在着三种可能的情况:
第一种情况下,本服务器确定出自身具有第三备份数据库,并且,第三备份数据库具有备份成功标记,这说明第三备份数据库中具有完整的业务数据,此时,本服务器可以先利用第三备份数据库对自身的数据库进行数据恢复,即在清空自身的数据库后,拷贝第三备份数据库中的业务数据至自身的数据库中,此时,本服务器的数据库中具有完整的业务数据。之后,在执行业务数据的同步操作时,本服务器向其余服务器同步的一定是完整的业务数据。
需要强调的是,这种情况下,当本服务器执行完业务数据的同步操作时,本服务器可以删除第三备份数据库。与存储所获得的业务数据至本服务器的数据库中之后,删除第一备份数据库的效果类似,此处的删除操作也可以使主服务器向其余服务器同步的业务数据的完整性得到更为有效地保证,另外,此处的删除操作也较好地避免了第三备份数据库对本服务器内的存储空间的占用。
第二种情况下,本服务器确定出自身并不具有备份数据库,此时,本服务器无法利用所具有的备份数据库对自身的数据库进行数据恢复,因此,当接收到任一服务器发送的备份成功通知报文时,本服务器会直接发送自身的数据库中的业务数据至发出该备份成功通知报文的服务器。
第三种情况下,本服务器确定出自身具有第三备份数据库,但是,第三备份数据库并不具有备份成功标记,此时,即使本服务器利用第三备份数据库对自身的数据库进行了数据恢复,本服务器的数据库内的业务数据仍然是不完整的。因此,这种情况下,当接收到任一服务器发送的备份成功通知报文时,本服务器也会直接发送自身的数据库中的业务数据至发出该备份成功通知报文的服务器。
需要强调的是,在第二种和第三种情况下,本服务器可以直接删除所具有的第三备份数据库,以避免第三备份数据库对服务器内的存储空间的占用。
容易看出,本实施例中,业务数据的同步操作得以成功实施,并且,在第一种情况下,主服务器向其余服务器同步的业务数据的完整性得到了较好地保证。
综上,在整个服务器集群由掉电状态转换为上电状态的情况下,本实施例可以保证主服务器能够向其余服务器同步完整的业务数据,主服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
下面对本发明实施例所提供的一种数据发送装置进行说明。
参见图4,图中示出了本发明实施例所提供的一种数据发送装置的结构框图。如图4所示,该装置应用于服务器集群中的任一服务器,该装置可以包括:
确定模块41,用于在本服务器由掉电状态转换为上电状态时,确定本服务器是否为服务器集群中当前的主服务器;
通知报文发送模块42,用于在确定模块41的确定结果为否的情况下,在本服务器具有第一备份数据库,且第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文,以使当前的主服务器在接收到备份成功通知报文后,向本服务器发送业务数据;其中,第一备份数据库的备份成功标记是在将本服务器的数据库中的所有业务数据均拷贝至第一备份数据库中之后,向第一备份数据库添加的;
第一清空模块43,用于清空本服务器的数据库;
业务数据获得模块44,用于获得当前的主服务器发送的业务数据;
存储模块45,用于存储所获得的业务数据至本服务器的数据库中。
本方案中,对于本服务器而言,当其由掉电状态转换为上电状态时,在其不是当前的主服务器,且其的数据库中的所有业务数据均已经在第一备份数据库中进行了备份存储的情况下,其会向当前的主服务器发送备份成功通知报文。在接收到备份成功通知报文后,当前的主服务器就会将自身的数据库中当前存储的所有业务数据同步给本服务器,以使得本服务器在清空自身的数据库后,存储来自当前的主服务器的业务数据至自身的数据库中。
假设本服务器还未来得及将来自当前的主服务器的所有业务存储至自身的数据库中,整个服务器集群就掉电了,此时,本服务器的数据库中是空的,或者,本服务器的数据库中的业务数据是不完整的。当整个服务器集群再次上电后,若本服务器正好成为当前的主服务器,为了保证向服务器集群中的其余服务器同步的业务数据的完整性,本服务器可以先利用第一备份数据库对自身的数据库进行数据恢复,然后再执行业务数据的同步操作。具体地,本服务器可以先清空自身的数据库,然后将第一业务数据库中的业务数据均拷贝至自身的数据库中,这样,数据恢复操作就完成了,此时,本服务器的数据库内具有完整的业务数据。之后,本服务器向其余服务器同步的一定是完整的业务数据,本服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
由于备份数据库内的数据不会由于其所在的服务器的掉电而发生丢失,故在整个服务器集群由掉电状态转换为上电状态的情况下,本方案可以保证主服务器能够向其余服务器同步完整的业务数据,主服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
在本发明实施例的一种具体实施方式中,该装置还可以包括:
创建模块,用于在本服务器具有第一备份数据库,且第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,在本服务器不是服务器集群中当前的主服务器,且本服务器不具有备份数据库的情况下,创建第一备份数据库;
第一标记模块,用于拷贝本服务器的数据库中的所有业务数据至第一备份数据库中之后,向第一备份数据库添加备份成功标记。
在本发明实施例的一种具体实施方式中,该装置还可以包括:
重建模块,用于在本服务器具有第一备份数据库,且第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,在本服务器不是服务器集群中当前的主服务器,本服务器具有第二备份数据库,且第二备份数据库不具有备份成功标记的情况下,删除第二备份数据库,创建第一备份数据库;
第二标记模块,用于拷贝本服务器的数据库中的所有业务数据至第一备份数据库中之后,向第一备份数据库添加备份成功标记。
在本发明实施例的一种具体实施方式中,该装置还可以包括:
删除模块,用于存储所获得的业务数据至本服务器的数据库中之后,删除第一备份数据库。
在本发明实施例的一种具体实施方式中,该装置还可以包括;
业务数据发送模块,用于在确定本服务器是否为服务器集群中当前的主服务器之后,若为是,当接收到服务器集群中的一服务器发送的备份成功通知报文时,发送本服务器的数据库中当前存储的所有业务数据至发出该备份成功通知报文的服务器。
在本发明实施例的一种具体实施方式中,该装置还可以包括:
第二清空模块,用于在发送本服务器的数据库中当前存储的所有业务数据至发出该备份成功通知报文的服务器之前,在本服务器具有第三备份数据库,且第三备份数据库具有备份成功标记的情况下,清空本服务器的数据库;
拷贝模块,用于拷贝第三备份数据库中的业务数据至本服务器的数据库中。
综上,在整个服务器集群由掉电状态转换为上电状态的情况下,本实施例可以保证主服务器能够向其余服务器同步完整的业务数据,主服务器向其余服务器同步空数据或者不完整的业务数据的情况不可能出现。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种数据发送方法,其特征在于,应用于服务器集群中的任一服务器,所述方法包括:
在本服务器由掉电状态转换为上电状态时,确定本服务器是否为所述服务器集群中当前的主服务器;
若为否,在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文,以使当前的主服务器在接收到所述备份成功通知报文后,向本服务器发送业务数据;其中,所述第一备份数据库的备份成功标记是在将本服务器的数据库中的所有业务数据均拷贝至所述第一备份数据库中之后,向所述第一备份数据库添加的;
清空本服务器的数据库;
获得当前的主服务器发送的业务数据;
存储所获得的业务数据至本服务器的数据库中;
若为是,当接收到所述服务器集群中的一服务器发送的备份成功通知报文时,在本服务器具有第三备份数据库,且所述第三备份数据库具有备份成功标记的情况下,清空本服务器的数据库;
拷贝所述第三备份数据库中的业务数据至本服务器的数据库中;
发送本服务器的数据库中当前存储的所有业务数据至发出该备份成功通知报文的服务器。
2.根据权利要求1所述的方法,其特征在于,所述在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,所述方法还包括:
在本服务器不是所述服务器集群中当前的主服务器,且本服务器不具有备份数据库的情况下,创建第一备份数据库;
拷贝本服务器的数据库中的所有业务数据至所述第一备份数据库中之后,向所述第一备份数据库添加备份成功标记。
3.根据权利要求1所述的方法,其特征在于,所述在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,所述方法还包括:
在本服务器不是所述服务器集群中当前的主服务器,本服务器具有第二备份数据库,且所述第二备份数据库不具有备份成功标记的情况下,删除所述第二备份数据库,创建第一备份数据库;
拷贝本服务器的数据库中的所有业务数据至所述第一备份数据库中之后,向所述第一备份数据库添加备份成功标记。
4.根据权利要求1所述的方法,其特征在于,所述存储所获得的业务数据至本服务器的数据库中之后,所述方法还包括:
删除所述第一备份数据库。
5.一种数据发送装置,其特征在于,应用于服务器集群中的任一服务器,所述装置包括:
确定模块,用于在本服务器由掉电状态转换为上电状态时,确定本服务器是否为所述服务器集群中当前的主服务器;
通知报文发送模块,用于在所述确定模块的确定结果为否的情况下,在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文,以使当前的主服务器在接收到所述备份成功通知报文后,向本服务器发送业务数据;其中,所述第一备份数据库的备份成功标记是在将本服务器的数据库中的所有业务数据均拷贝至所述第一备份数据库中之后,向所述第一备份数据库添加的;
第一清空模块,用于清空本服务器的数据库;
业务数据获得模块,用于获得当前的主服务器发送的业务数据;
存储模块,用于存储所获得的业务数据至本服务器的数据库中;
业务数据发送模块,用于在确定本服务器是否为所述服务器集群中当前的主服务器之后,若为是,当接收到所述服务器集群中的一服务器发送的备份成功通知报文时,发送本服务器的数据库中当前存储的所有业务数据至发出该备份成功通知报文的服务器;
第二清空模块,用于在发送本服务器的数据库中当前存储的所有业务数据至发出该备份成功通知报文的服务器之前,在本服务器具有第三备份数据库,且所述第三备份数据库具有备份成功标记的情况下,清空本服务器的数据库;
拷贝模块,用于拷贝所述第三备份数据库中的业务数据至本服务器的数据库中。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
创建模块,用于在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,在本服务器不是所述服务器集群中当前的主服务器,且本服务器不具有备份数据库的情况下,创建第一备份数据库;
第一标记模块,用于拷贝本服务器的数据库中的所有业务数据至所述第一备份数据库中之后,向所述第一备份数据库添加备份成功标记。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
重建模块,用于在本服务器具有第一备份数据库,且所述第一备份数据库具有备份成功标记的情况下,向当前的主服务器发送备份成功通知报文之前,在本服务器不是所述服务器集群中当前的主服务器,本服务器具有第二备份数据库,且所述第二备份数据库不具有备份成功标记的情况下,删除所述第二备份数据库,创建第一备份数据库;
第二标记模块,用于拷贝本服务器的数据库中的所有业务数据至所述第一备份数据库中之后,向所述第一备份数据库添加备份成功标记。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
删除模块,用于存储所获得的业务数据至本服务器的数据库中之后,删除所述第一备份数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710046046.0A CN106878399B (zh) | 2017-01-22 | 2017-01-22 | 一种数据发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710046046.0A CN106878399B (zh) | 2017-01-22 | 2017-01-22 | 一种数据发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106878399A CN106878399A (zh) | 2017-06-20 |
CN106878399B true CN106878399B (zh) | 2021-05-07 |
Family
ID=59159110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710046046.0A Active CN106878399B (zh) | 2017-01-22 | 2017-01-22 | 一种数据发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106878399B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1811725A (zh) * | 2006-02-21 | 2006-08-02 | 杭州华为三康技术有限公司 | 一种快速存储装置及快速更新数据的方法 |
CN101431741A (zh) * | 2008-12-19 | 2009-05-13 | 北京邮电大学 | 一种维护个人信息管理数据一致性的方法 |
CN101661565A (zh) * | 2009-09-24 | 2010-03-03 | 北京握奇数据系统有限公司 | 具有Mifare仿真功能的智能卡的断电保护方法、装置及系统 |
CN101739314A (zh) * | 2010-01-13 | 2010-06-16 | 浙江大学 | 列车运行监控装置地面基础数据存储更新方法及系统 |
CN102087623A (zh) * | 2010-12-02 | 2011-06-08 | 东方口岸科技有限公司 | 专用usb存储设备数据更新时掉电的数据保护方法 |
CN103369051A (zh) * | 2013-07-22 | 2013-10-23 | 中安消技术有限公司 | 一种数据服务器集群系统及数据同步方法 |
CN104461770A (zh) * | 2014-10-31 | 2015-03-25 | 上海动联信息技术股份有限公司 | 一种Flash芯片的断电保护方法 |
CN105871649A (zh) * | 2016-06-21 | 2016-08-17 | 上海帝联信息科技股份有限公司 | 节点服务器、服务端及其配置文件更新、更新控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639430B2 (en) * | 2013-08-14 | 2017-05-02 | Globalfoundries Inc. | Intermediate data backup in an incremental snapshot data backup system to reduce data backup time |
-
2017
- 2017-01-22 CN CN201710046046.0A patent/CN106878399B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1811725A (zh) * | 2006-02-21 | 2006-08-02 | 杭州华为三康技术有限公司 | 一种快速存储装置及快速更新数据的方法 |
CN101431741A (zh) * | 2008-12-19 | 2009-05-13 | 北京邮电大学 | 一种维护个人信息管理数据一致性的方法 |
CN101661565A (zh) * | 2009-09-24 | 2010-03-03 | 北京握奇数据系统有限公司 | 具有Mifare仿真功能的智能卡的断电保护方法、装置及系统 |
CN101739314A (zh) * | 2010-01-13 | 2010-06-16 | 浙江大学 | 列车运行监控装置地面基础数据存储更新方法及系统 |
CN102087623A (zh) * | 2010-12-02 | 2011-06-08 | 东方口岸科技有限公司 | 专用usb存储设备数据更新时掉电的数据保护方法 |
CN103369051A (zh) * | 2013-07-22 | 2013-10-23 | 中安消技术有限公司 | 一种数据服务器集群系统及数据同步方法 |
CN104461770A (zh) * | 2014-10-31 | 2015-03-25 | 上海动联信息技术股份有限公司 | 一种Flash芯片的断电保护方法 |
CN105871649A (zh) * | 2016-06-21 | 2016-08-17 | 上海帝联信息科技股份有限公司 | 节点服务器、服务端及其配置文件更新、更新控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106878399A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN104679611B (zh) | 数据资源复制方法以及装置 | |
EP3018593B1 (en) | Data storage method and device for distributed database | |
CN108881354B (zh) | 一种推送信息存储方法、装置、服务器和计算机存储介质 | |
US7107314B2 (en) | Mail system synchronization using multiple message identifiers | |
US6654771B1 (en) | Method and system for network data replication | |
CN106506490B (zh) | 一种分布式计算控制方法以及分布式计算系统 | |
CN107105050B (zh) | 一种业务对象的存储、下载方法及系统 | |
CN107404509B (zh) | 分布式服务配置系统及信息管理方法 | |
CN107656695B (zh) | 一种数据存储、删除方法、装置及分布式存储系统 | |
CN102333029A (zh) | 一种服务器集群系统中的路由方法 | |
CN110022338B (zh) | 文件读取方法、系统、元数据服务器和用户设备 | |
CN112632029B (zh) | 分布式存储系统的数据管理方法、装置及设备 | |
CN107038092B (zh) | 一种数据复制方法及装置 | |
CN103152390A (zh) | 分布式存储系统的节点配置方法、装置、节点及系统 | |
CN110602165A (zh) | 政务数据同步方法、装置、系统、计算机设备和存储介质 | |
CN112367182B (zh) | 容灾主备用设备的配置方法及装置 | |
CN111240892A (zh) | 数据备份方法及装置 | |
EP3570169B1 (en) | Method and system for processing device failure | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN106951443B (zh) | 基于分布式系统的副本同步的方法、设备和系统 | |
CN106878399B (zh) | 一种数据发送方法及装置 | |
CN109344202B (zh) | 一种数据同步方法及管理节点 | |
CN112241341A (zh) | 一种异地容灾的方法、装置及系统 | |
CN112749172A (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 |