CN112069152B - 一种数据库集群升级方法、装置、设备以及存储介质 - Google Patents

一种数据库集群升级方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN112069152B
CN112069152B CN202010937297.XA CN202010937297A CN112069152B CN 112069152 B CN112069152 B CN 112069152B CN 202010937297 A CN202010937297 A CN 202010937297A CN 112069152 B CN112069152 B CN 112069152B
Authority
CN
China
Prior art keywords
cluster
upgraded
database cluster
snapshot file
nodes
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
Application number
CN202010937297.XA
Other languages
English (en)
Other versions
CN112069152A (zh
Inventor
付磊
焦瑞刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202010937297.XA priority Critical patent/CN112069152B/zh
Publication of CN112069152A publication Critical patent/CN112069152A/zh
Application granted granted Critical
Publication of CN112069152B publication Critical patent/CN112069152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开关于一种数据库集群升级方法、装置、设备以及存储介质。所述数据库集群升级方法包括:建立与原数据库集群中的待升级集群节点数量相同的升级进程;通过各升级进程,并行地获取各待升级集群节点的全量快照文件以及实时数据,并行地对各待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,并行地将各待升级集群节点的实时数据同步给预设的目标数据库集群;在检测到各待升级集群节点满足数据同步完成条件时,将原数据库集群的客户端流量切换到预设的目标数据库集群中,目标数据库集群中的数据库版本高于原数据库集群中的数据库版本。本公开实施例可以实时、高速、跨大版本实现数据库集群的升级。

Description

一种数据库集群升级方法、装置、设备以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据库集群升级方法、装置、设备以及存储介质。
背景技术
远程字典服务(Remote Dictionary Server,Redis)从2011年开源以来,由于其强大的性能、良好的稳定性、丰富的功能以及简单易用性等特点,一跃成为互联网和一些传统IT企业缓存数据库的首选。近几年来,Redis每年都会有一个大版本升级,不仅修复了前一个版本的一些问题,同时增加了许多优良的特性,许多项目也非常期待使用这些特性。
在Redis的实际应用过程中,经常会将数据存储在Redis集群中。在进行版本升级时,如何实时、高速、跨大版本实现Redis集群的升级,就变成了对Redis集群进行有效管理的必要条件。
相关技术中,常用的Redis集群升级方案通常包括:基于官方工具的升级方案;基于增量文件(Append Only File,AOF)的升级方案;集群内升级的升级方案。其中,Redis官方提供了基于快照文件RDB的升级方案,可以实现将一个单机版本的Redis升级到集群。基于增量文件AOF的升级方案,利用AOF的写日志特性,可以实时将写日志从低版本Redis同步到高版本Redis中。集群内升级的升级方案,将高版本的Redis实例逐步融合到低版本的集群中,最终将低版本集群的Redis全部替换掉。
但是,上述相关技术的问题在于,Redis官方提供的基于快照文件RDB的升级方案基于静态的快照文件RDB无法实现实时升级,在不停止服务的前提下,会造成数据丢失;基于增量文件AOF的升级方案解决了不能实时升级的问题,但速度较慢,不适合大规模集群升级;集群内升级的升级方案无法实现跨大版本的升级。
发明内容
本公开提供一种数据库集群升级方法、装置、设备以及存储介质,以至少解决相关技术中的升级方案无法实时、高速、跨大版本实现数据库集群的升级的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据库集群升级方法,包括:建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点;通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据;通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群;通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群;在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本。
可选的,所述通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据,包括:
通过每一个升级进程并行执行下述操作:
向所分配的待升级集群节点发送主从配置命令,成为所分配的待升级集群节点的从节点;
作为所分配的待升级集群节点的从节点,得到所分配的待升级集群节点的全量快照文件以及实时数据。
可选的,所述通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,包括:
通过每一个升级进程并行执行下述操作:
根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群。
可选的,所述根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群,包括:
依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件;
根据所分配的待升级集群节点的快照文件协议,对所述目标快照文件进行解析,将解析完成的目标快照文件发送给预设的目标数据库集群;
对与所分配的待升级集群节点对应的快照文件解析行为的计数加1;
返回执行依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件的操作,直至完成对所分配的待升级集群节点的全量快照文件的处理;
在检测到所述快照文件解析行为的计数等于所分配的待升级集群节点的全量快照文件数量时,将与所分配的待升级集群节点对应的快照文件解析完成字段的数值设置为1。
可选的,所述通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群,包括:
通过每一个升级进程并行执行下述操作:
在检测到与所分配的待升级集群节点对应的快照文件解析完成字段的数值为1时,作为复制客户端,将从所分配的待升级集群节点的输入缓冲区和输出缓冲区中复制的实时数据发送给预设的目标数据库集群。
可选的,所述在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:
在通过各所述升级进程检测到与各待升级集群节点对应的快照文件解析完成字段的数值为1,且与各升级进程对应的输入缓冲区和输出缓冲区为空时,计算所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量的差值;
判断所述差值是否小于等于预设数据量差值阈值;
如果所述差值小于等于预设数据量差值阈值,则确定各所述待升级集群节点满足数据同步完成条件,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中。
可选的,所述将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:
获取所述预设的目标数据库集群的互联网协议地址;
将所述预设的目标数据库集群的互联网协议地址添加到与所述原数据库集群对应的客户端的访问列表中;
将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除。
根据本公开实施例的第二方面,提供一种数据库集群升级装置,包括:升级进程建立单元,被配置为建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点;节点数据获取单元,被配置为通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据;快照文件同步单元,被配置为通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群;实时数据同步单元,被配置为通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群;客户端切换单元,被配置为在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本。
可选的,所述节点数据获取单元被具体配置为:
通过每一个升级进程并行执行下述操作:
向所分配的待升级集群节点发送主从配置命令,成为所分配的待升级集群节点的从节点;
作为所分配的待升级集群节点的从节点,得到所分配的待升级集群节点的全量快照文件以及实时数据。
可选的,所述快照文件同步单元被具体配置为:
通过每一个升级进程并行执行下述操作:
根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群。
可选的,所述根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群,包括:
依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件;
根据所分配的待升级集群节点的快照文件协议,对所述目标快照文件进行解析,将解析完成的目标快照文件发送给预设的目标数据库集群;
对与所分配的待升级集群节点对应的快照文件解析行为的计数加1;
返回执行依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件的操作,直至完成对所分配的待升级集群节点的全量快照文件的处理;
在检测到所述快照文件解析行为的计数等于所分配的待升级集群节点的全量快照文件数量时,将与所分配的待升级集群节点对应的快照文件解析完成字段的数值设置为1。
可选的,所述实时数据同步单元被具体配置为:
通过每一个升级进程并行执行下述操作:
在检测到与所分配的待升级集群节点对应的快照文件解析完成字段的数值为1时,作为复制客户端,将从所分配的待升级集群节点的输入缓冲区和输出缓冲区中复制的实时数据发送给预设的目标数据库集群。
可选的,所述客户端切换单元被具体配置为:
在通过各所述升级进程检测到与各待升级集群节点对应的快照文件解析完成字段的数值为1,且与各升级进程对应的输入缓冲区和输出缓冲区为空时,计算所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量的差值;
判断所述差值是否小于等于预设数据量差值阈值;
如果所述差值小于等于预设数据量差值阈值,则确定各所述待升级集群节点满足数据同步完成条件,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中。
可选的,所述将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:
获取所述预设的目标数据库集群的互联网协议地址;
将所述预设的目标数据库集群的互联网协议地址添加到与所述原数据库集群对应的客户端的访问列表中;
将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除。
根据本公开实施例的第三方面,提供一种计算机设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如本公开任一实施例所述的数据库集群升级方法。
根据本公开实施例的第四方面,提供一种存储介质,所述存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如本公开任一实施例所述的数据库集群升级方法。
根据本公开实施例的第五方面,提供一种计算机应用程序,所述计算机应用程序由计算机设备的处理器执行时,使得计算机设备能够执行如本公开任一实施例所述的数据库集群升级方法。
根据本公开实施例的第六方面,提供一种计算机程序产品,用于与计算机设备结合使用,所述计算机程序产品包括计算机可读存储介质和内嵌于其中的计算机程序机制,经由计算机载入该程序并执行后能够实现如本公开任一实施例所述的数据库集群升级方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
解决了相关技术中的升级方案无法实时、高速、跨大版本实现数据库集群的升级的问题,可以通过建立的各升级进程,基于数据库主从复制协议,并行地获取各待升级集群节点的全量快照文件以及实时数据,然后并行地将解析完成的全量快照文件、以及各待升级集群节点的实时数据同步给预设的目标数据库集群,相比于相关技术中的基于增量文件AOF的升级方案,速度会快数十倍,可以在原数据库集群不需要停止服务的前提下,实现实时升级,相比于Redis官方提供的基于快照文件RDB的升级方案,保证了数据的实时性,只要保证各待升级集群节点的全量快照文件能被正常解析,就可以做到版本升级,甚至是版本降级,相比于集群内升级的升级方案,可以实现跨大版本的升级,即本公开的实施例提供的技术方案可以实时、高速、跨大版本实现数据库集群的升级。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1A是根据一示例性实施例示出的一种数据库集群升级方法的流程图。
图1B是根据本公开实施例所适用的一种数据库集群升级过程的示意图。
图2是根据一示例性实施例示出的一种数据库集群升级方法的流程图。
图3是根据一示例性实施例示出的一种数据库集群升级装置的框图。
图4是根据一示例性实施例示出的一种计算机设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了便于理解,将本公开示例性实施例的主要发明构思进行简述。
相关技术中,Redis官方提供的基于快照文件RDB的升级方案基于静态的快照文件RDB无法实现实时升级,在不停止服务的前提下,会造成数据丢失;基于增量文件AOF的升级方案解决了不能实时升级的问题,但速度较慢,不适合大规模集群升级;集群内升级的升级方案无法实现跨大版本的升级。因此,相关技术中的升级方案无法实时、高速、跨大版本实现数据库集群的升级。
发明人针对相关技术中的升级方案无法实时、高速、跨大版本实现数据库集群的升级的问题,考虑是否可以通过一种方法,可以实时、高速、跨大版本实现数据库集群的升级。
基于上述思考,发明人创造性的提出:建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点;通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据;通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群;通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群;在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本。
这样做的好处是:通过建立的各升级进程,并行地基于数据库主从复制协议,伪装成所分配的待升级集群节点的从节点,获取各待升级集群节点的全量快照文件以及实时数据,然后并行地对各待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,并行地将各待升级集群节点的实时数据同步给预设的目标数据库集群,当检测到各待升级集群节点满足数据同步完成条件时,将原数据库集群的客户端流量切换到预设的目标数据库集群中,可以基于数据库主从复制协议,并行地获取各待升级集群节点的全量快照文件以及实时数据,然后并行地将解析完成的全量快照文件、以及各待升级集群节点的实时数据同步给预设的目标数据库集群,相比于相关技术中的基于增量文件AOF的升级方案,速度会快数十倍,可以在原数据库集群不需要停止服务的前提下,实现实时升级,相比于Redis官方提供的基于快照文件RDB的升级方案,保证了数据的实时性。上述方案只要保证各待升级集群节点的全量快照文件能被正常解析,就可以做到版本升级,甚至是版本降级,相比于集群内升级的升级方案,可以实现跨大版本的升级。由此,上述方案可以实时、高速、跨大版本实现数据库集群的升级。
图1A是根据一示例性实施例示出的一种数据库集群升级方法的流程图,本实施例可适用于对为客户端提供数据服务的原数据库集群进行升级的情况。该方法可以由数据库集群升级装置来执行,该装置可以采用硬件和/或软件的方式实现,可配置于独立于原数据库集群的第三方设备中。示例性的,第三方设备可以为服务器。
如图1A所示,本公开实施例所提供的数据库集群升级方法包括以下步骤:
在步骤S11中,建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点。
本实施例中,原数据库集群为低版本的Redis数据库集群。当原数据库集群支撑互联网的某项业务时,与原数据库集群对应的客户端会访问原数据库集群,从原数据库集群拉取数据。为了保证原数据库集群可以更好地为客户端提供数据服务,需要及时将与客户端对应的原数据库集群升级为目标数据库集群。
升级进程是用于将待升级集群节点中存储的数据迁移至预设的目标数据库集群中的进程。建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点,从而可以通过各升级进程,并行地将原数据库集群中的各待升级集群节点中存储的数据迁移至预设的目标数据库集群中。
示例性的,原数据库集群中包括200个集群节点。200个集群节点部署在10台服务器上。即原数据库集群中的待升级集群节点数量为200。建立200个升级进程,分别为每一个升级进程分配一个待升级集群节点,从而可以通过各升级进程,并行地将原数据库集群中的200个待升级集群节点中存储的数据迁移至预设的目标数据库集群中。
在步骤S12中,通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据。
本实施例中,待升级集群节点中存储的数据包括:保存在待升级集群节点的磁盘中的快照文件RDB和保存在待升级集群节点的输入缓冲区和输出缓冲区的实时数据。
在本公开实施例的一个实施方式中,可选的,所述通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据,包括:通过每一个升级进程并行执行下述操作:向所分配的待升级集群节点发送主从配置命令,成为所分配的待升级集群节点的从节点;作为所分配的待升级集群节点的从节点,得到所分配的待升级集群节点的全量快照文件以及实时数据。
具体的,对于一个Redis集群节点来说,根据Redis数据库主从复制协议,只需要向其发送一个主从配置命令(slave of命令)即可成为它的从节点,之后便可以得到它的全量快照文件以及实时数据。根据此原理,升级进程向所分配的待升级集群节点发送主从配置命令,成为所分配的待升级集群节点的从节点之后,便可以作为所分配的待升级集群节点的从节点,接收所分配的待升级集群节点同步过来的全量快照文件,将所分配的待升级集群节点的输入缓冲区和输出缓冲区中的实时数据复制到与升级进程对应的输入缓冲区和输出缓冲区中,从而得到所分配的待升级集群节点的全量快照文件以及实时数据。
在步骤S13中,通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群。
在本公开实施例的一个实施方式中,可选的,所述通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,包括:通过每一个升级进程并行执行下述操作:根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群。
具体的,快照文件协议规定了快照文件格式。不同版本的数据库集群的集群节点对应不同的快照文件协议。集群节点根据对应的快照文件协议,将自然语言可以识别的数据转换为二进制的快照文件。
升级进程根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,将各快照文件解析为自然语言可以识别的数据,然后将解析完成的各快照文件发送给预设的目标数据库集群。
预设的目标数据库集群接收解析完成的各快照文件,根据自身的节点空间均衡占用策略,将解析完成的快照文件分配至一个或者多个集群节点进行存储。集群节点根据对应的快照文件协议,将所分配的解析完成的快照文件中的自然语言可以识别的数据转换为二进制的快照文件,保存在磁盘中。可选的,节点空间均衡占用策略可以为根据数据的键域(Key)的哈希进行均衡,通过哈希保证数据基本均匀的存储在预设的目标数据库集群中的各个集群节点。
在本公开实施例的一个实施方式中,可选的,所述根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群,包括:依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件;根据所分配的待升级集群节点的快照文件协议,对所述目标快照文件进行解析,将解析完成的目标快照文件发送给预设的目标数据库集群;对与所分配的待升级集群节点对应的快照文件解析行为的计数加1;返回执行依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件的操作,直至完成对所分配的待升级集群节点的全量快照文件的处理;在检测到所述快照文件解析行为的计数等于所分配的待升级集群节点的全量快照文件数量时,将与所分配的待升级集群节点对应的快照文件解析完成字段的数值设置为1。
具体的,当一个快照文件解析完成并发送给发送给预设的目标数据库集群之后,升级进程会对与所分配的待升级集群节点对应的快照文件解析行为的计数加1。当所分配的待升级集群节点对应的所有快照文件解析完成并发送给发送给预设的目标数据库集群之后,升级进程会将内部预设的与所分配的待升级集群节点对应的快照文件解析完成字段的数值设置为1。快照文件解析完成字段一方面可以作为下一步同步实时数据的依据,另一方面可以作为接口数据提供给外部,帮助外部了解整个迁移进度。
在步骤S14中,通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群。
在本公开实施例的一个实施方式中,可选的,所述通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群,包括:通过每一个升级进程并行执行下述操作:在检测到与所分配的待升级集群节点对应的快照文件解析完成字段的数值为1时,作为复制客户端,将从所分配的待升级集群节点的输入缓冲区和输出缓冲区中复制的实时数据发送给预设的目标数据库集群。
具体的,与所分配的待升级集群节点对应的快照文件解析完成字段的数值为1,表明升级进程已将所分配的待升级集群节点的全量快照文件迁移至预设的目标数据库集群,即所分配的待升级集群节点的快照文件同步已完成。升级进程在确定所分配的待升级集群节点的快照文件同步已完成之后,开始将从所分配的待升级集群节点的输入缓冲区和输出缓冲区中复制的实时数据迁移至预设的目标数据库集群。
可选的,升级进程作为复制客户端,将与升级进程对应的输入缓冲区和输出缓冲区中的实时数据发送给预设的目标数据库集群,同时在升级工具内部会对与升级进程对应的输入缓冲区和输出缓冲区的输入网络流量、输出网络流量、输入缓冲区容量、输出缓冲区队列计数,帮助外部***了解其内部状态。与升级进程对应的输入缓冲区和输出缓冲区为空,表明升级进程已将所分配的待升级集群节点的实时数据迁移至预设的目标数据库集群,即所分配的待升级集群节点的实时数据同步已完成。
在步骤S15中,在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本。
在本公开实施例的一个实施方式中,可选的,在通过各所述升级进程检测到与各待升级集群节点对应的快照文件解析完成字段的数值为1,且与各升级进程对应的输入缓冲区和输出缓冲区为空时,计算所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量的差值;判断所述差值是否小于等于预设数据量差值阈值;如果所述差值小于等于预设数据量差值阈值,则确定各所述待升级集群节点满足数据同步完成条件,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中。
具体的,与各待升级集群节点对应的快照文件解析完成字段的数值为1,表明各升级进程已将所分配的待升级集群节点的全量快照文件迁移至预设的目标数据库集群,即各待升级集群节点的快照文件同步已完成。与各升级进程对应的输入缓冲区和输出缓冲区为空,表明各升级进程已将所分配的待升级集群节点的实时数据迁移至预设的目标数据库集群,即各待升级集群节点的实时数据同步已完成。
在确定各待升级集群节点的快照文件同步和实时数据同步已完成之后,计算所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量的差值。在理想情况下,各待升级集群节点的快照文件同步和实时数据同步已完成之后,所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量应当是一致的。但是在实际场景中,不可控因素可能导致所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量存在一定差异。
预设数据量差值阈值是用于判断所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量之间的差异是否在合理范围内的阈值。
如果所述差值小于等于预设数据量差值阈值,表明所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量之间的差异在合理范围内,则确定各所述待升级集群节点满足数据同步完成条件,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中。
如果所述差值大于预设数据量差值阈值,表明所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量之间的差异超过合理范围,则确定各所述待升级集群节点不满足数据同步完成条件,可以将各所述待升级集群节点不满足数据同步完成条件的信息反馈给外部。
在本公开实施例的一个实施方式中,可选的,所述将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:获取所述预设的目标数据库集群的互联网协议地址;将所述预设的目标数据库集群的互联网协议地址添加到与所述原数据库集群对应的客户端的访问列表中;将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除。
本公开实施例中,以原Redis数据库集群为例进行说明。如图1B所示,原Redis数据库集群101中包括多个待升级集群节点(原Redis)。原Redis数据库集群101与客户端102对应,用于为客户端102提供数据服务。预设的目标数据库集群103中包括多个集群节点(目标Redis)。升级工具104中包括与原Redis数据库集群101中的待升级集群节点数量相同的升级进程。通过升级工具104中的各升级进程,并行地基于Redis数据库主从复制协议,伪装成所分配的待升级集群节点的从节点,获取各待升级集群节点的全量快照文件以及实时数据,然后将各待升级集群节点的快照文件同步到预设的目标数据库集群103中,将各待升级集群节点的实时数据同步到预设的目标数据库集群103中。在确定各待升级集群节点的快照文件同步和实时数据同步已完成,且原数据库集群的升级前数据量与预设的目标数据库集群的当前数据量之间的差异在合理范围内之后,确定各待升级集群节点满足数据同步完成条件,将原Redis数据库集群101的客户端流量切换到预设的目标数据库集群103。
本公开实施例的技术方案通过建立的各升级进程,并行地基于数据库主从复制协议,伪装成所分配的待升级集群节点的从节点,获取各待升级集群节点的全量快照文件以及实时数据,然后并行地对各待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,并行地将各待升级集群节点的实时数据同步给预设的目标数据库集群,当检测到各待升级集群节点满足数据同步完成条件时,将原数据库集群的客户端流量切换到预设的目标数据库集群中,解决了相关技术中的升级方案无法实时、高速、跨大版本实现数据库集群的升级的问题,可以通过建立的各升级进程,基于数据库主从复制协议,并行地获取各待升级集群节点的全量快照文件以及实时数据,然后并行地将解析完成的全量快照文件、以及各待升级集群节点的实时数据同步给预设的目标数据库集群,相比于相关技术中的基于增量文件AOF的升级方案,速度会快数十倍,可以在原数据库集群不需要停止服务的前提下,实现实时升级,相比于Redis官方提供的基于快照文件RDB的升级方案,保证了数据的实时性,只要保证各待升级集群节点的全量快照文件能被正常解析,就可以做到版本升级,甚至是版本降级,相比于集群内升级的升级方案,可以实现跨大版本的升级,即本公开的实施例的技术方案可以实时、高速、跨大版本实现数据库集群的升级。
图2是根据一示例性实施例示出的一种数据库集群升级方法的流程图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。如图2所示,数据库集群升级方法包括以下步骤。
在步骤S21中,建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点。
本实施例中未详尽的描述可以参考前述实施例。
在步骤S22中,通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据。
在步骤S23中,通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群。
在步骤S24中,通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群。
在步骤S25中,在检测到各所述待升级集群节点满足数据同步完成条件时,获取所述预设的目标数据库集群的互联网协议地址。
本实施例中,与原数据库集群对应的客户端将原数据库集群的互联网协议地址保存在客户端的访问列表中,根据原数据库集群的互联网协议地址向原数据库集群发送数据访问请求,进行线上数据访问。
在检测到各所述待升级集群节点满足数据同步完成条件时,获取所述预设的目标数据库集群的互联网协议地址,用预设的目标数据库集群的互联网协议地址替换原数据库集群的互联网协议地址。与原数据库集群对应的客户端根据预设的目标数据库集群的互联网协议地址向预设的目标数据库集群的互联网协议地址发送数据访问请求,进行线上数据访问,从而将原数据库集群的客户端流量切换到预设的目标数据库集群中。
在步骤S26中,将所述预设的目标数据库集群的互联网协议地址添加到与所述原数据库集群对应的客户端的访问列表中。
本实施例中,客户端的访问列表用于存储与客户端对应的数据库集群的互联网协议地址。
在步骤S27中,将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除。
本实施例中,将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除之后,与原数据库集群对应的客户端开始根据预设的目标数据库集群的互联网协议地址向预设的目标数据库集群的互联网协议地址发送数据访问请求,进行线上数据访问,从而完成对为客户端提供数据服务的原数据库集群的升级,将为客户端提供数据服务的原数据库集群升级为目标数据库集群。原数据库集群不再继续使用。
本公开实施例的技术方案通过建立的各升级进程,并行地基于数据库主从复制协议,伪装成所分配的待升级集群节点的从节点,获取各待升级集群节点的全量快照文件以及实时数据,然后并行地对各待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,并行地将各待升级集群节点的实时数据同步给预设的目标数据库集群,当检测到各待升级集群节点满足数据同步完成条件时,获取预设的目标数据库集群的互联网协议地址,添加到与原数据库集群对应的客户端的访问列表中,然后将原数据库集群的互联网协议地址从客户端的访问列表中删除,解决了相关技术中的升级方案无法实时、高速、跨大版本实现数据库集群的升级的问题,可以通过建立的各升级进程,基于数据库主从复制协议,并行地获取各待升级集群节点的全量快照文件以及实时数据,然后并行地将解析完成的全量快照文件、以及各待升级集群节点的实时数据同步给预设的目标数据库集群,实现高速升级,可以在原数据库集群不需要停止服务的前提下,实现实时升级,保证了数据的实时性,只要保证各待升级集群节点的全量快照文件能被正常解析,就可以做到版本升级,甚至是版本降级,可以实现跨大版本的升级,可以在检测到各待升级集群节点满足数据同步完成条件时,自动将原数据库集群的客户端流量切换到预设的目标数据库集群中,完成对为客户端提供数据服务的原数据库集群的升级。
图3是根据一示例性实施例示出的一种数据库集群升级装置的框图。参照图3该装置包括升级进程建立单元31、节点数据获取单元32、快照文件同步单元33、实时数据同步单元34以及客户端切换单元35。
升级进程建立单元31,被配置为建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点。
节点数据获取单元32,被配置为通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据。
快照文件同步单元33,被配置为通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群。
实时数据同步单元34,被配置为通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群。
客户端切换单元35,被配置为在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本。
本公开实施例的技术方案通过建立的各升级进程,并行地基于数据库主从复制协议,伪装成所分配的待升级集群节点的从节点,获取各待升级集群节点的全量快照文件以及实时数据,然后并行地对各待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,并行地将各待升级集群节点的实时数据同步给预设的目标数据库集群,当检测到各待升级集群节点满足数据同步完成条件时,将原数据库集群的客户端流量切换到预设的目标数据库集群中,解决了相关技术中的升级方案无法实时、高速、跨大版本实现数据库集群的升级的问题,可以通过建立的各升级进程,基于数据库主从复制协议,并行地获取各待升级集群节点的全量快照文件以及实时数据,然后并行地将解析完成的全量快照文件、以及各待升级集群节点的实时数据同步给预设的目标数据库集群,相比于相关技术中的基于增量文件AOF的升级方案,速度会快数十倍,可以在原数据库集群不需要停止服务的前提下,实现实时升级,相比于Redis官方提供的基于快照文件RDB的升级方案,保证了数据的实时性,只要保证各待升级集群节点的全量快照文件能被正常解析,就可以做到版本升级,甚至是版本降级,相比于集群内升级的升级方案,可以实现跨大版本的升级,即本公开的实施例的技术方案可以实时、高速、跨大版本实现数据库集群的升级。
在本公开实施例的一个实施方式中,可选的,所述节点数据获取单元32被具体配置为:
通过每一个升级进程并行执行下述操作:
向所分配的待升级集群节点发送主从配置命令,成为所分配的待升级集群节点的从节点;
作为所分配的待升级集群节点的从节点,得到所分配的待升级集群节点的全量快照文件以及实时数据。
在本公开实施例的一个实施方式中,可选的,所述快照文件同步单元33被具体配置为:
通过每一个升级进程并行执行下述操作:
根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群。
在本公开实施例的一个实施方式中,可选的,所述根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群,包括:
依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件;
根据所分配的待升级集群节点的快照文件协议,对所述目标快照文件进行解析,将解析完成的目标快照文件发送给预设的目标数据库集群;
对与所分配的待升级集群节点对应的快照文件解析行为的计数加1;
返回执行依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件的操作,直至完成对所分配的待升级集群节点的全量快照文件的处理;
在检测到所述快照文件解析行为的计数等于所分配的待升级集群节点的全量快照文件数量时,将与所分配的待升级集群节点对应的快照文件解析完成字段的数值设置为1。
在本公开实施例的一个实施方式中,可选的,所述实时数据同步单元34被具体配置为:
通过每一个升级进程并行执行下述操作:
在检测到与所分配的待升级集群节点对应的快照文件解析完成字段的数值为1时,作为复制客户端,将从所分配的待升级集群节点的输入缓冲区和输出缓冲区中复制的实时数据发送给预设的目标数据库集群。
在本公开实施例的一个实施方式中,可选的,所述客户端切换单元35被具体配置为:
在通过各所述升级进程检测到与各待升级集群节点对应的快照文件解析完成字段的数值为1,且与各升级进程对应的输入缓冲区和输出缓冲区为空时,计算所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量的差值;
判断所述差值是否小于等于预设数据量差值阈值;
如果所述差值小于等于预设数据量差值阈值,则确定各所述待升级集群节点满足数据同步完成条件,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中。
在本公开实施例的一个实施方式中,可选的,所述将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:
获取所述预设的目标数据库集群的互联网协议地址;
将所述预设的目标数据库集群的互联网协议地址添加到与所述原数据库集群对应的客户端的访问列表中;
将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种计算机设备的框图。计算机设备可以为独立于数据库集群的服务器。如图4所示,该计算机设备包括:一个或多个处理器41,图4中以一个处理器41为例;存储器42;所述设备中的处理器41和存储器42可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器42作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本公开实施例中的一种数据库集群升级方法对应的程序指令/模块(例如,附图3所示的升级进程建立单元31、节点数据获取单元32、快照文件同步单元33、实时数据同步单元34以及客户端切换单元35)。处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种数据库集群升级方法,即:
建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点;
通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据;
通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群;
通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群;
在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本。
存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于输入调用者编写的计算机程序。输出装置44包括输出接口,可用于输出信息。
在示例性实施例中,还提供了一种包括指令的存储介质,例如存储指令的存储器(42),上述指令可由计算机设备的处理器(41)执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机应用程序,所述计算机应用程序由计算机设备的处理器执行时,使得计算机设备能够执行如本公开任一实施例所述的数据库集群升级方法。
在示例性实施例中,还提供一种计算机程序产品,用于与计算机设备(终端设备或者服务器)结合使用,所述计算机程序产品包括计算机可读存储介质和内嵌于其中的计算机程序机制,经由计算机载入该程序并执行后能够实现如本公开任一实施例所述的数据库集群升级方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (12)

1.一种数据库集群升级方法,其特征在于,包括:
建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点;通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据;
通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群;
通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群;
在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本;
其中,所述通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群,包括:通过每一个升级进程并行执行下述操作:根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群;
所述根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群,包括:依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件;根据所分配的待升级集群节点的快照文件协议,对所述目标快照文件进行解析,将解析完成的目标快照文件发送给预设的目标数据库集群;对与所分配的待升级集群节点对应的快照文件解析行为的计数加1;返回执行依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件的操作,直至完成对所分配的待升级集群节点的全量快照文件的处理;在检测到所述快照文件解析行为的计数等于所分配的待升级集群节点的全量快照文件数量时,将与所分配的待升级集群节点对应的快照文件解析完成字段的数值设置为1。
2.根据权利要求1所述的数据库集群升级方法,其特征在于,所述通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据,包括:
通过每一个升级进程并行执行下述操作:
向所分配的待升级集群节点发送主从配置命令,成为所分配的待升级集群节点的从节点;
作为所分配的待升级集群节点的从节点,得到所分配的待升级集群节点的全量快照文件以及实时数据。
3.根据权利要求1所述的数据库集群升级方法,其特征在于,所述通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群,包括:
通过每一个升级进程并行执行下述操作:
在检测到与所分配的待升级集群节点对应的快照文件解析完成字段的数值为1时,作为复制客户端,将从所分配的待升级集群节点的输入缓冲区和输出缓冲区中复制的实时数据发送给预设的目标数据库集群。
4.根据权利要求3所述的数据库集群升级方法,其特征在于,所述在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:
在通过各所述升级进程检测到与各待升级集群节点对应的快照文件解析完成字段的数值为1,且与各升级进程对应的输入缓冲区和输出缓冲区为空时,计算所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量的差值;
判断所述差值是否小于等于预设数据量差值阈值;
如果所述差值小于等于预设数据量差值阈值,则确定各所述待升级集群节点满足数据同步完成条件,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中。
5.根据权利要求1所述的数据库集群升级方法,其特征在于,所述将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:
获取所述预设的目标数据库集群的互联网协议地址;
将所述预设的目标数据库集群的互联网协议地址添加到与所述原数据库集群对应的客户端的访问列表中;
将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除。
6.一种数据库集群升级装置,其特征在于,包括:
升级进程建立单元,被配置为建立与原数据库集群中的待升级集群节点数量相同的升级进程,分别为每一个升级进程分配一个待升级集群节点;
节点数据获取单元,被配置为通过各所述升级进程,并行地根据数据库主从复制协议,获取各所述待升级集群节点的全量快照文件以及实时数据;
快照文件同步单元,被配置为通过各所述升级进程,并行地对各所述待升级集群节点的全量快照文件进行解析,将解析完成的全量快照文件发送给预设的目标数据库集群;
实时数据同步单元,被配置为通过各所述升级进程,并行地将各所述待升级集群节点的实时数据同步给所述预设的目标数据库集群;
客户端切换单元,被配置为在检测到各所述待升级集群节点满足数据同步完成条件时,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,所述目标数据库集群中的数据库版本高于所述原数据库集群中的数据库版本;
其中,所述快照文件同步单元被具体配置为:通过每一个升级进程并行执行下述操作:根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群;
所述根据所分配的待升级集群节点的快照文件协议,对所分配的待升级集群节点的各快照文件进行解析,并将解析完成的快照文件发送给预设的目标数据库集群,包括:依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件;根据所分配的待升级集群节点的快照文件协议,对所述目标快照文件进行解析,将解析完成的目标快照文件发送给预设的目标数据库集群;对与所分配的待升级集群节点对应的快照文件解析行为的计数加1;返回执行依次从所分配的待升级集群节点的全量快照文件中获取一个快照文件作为目标快照文件的操作,直至完成对所分配的待升级集群节点的全量快照文件的处理;在检测到所述快照文件解析行为的计数等于所分配的待升级集群节点的全量快照文件数量时,将与所分配的待升级集群节点对应的快照文件解析完成字段的数值设置为1。
7.根据权利要求6所述的数据库集群升级装置,其特征在于,所述节点数据获取单元被具体配置为:
通过每一个升级进程并行执行下述操作:
向所分配的待升级集群节点发送主从配置命令,成为所分配的待升级集群节点的从节点;
作为所分配的待升级集群节点的从节点,得到所分配的待升级集群节点的全量快照文件以及实时数据。
8.根据权利要求6所述的数据库集群升级装置,其特征在于,所述实时数据同步单元被具体配置为:
通过每一个升级进程并行执行下述操作:
在检测到与所分配的待升级集群节点对应的快照文件解析完成字段的数值为1时,作为复制客户端,将从所分配的待升级集群节点的输入缓冲区和输出缓冲区中复制的实时数据发送给预设的目标数据库集群。
9.根据权利要求8所述的数据库集群升级装置,其特征在于,所述客户端切换单元被具体配置为:
在通过各所述升级进程检测到与各待升级集群节点对应的快照文件解析完成字段的数值为1,且与各升级进程对应的输入缓冲区和输出缓冲区为空时,计算所述原数据库集群的升级前数据量与所述预设的目标数据库集群的当前数据量的差值;
判断所述差值是否小于等于预设数据量差值阈值;
如果所述差值小于等于预设数据量差值阈值,则确定各所述待升级集群节点满足数据同步完成条件,将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中。
10.根据权利要求6所述的数据库集群升级装置,其特征在于,所述将所述原数据库集群的客户端流量切换到所述预设的目标数据库集群中,包括:
获取所述预设的目标数据库集群的互联网协议地址;
将所述预设的目标数据库集群的互联网协议地址添加到与所述原数据库集群对应的客户端的访问列表中;
将所述原数据库集群的互联网协议地址从所述客户端的访问列表中删除。
11.一种计算机设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的数据库集群升级方法。
12.一种存储介质,当所述存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如权利要求1至5中任一项所述的数据库集群升级方法。
CN202010937297.XA 2020-09-08 2020-09-08 一种数据库集群升级方法、装置、设备以及存储介质 Active CN112069152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010937297.XA CN112069152B (zh) 2020-09-08 2020-09-08 一种数据库集群升级方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010937297.XA CN112069152B (zh) 2020-09-08 2020-09-08 一种数据库集群升级方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN112069152A CN112069152A (zh) 2020-12-11
CN112069152B true CN112069152B (zh) 2023-10-03

Family

ID=73664511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010937297.XA Active CN112069152B (zh) 2020-09-08 2020-09-08 一种数据库集群升级方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN112069152B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641756A (zh) * 2021-07-26 2021-11-12 浪潮卓数大数据产业发展有限公司 一种分布式高并发的数据存储方法
CN117573656B (zh) * 2024-01-16 2024-04-12 浙江智臾科技有限公司 数据库升级方法、电子设备及可读存储介质

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156047A (zh) * 2015-03-27 2016-11-23 ***通信集团福建有限公司 一种快照信息处理方法及装置
CN106803790A (zh) * 2016-12-06 2017-06-06 浙江大华技术股份有限公司 一种集群***的升级控制方法及装置
CN106817241A (zh) * 2015-12-02 2017-06-09 大唐移动通信设备有限公司 一种升级管理方法、升级方法及装置
CN106953746A (zh) * 2017-02-28 2017-07-14 努比亚技术有限公司 集群节点升级***及方法
CN107071005A (zh) * 2017-03-24 2017-08-18 厦门中控生物识别信息技术有限公司 一种数据同步方法及***
CN107562435A (zh) * 2017-09-01 2018-01-09 郑州云海信息技术有限公司 一种基于快照的批量升级方法和***
CN107977466A (zh) * 2017-12-21 2018-05-01 广东小天才科技有限公司 一种数据库升级方法及装置
CN108322533A (zh) * 2018-01-31 2018-07-24 广州鼎甲计算机科技有限公司 基于操作日志的分布式集群节点间配置同步方法
CN108628874A (zh) * 2017-03-17 2018-10-09 北京京东尚科信息技术有限公司 迁移数据的方法、装置、电子设备和可读存储介质
CN109413210A (zh) * 2018-12-18 2019-03-01 郑州云海信息技术有限公司 分布式集群***的目标驱动升级方法、装置、设备及介质
CN109582335A (zh) * 2018-12-03 2019-04-05 郑州云海信息技术有限公司 一种无中断存储集群节点在线升级方法、装置及设备
CN110069265A (zh) * 2018-01-19 2019-07-30 华为技术有限公司 服务集群的升级方法、装置及存储介质
CN110334077A (zh) * 2019-06-11 2019-10-15 无线生活(杭州)信息科技有限公司 数据库跨机房迁移的方法及装置
CN111078667A (zh) * 2019-12-12 2020-04-28 腾讯科技(深圳)有限公司 一种数据迁移的方法以及相关装置
CN111324596A (zh) * 2020-03-06 2020-06-23 腾讯科技(深圳)有限公司 数据库集群的数据迁移方法、装置及电子设备
CN111538719A (zh) * 2020-04-30 2020-08-14 深圳前海微众银行股份有限公司 数据迁移方法、装置、设备及计算机存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663084B2 (en) * 2017-08-08 2023-05-30 Rubrik, Inc. Auto-upgrade of remote data management connectors

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156047A (zh) * 2015-03-27 2016-11-23 ***通信集团福建有限公司 一种快照信息处理方法及装置
CN106817241A (zh) * 2015-12-02 2017-06-09 大唐移动通信设备有限公司 一种升级管理方法、升级方法及装置
CN106803790A (zh) * 2016-12-06 2017-06-06 浙江大华技术股份有限公司 一种集群***的升级控制方法及装置
CN106953746A (zh) * 2017-02-28 2017-07-14 努比亚技术有限公司 集群节点升级***及方法
CN108628874A (zh) * 2017-03-17 2018-10-09 北京京东尚科信息技术有限公司 迁移数据的方法、装置、电子设备和可读存储介质
CN107071005A (zh) * 2017-03-24 2017-08-18 厦门中控生物识别信息技术有限公司 一种数据同步方法及***
CN107562435A (zh) * 2017-09-01 2018-01-09 郑州云海信息技术有限公司 一种基于快照的批量升级方法和***
CN107977466A (zh) * 2017-12-21 2018-05-01 广东小天才科技有限公司 一种数据库升级方法及装置
CN110069265A (zh) * 2018-01-19 2019-07-30 华为技术有限公司 服务集群的升级方法、装置及存储介质
CN108322533A (zh) * 2018-01-31 2018-07-24 广州鼎甲计算机科技有限公司 基于操作日志的分布式集群节点间配置同步方法
CN109582335A (zh) * 2018-12-03 2019-04-05 郑州云海信息技术有限公司 一种无中断存储集群节点在线升级方法、装置及设备
CN109413210A (zh) * 2018-12-18 2019-03-01 郑州云海信息技术有限公司 分布式集群***的目标驱动升级方法、装置、设备及介质
CN110334077A (zh) * 2019-06-11 2019-10-15 无线生活(杭州)信息科技有限公司 数据库跨机房迁移的方法及装置
CN111078667A (zh) * 2019-12-12 2020-04-28 腾讯科技(深圳)有限公司 一种数据迁移的方法以及相关装置
CN111324596A (zh) * 2020-03-06 2020-06-23 腾讯科技(深圳)有限公司 数据库集群的数据迁移方法、装置及电子设备
CN111538719A (zh) * 2020-04-30 2020-08-14 深圳前海微众银行股份有限公司 数据迁移方法、装置、设备及计算机存储介质

Also Published As

Publication number Publication date
CN112069152A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN110147411B (zh) 数据同步方法、装置、计算机设备及存储介质
CN107179879B (zh) 用于存储设备的数据迁移的方法和装置
US8260924B2 (en) User load balancing systems and methods thereof
CN101964820B (zh) 一种保持数据一致性的方法及***
CN112069152B (zh) 一种数据库集群升级方法、装置、设备以及存储介质
CN107483631B (zh) 一种控制缓存实现移动互联网络服务访问的方法
CN102411598A (zh) 一种实现数据一致性的方法及其***
CN111177159B (zh) 一种数据处理的***、方法和数据更新设备
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
US10545667B1 (en) Dynamic data partitioning for stateless request routing
CN112583760B (zh) 一种对象存储的访问方法、装置、设备和计算机存储介质
CN111225003B (zh) 一种nfs节点配置方法和装置
CN113259476B (zh) 消息推送方法及***
US11210212B2 (en) Conflict resolution and garbage collection in distributed databases
US11334623B2 (en) Key value store using change values for data properties
CN110798358B (zh) 分布式服务标识方法、装置、计算机可读介质及电子设备
CN111428114A (zh) Elasticsearch搜索引擎的索引创建方法及装置
CN109992447B (zh) 数据复制方法、装置及存储介质
CN112905676A (zh) 一种数据文件的导入方法及装置
US11645211B2 (en) Augmenting storage functionality using emulation of storage characteristics
CN115189931A (zh) 一种分布式密钥管理方法、装置、设备、存储介质
CN115695587A (zh) 一种业务数据处理***、方法、装置和存储介质
CN114510529A (zh) 数据同步方法、装置、计算机设备和存储介质
CN108491448B (zh) 一种数据推送的方法和装置
US20190220208A1 (en) Method, device and computer program product for storing data

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