一种减少主备节点故障切换过程中数据丢失的方法和装置的制造方法

文档序号:9276674阅读:809来源:国知局
一种减少主备节点故障切换过程中数据丢失的方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据库领域,尤其涉及一种减少主备节点故障切换过程中数据丢失的方法和装置。
【背景技术】
[0002]mysql主节点和备用节点之间的数据增量复制常用异步复制,在主节点故障时,备用节点可以继续提供服务,这是很常用的一种提高数据库的可用性的方式。但是由于数据复制的过程是异步的,当主节点故障时,总存在一部分数据没能传送到备用节点上。主节点故障而备用节点接替主节点提供数据服务的那段时间中,如果数据修改涉到了那部分没传过来的数据中的某一部分,那么在故障解决后,主节点重新提供服务时,就会产生数据冲突。目前常用的处理冲突方法是在故障恢复时,修改主节点数据,让主节点的数据全部与备用节点保持一致。这样做的一个重大缺点是,那部分主节点故障发生时没有同步到备用节点上,且在备用节点提供服务过程中没有涉及的那部分数据变更会丢失。
[0003]另外一种方案是mysql主节点和备用节点之间的数据增量复制采用同步复制,即主节点的每次数据变更都必须在备用节点上都变更成功才能算成功,这样的确能规避数据冲突的问题。但这样做的缺点在:
[0004]a每次数据更新的时间变得更长了,降低了写入性能。
[0005]b如果主节点和备用节点之间的网络中断,那么主节点的数据变更就都会失败。如果主节点和备用节点之间的网络延迟增大,那么每次数据更新的时间也会延长。整个数据库系统的可用性严重依赖于主节点和备用节点之间的网络状况,系统稳定性下降。

【发明内容】

