一种数据访问方法、装置以及一种节点集群制造方法及图纸

技术编号:39301243 阅读:7 留言:0更新日期:2023-11-12 15:52
本说明书实施例提供一种数据访问方法、装置以及一种节点集群,其中所述数据访问方法,应用于节点集群中的主节点,节点集群包括主节点和备节点,包括:检测与备节点之间的连通状态;在无法连通备节点的情况下,识别是否获得待访问数据的虚拟网络地址;若未获得,则将主节点自身的状态设为关机状态,以使备节点在获得虚拟网络地址的情况下以主节点身份向客户端提供待访问数据的访问服务。在无法连通备节点的情况下,根据虚拟网络地址是否成功获取,才完成主节点自身状态的设置,有效预防了节点集群中出现多个主节点的情况,且未引入第三方节点和协调机制,降低了节点集群的构建成本和维护成本,降低了数据访问的成本。降低了数据访问的成本。降低了数据访问的成本。

【技术实现步骤摘要】
一种数据访问方法、装置以及一种节点集群


[0001]本说明书实施例涉及数据库
,特别涉及一种数据访问方法。

技术介绍

[0002]目前,随着对数据可靠性和数据服务可用性要求的提高,以主备架构为代表的分布式数据库得到广泛应用,分布式数据库包括节点集群,节点集群包括主节点和备节点。
[0003]利用Keepalived+虚拟网络地址(VIP,Virtual Internet Protocol)或者LVS(Linux Virtual Server,Linux系统虚拟服务器)为代表的检测机制,对节点集群的运行状态进行实时检测,并在出现状态异常(例如,主节点宕机、Keepalived宕机、网络宕机或者服务器宕机等)的情况下,及时将备节点提升为主节点,并将待访问数据的虚拟网络地址分配给提升后的主节点(即虚拟网络地址漂移),使得提升后的主节点继续对外提供访问服务。然而,这样的方式,高度依赖于虚拟网络地址系统的可靠性,所有的客户端(包括监控、运维和管理)进行数据访问时,必须通过虚拟网络地址实现。在发生虚拟网络地址漂移后,虚拟网络地址已经从原主节点漂移至备节点,但是原主节点仍然处于工作状态,在有部分客户端通过原主节点的物理网络地址在原主节点上进行数据访问时,导致节点集群出现多个主节点的情况,或者,节点集群中的定时任务、内部监控,例如,AWR(Automatic WorkloadRepository,自动工作负载存储库)等会生成数据操纵语言(Data Manipulation Language,DML),导致节点集群出现多个主节点的情况。这样多个主节点的情况被称为“脑裂”,会导致原主节点和提升的新主节点上出现数据不同步的问题,例如,原主节点在数据访问过程中生成Redo日志,与新主节点在数据访问过程中生成Redo日志冲突,无法完成数据恢复(Rejoin),对于TB甚至PB级别的大数据分布式数据库,且难以恢复节点集群,存在极大风险,造成数据库的稳定性不足。
[0004]针对节点集群中多个主节点引发的“脑裂”问题,一般采用第三方节点(仲裁节点,Witness Node)和协调机制,例如,Etcd或者Zookeeper来进行预防处理,然而,在节点集群中引入第三方节点和协调机制的方式,增加了节点集群的构建成本和维护成本,进而增加了数据访问的成本。因此,亟需一种低成本的数据访问方法。

技术实现思路

