【技术实现步骤摘要】
一种分布式数据库中数据恢复方法、相关设备和系统
本专利技术涉及数据库领域,尤其涉及一种分布式数据库中数据恢复方法、相关设备和系统。
技术介绍
在分布式数据库系统中,为了提高数据节点上数据分片的容灾能力,通常会在多个不同的数据节点上设置多个副本,在工作过程中主本和副本需要保持同步,多副本的存在是提升一个分布式数据库系统可靠性、可用性、性能以及可扩展性的必要手段。业界实现主本和副本之间的复制方式有3种:全同步复制,半同步复制,异步复制。采用全同步复制虽然能保证副本间的一致性,但影响可用性,较大限制分区容错性,并且增加请求处理时延。半同步复制技术相对异步复制,完成单条事务增加额外的等待延迟,相对全同步复制,重演会有延迟,而且从节点失效,或者主从间网络异常,会导致主点被冻结。因此对于时延要求很高的分布式数据库系统一般采用异步。异步同步的方式牺牲部分副本间的一致性,而且在故障时可能导致短暂少量的数据丢失,但有具备较好的可用性和分区容错性。在数据节点集群中某个数据节点发生故障后,元数据服务器根据发生故障的数据分片的副本,将新主本切换到其他副本节点。由于在异步复制场景下,由于消息发出后不等待接收直接返回的,如果存在网络时延、闪断等各种原因,将可能导致各个副本之间进度不一致。在分布式数据库系统中的数据节点发生故障的情况下,如何恢复和同步数据节点上数据分片的数据是目前研究的热点。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种分布式数据库系统中数据恢复方法,实现了在数据节点发生故障的情况下,快速的恢复和同步数据节点上的数据分片。第一方面,本专利技术实施例提供的一 ...
【技术保护点】
1.一种分布式数据库的数据恢复方法,其特征在于,包括:在数据节点集群中的第一数据节点发生故障的情况下,确定所述第一数据节点包括的主本状态的数据分片;查询与所述主本状态的数据分片关联的至少一个副本状态的数据分片,以及获取每个副本状态的数据分片的数据变更序号DCN;确定所述至少一个副本状态的数据分片中DCN最大的数据分片;确定所述DCN最大的数据分片所在第二数据节点,以及向所述第二数据节点发送备升主指令;其中,所述备升主指令用于指示所述第二数据节点将所述DCN最大的数据分片由副本状态切换为主本状态。
【技术特征摘要】
1.一种分布式数据库的数据恢复方法,其特征在于,包括:在数据节点集群中的第一数据节点发生故障的情况下,确定所述第一数据节点包括的主本状态的数据分片;查询与所述主本状态的数据分片关联的至少一个副本状态的数据分片,以及获取每个副本状态的数据分片的数据变更序号DCN;确定所述至少一个副本状态的数据分片中DCN最大的数据分片;确定所述DCN最大的数据分片所在第二数据节点,以及向所述第二数据节点发送备升主指令;其中,所述备升主指令用于指示所述第二数据节点将所述DCN最大的数据分片由副本状态切换为主本状态。2.如权利要求1所述的方法,其特征在于,还包括:接收所述第二数据节点返回的数据恢复响应的情况下,根据所述第二数据节点的标识更新应用客户端的路由信息;其中,所述数据恢复响应表示所述至少一个副本状态的数据分片中所述DCN最大的数据分片与其他数据分片成功进行日志同步。3.如权利要求1所述的方法,其特征在于,检测所述第一数据节点发生故障的方法包括:向所述第一数据节点发送心跳请求包;在预设时长内未接收到所述第一数据节点根据所述心跳请求包返回的心跳响应包的情况下,确定所述第一数据节点发生故障。4.一种分布式数据库的数据恢复方法,其特征在于,包括:数据节点接收管理节点发送的备升主指令;其中,所述备升主指令携带数据分片的标识,所述数据分片位于所述数据节点上且为副本状态;所述数据节点将所述数据分片由副本状态切换为主本状态;所述数据节点查询与所述数据分片关联的至少一个副本状态的数据分片,以及获取所述至少一个副本状态的数据分片各自对应的数据变更序号DCN;所述数据节点根据DCN对所述主本状态的数据分片与每个副本状态的数据分片之间的日志进行增量同步,以使每个副本状态的数据分片根据增量日志进行日志重演,以及副本状态的数据分片所在的数据节点保存接收到的增量日志。5.如权利要求4所述的方法,其特征在于,所述数据节点根据DCN对所述主本状态的数据分片与每个副本状态的数据分片之间的日志进行增量同步包括:所述数据节点将所述主本状态的数据分片关联的日志环形队列中的日志复制到日志派发队列;所述数据节点根据所述主本状态的数据分片的DCN和副本状态的数据分片的DCN在所述日志派发队列中确定增量DCN区间;所述数据节点在所述日志派发队列中确定所述增量DCN区间对应的增量日志;所述数据节点将所述增量日志发送给所述副本状态的数据分片所在的数据节点。6.如权利要求4所述的方法,其特征在于,所述获取所述至少一个副本状态的数据分片各自对应的DCN包括:从所述备升主指令中获取所述至少一个副本状态的数据分片各自对应的DCN。7.如权利要求4所述的方法,其特征在于,还包括:接收日志同步指令;其中,所述日志同步指令携带至少一个日志和待同步的数据分片的标识;根据所述至少一个日志对所述待同步的数据分片进行日志重演,将所述至少一个日志放入所述待同步的数据分片的日志环形队列中,以及根据所述至少一个日志的数量更新每个日志的DCN。8.如权利要求4所述的方法,其特征在于,还包括:接收针对所述数据分片的事务请求,根据请求生成日志,将所述日志放入到所述日志环形队列,以及将所述日志放入日志派发队列中,将所述日志环形队列中最大的DCN加1后作为所述日志的DCN。9.一种管理节点,其特征在于,包括存储器和处理器,所述存储器存储有一段程序代码,所述处理器调用所述程序代码用于以下操作:在数据节点集群中的第一数据节点发生故障的情况下,确定所述第一数据节点包括的主本状态的数据分片;查询与所述主本状态的数据分片关联的至少一个副本状态的数据分片,以及获取每个副本状态的数据分片的数据变更序号DCN;确定所述至少一个副本状态的数据分片中DCN最大的数据分片;确定所述DCN最大的数据分片所在第二数据节点,以及向所述第二数据节点发送备升主指令;其中,所述...
【专利技术属性】
技术研发人员:陶维忠,李玉华,
申请(专利权)人:华为软件技术有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。