[0006]本发明提供了一种减少主备节点故障切换过程中数据丢失的方法和装置,其通过mysql数据库的主节点和备用节点互相获取对方在本方未记录的数据并对数据进行复制和应用,将数据中不一致的内容进行同步,实现了主节点和备用节点之间的数据的完整对应,并减少了故障发生和恢复过程中数据的丢失。
[0007]为实现上述设计,本发明采用以下技术方案:
[0008]一方面采用一种减少主备节点故障切换过程中数据丢失的方法,包括:
[0009]主节点从备用节点获取所述主节点的故障发生后备用节点产生的数据进行复制并应用;
[0010]所述备用节点从主节点获取所述主节点发生故障时未从主节点备份的数据进行复制并应用;
[0011]比对所述主节点的数据库中与所述备用节点的数据库识别出不一致的数据,将所述不一致的数据替换为所述备用节点的数据库中的数据;
[0012]其中,所述主节点为mysql主节点,所述备用节点为mysql备用节点。
[0013]其中,所述主节点从备用节点获取所述主节点的故障发生后备用节点产生的数据进行复制并应用之前,还包括:
[0014]预设所述主节点和备用节点之间的数据进行复制时忽略数据冲突错误。
[0015]其中,所述主节点从备用节点获取所述主节点的故障发生后备用节点产生的数据进行复制并应用,具体为:
[0016]主节点从备用节点的binlog中读取故障发生的时间点,将所述时间点之后备用节点产生的数据进行复制并应用。
[0017]其中,所述比对所述主节点的数据库中与所述备用节点的数据库识别出不一致的数据,将所述不一致的数据替换为所述备用节点的数据库中的数据,具体为:
[0018]主节点启用比对数据库的工具脚本识别出与所述备用节点的数据库中不一致的数据,将所述不一致的数据替换为所述备用节点的数据库中的数据。
[0019]其中,所述比对所述主节点的数据库中与所述备用节点的数据库识别出不一致的数据,将所述不一致的数据替换为所述备用节点的数据库中的数据之后,还包括:
[0020]恢复所述主节点的数据服务,停止备用节点的数据服务。
[0021]另一方面采用一种减少主备节点故障切换过程中数据丢失的装置,包括:
[0022]第一复制单元,用于主节点从备用节点获取所述主节点的故障发生后备用节点产生的数据进行复制并应用;
[0023]第二复制单元,用于所述备用节点从主节点获取所述主节点发生故障时未从主节点备份的数据进行复制并应用;
[0024]比对替换单元,用于比对所述主节点的数据库中与所述备用节点的数据库识别出不一致的数据,将所述不一致的数据替换为所述备用节点的数据库中的数据;
[0025]其中,所述主节点为mysql主节点,所述备用节点为mysql备用节点。
[0026]其中,还包括:
[0027]预设单元,用于预设所述主节点和备用节点之间的数据进行复制时忽略数据冲突错误。
[0028]其中,所述第一复制单元,具体用于:
[0029]主节点从备用节点的binlog中读取故障发生的时间点,将所述时间点之后备用节点产生的数据进行复制并应用。
[0030]其中,所述比对替换单元,具体用于:
[0031]主节点启用比对数据库的工具脚本识别出与所述备用节点的数据库中不一致的数据,将所述不一致的数据替换为所述备用节点的数据库中的数据。
[0032]其中,还包括:
[0033]服务切换单元,用于恢复所述主节点的数据服务,停止备用节点的数据服务。
[0034]本发明的有益效果为:通过mysql数据库的主节点和备用节点互相获取对方在本方未记录的数据并对数据进行复制和应用,将数据中不一致的内容进行同步,实现了主节点和备用节点之间的数据的完整对应,并减少了故障发生和恢复过程中数据的丢失。
【附图说明】
[0035]为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
[0036]图1是现有技术中主备节点故障切换过程中数据丢失的过程示意图。
[0037]图2是本发明【具体实施方式】中提供的一种减少主备节点故障切换过程中数据丢失的方法的第一实施例的方法流程图。
[0038]图3是本发明【具体实施方式】中提供的一种减少主备节点故障切换过程中数据丢失的方法的第一实施例中减少数据丢失的过程示意图。
[0039]图4是本发明【具体实施方式】中提供的一种减少主备节点故障切换过程中数据丢失的方法的第二实施例的方法流程图。
[0040]图5是本发明【具体实施方式】中提供的一种减少主备节点故障切换过程中数据丢失的装置的第一实施例的结构方框图。
[0041]图6是本发明【具体实施方式】中提供的一种减少主备节点故障切换过程中数据丢失的装置的第二实施例的结构方框图。
【具体实施方式】
[0042]为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]请参考图2,其是本发明【具体实施方式】中提供的一种减少主备节点故障切换过程中数据丢失的方法的第一实施例的方法流程图。如图所示,该方法,包括:
[0044]步骤SlOl:主节点从备用节点获取所述主节点的故障发生后备用节点产生的数据进行复制并应用。
[0045]其中,所述主节点为mysql主节点,所述备用节点为mysql备用节点
[0046]步骤S102:所述备用节点从主节点获取所述主节点发生故障时未从主节点备份的数据进行复制并应用。
[0047]步骤S103:比对所述主节点的数据库中与所述备用节点的数据库识别出不一致的数据,将所述不一致的数据替换为所述备用节点的数据库中的数据。
[0048]mysql数据库存在一个主节点提供数据存取服务,存在一个备用节点,通过网络与主节点连通,备用节点复制主节点所有的数据变更,从而保持与主节点的数据一致性。备用节点在主节点故障时可以提供服务。这就是mysql的主备系统。
[0049]主节点上的数据变更请求成功后,主节点把这条变更记录发送到备用节点,这就是mysql主备异步复制。
[0050]如果只有在确保备用节点收到变更数据的情况下,才认定主节点的数据变更请求成功,那么这就是mysql主备同步复制。
[0051]本方案中基于主备异步复制实现。
[0052]一个数据变更操作成功,但是由于故障切换等问题造成的该数据变更没有发生的现象称为数据变更丢失。
[0053]如图1所示,备用节点的数据变更略微落后于主节点,如果某次数据变更的过程中主节点发生故障,也就只图1中的tl时刻发生故障,这次数据变更已经完成的内容,也就是阴影部分的内容是不会在备用节点备份的,数据服务的主体切换到备用节点后在备用节点上继续数据变更。当主节点故障回复之后,现有技术中直接用备用节点中的数据覆盖主节点中的数据,这样做的结果是阴影部分的数据会被丢弃,造成了数据变更的丢失。
[0054]在本方案中,主节点从故障状态状态中恢复时,并不是简单地使主节点中的数据与备用节点中的数据保持一致,而是通过两者数据的互补保持数据的完整性,确保数据变更尽可能不丢失。
[0055]具体如图3所示,在主节点从故障状态中恢复时,本方案中仅仅对故障发生前后一段时间的数据进行处理,也就是未备份到备用节点的数据(阴影部分的数据)重新备份到备用节点,备用节点新产生的数据变更复制到主节点。
[0056]更进一步地,在备用节点提供数据服务期间,除了故障发生后数据库的数据增加的变化,还有数据中内容修改的变化,所以为了使得主节点和备用节点中的数据保持一致,除了针对数据库的数据增加的同步,还有针对数据中数据修改的同步。
[0057]综上所述,通过mysql数据库的主节点和备用节点互相获取对方在本方未记录的数据并对数据进行复制和应用,将数据中不一致的内容进行同步,实现了主节点和备用节点之间的数据的完整对应,并减少了故障发生和恢复过程中数据的丢失。
[0058]请参考图4,其是本发明【具体实施方式】中提供的一种减少主备节点故障切换过程中数据丢失的方法的第二实施例的方法流程图。如图所示,该方法,包括:
[0059]步骤S201:预设所述主节点和备用节点之间的数据进行复制时忽略数据冲突错误。
[0060]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1