[0005]有鉴于此,本说明书实施例提供了一种数据访问方法。本说明书一个或者多个实施例同时涉及另一种数据访问方法,一种数据访问装置,另一种数据访问装置,一种节点集群,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
[0006]根据本说明书实施例的第一方面,提供了一种数据访问方法,应用于节点集群中的主节点,节点集群包括主节点和备节点,包括:
[0007]检测与备节点之间的连通状态;
[0008]在无法连通备节点的情况下,识别是否获得待访问数据的虚拟网络地址;
[0009]若未获得,则将主节点自身的状态设为关机状态,以使备节点在获得虚拟网络地址的情况下以主节点身份向客户端提供待访问数据的访问服务。
[0010]根据本说明书实施例的第二方面,提供了另一种数据访问方法,应用于节点集群中的备节点,节点集群包括主节点和备节点,包括:
[0011]检测与主节点之间的连通状态;
[0012]在无法连通主节点的情况下,将备节点自身的身份设置为主节点身份;
[0013]在获得到待访问数据的虚拟网络地址的情况下,向客户端提供待访问数据的访问服务。
[0014]根据本说明书实施例的第三方面,提供了一种数据访问装置,应用于节点集群中的主节点,节点集群包括主节点和备节点,该装置包括:
[0015]第一检测模块,被配置为检测与备节点之间的连通状态;
[0016]识别模块,被配置为在无法连通备节点的情况下,识别是否获得待访问数据的虚拟网络地址;
[0017]第一设置模块,被配置为若未获得,则将主节点自身的状态设为关机状态,以使备节点在获得虚拟网络地址的情况下以主节点身份向客户端提供待访问数据的访问服务。
[0018]根据本说明书实施例的第四方面,提供了另一种数据访问装置,应用于节点集群中的备节点,节点集群包括主节点和备节点,该装置包括:
[0019]第二检测模块,被配置为检测与主节点之间的连通状态;
[0020]第三设置模块,被配置为在无法连通主节点的情况下,将备节点自身的身份设置为主节点身份;
[0021]访问模块,被配置为在获得到待访问数据的虚拟网络地址的情况下,向客户端提供待访问数据的访问服务。
[0022]根据本说明书实施例的第五方面,提供了一种节点集群,包括主节点和备节点;
[0023]主节点,用于检测与备节点之间的连通状态,在无法连通备节点的情况下,识别是否获得待访问数据的虚拟网络地址,若未获得,则将主节点自身的状态设为关机状态;
[0024]备节点,用于检测与主节点之间的连通状态,在无法连通主节点的情况下,将备节点自身的身份设置为主节点身份,在获得到待访问数据的虚拟网络地址的情况下,向客户端提供待访问数据的访问服务。
[0025]根据本说明书实施例的第六方面,提供了一种计算设备,包括:
[0026]存储器和处理器;
[0027]所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据访问方法的步骤。
[0028]根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据访问方法的步骤。
[0029]根据本说明书实施例的第八方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据访问方法的步骤。
[0030]本说明书一个或多个实施例中,提供了一种数据访问方法,应用于节点集群中的主节点,节点集群包括主节点和备节点,包括:检测与备节点之间的连通状态;在无法连通备节点的情况下,识别是否获得待访问数据的虚拟网络地址;若未获得,则将主节点自身的
状态设为关机状态,以使备节点在获得虚拟网络地址的情况下以主节点身份向客户端提供待访问数据的访问服务。在无法连通备节点的情况下,根据虚拟网络地址是否成功获取,完成了主节点自身状态的设置,在未获得时,及时考虑到了备节点可能已经被提升为主节点,有效预防了节点集群中出现多个主节点的情况,且未引入第三方节点和协调机制,降低了节点集群的构建成本和维护成本,降低了数据访问的成本。
附图说明
[0031]图1是现有技术中一种分布式数据库的节点集群的架构示意图;
[0032]图2是现有技术中一种分布式数据库的节点集群的脑裂现象示意图;
[0033]图3是本说明书一个实施例提供的一种数据访问方法的流程图;
[0034]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据访问方法,其特征在于,应用于节点集群中的主节点,所述节点集群包括主节点和备节点,所述方法包括:检测与所述备节点之间的连通状态;在无法连通所述备节点的情况下,识别是否获得待访问数据的虚拟网络地址;若未获得,则将所述主节点自身的状态设为关机状态,以使所述备节点在获得所述虚拟网络地址的情况下以主节点身份向客户端提供所述待访问数据的访问服务。2.根据权利要求1所述的方法,其特征在于,所述检测与所述备节点之间的连通状态,包括:按照第一预设周期,调用指定管理工具获取所述备节点的访问状态;在连续得到所述备节点的访问状态为无法访问的次数达到第一预设次数的情况下,确定无法连通所述备节点。3.根据权利要求1所述的方法,其特征在于,所述识别是否获得待访问数据的虚拟网络地址,包括:按照第二预设周期,调用指定管理工具检查是否获得待访问数据的虚拟网络地址;所述若未获得,则将所述主节点自身的状态设为关机状态,包括:在连续未获得所述虚拟网络地址的次数达到第二预设次数的情况下,将所述主节点自身的状态设为关机状态。4.根据权利要求1

3任一项所述的方法,其特征在于,在所述识别是否获得待访问数据的虚拟网络地址之后,还包括:若获得,则将所述主节点自身的数据复制模式从同步复制调整为异步复制。5.根据权利要求1

3任一项所述的方法,其特征在于,还包括:接收客户端发送的访问请求;检测针对所述访问请求的应答状态;在所述应答状态异常的情况下,丢弃所述虚拟网络地址,并将所述主节点自身的状态设为关机状态,以使所述备节点在获得所述虚拟网络地址的情况下以主节点身份向客户端提供所述待访问数据的访问服务。6.根据权利要求5所述的方法,其特征在于,所述检测针对所述访问请求的应答状态,包括:通过心跳检测获取所述访问请求对应的待访问数据;在获取所述待访问数据超时的情况下,确定针对所述访问请求的应答状态异常。7.一种数据访问方法,其特征在于,应用于节点集群中的备节点,所述节点集群包括主节点和备节点,所述方法包括:检测与所述主节点之间的连通状态;在无法连通所述主节点的情况下,将所述备节点自身的身份设置为主节点身份;在获得到待访问数据的虚拟网络地址的情况下,向客户端提供所述待访问数据的访问服务。8.根据权利要求7所述的方法,其特征在于,所述检测与所述主节点之间的连通状态,包括:按照第三预设周期,调用指定管理工具获取所述主节点的访问状态;
在连续得到所述主节点的访问状态为无法访问的次数达到第三预设次数的情况下,确定无法连通所述主节点。9.根据权...

【专利技术属性】
技术研发人员:许欣芃官晓岚倪守奇许洪波封伟梁张君华
申请(专利权)人:恒生电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1