一种提高PostgreSQL集群容灾能力的方法、系统、介质及终端技术方案

技术编号:26730420 阅读:23 留言:0更新日期:2020-12-15 14:30
本发明专利技术提供一种提高PostgreSQL集群容灾能力的方法、系统、介质及终端,方法包括:获取节点与集群的逻辑关系,若为PostgreSQL集群外节点,则在仅数据库中更新互联网协议地址信息和最后更新时间信息;若为PostgreSQL集群内节点,则定时向数据库插入或者更新待检查节点的互联网协议地址信息和更新时间,若待检查节点为主节点,则获取待检查节点的服务状态,当判定所述待检查节点处于异常状态时,通过DB‑Common中选择的第一个活跃可用的节点作为新的集群内节点,更新数据库,并删除异常节点;本发明专利技术在PostgreSQL集群数量减少时主动从存储集群内查找可用节点,替换离线的节点,在存储集群有可用节点的情况下,维持集群数量不变,可以保证高可用功能,提高了容灾能力和更好的集群自我修复能力。

【技术实现步骤摘要】
一种提高PostgreSQL集群容灾能力的方法、系统、介质及终端
本专利技术涉及计算机领域,尤其涉及一种提高PostgreSQL集群容灾能力的方法、系统、介质及终端。
技术介绍
在计算机存储
,存储集群的稳定性一直是大家较为关注的地方,在当下的集群应用中,业务层多有涉及到PostgreSQL数据库服务。PostgreSQL为整个集群多节点提供数据服务,简单的使用方式有单节点部署,即在存储集群中选择一个节点作为PostgreSQL服务安装节点。复杂一些的使用方式有多节点部署成PostgreSQL集群,即在存储集群中选择一定数量的节点部署PostgreSQL,加上高可用技术,实现PostgreSQL的高可用。目前,就多节点存储集群单节点部署PostgreSQL而言,单节点的数据库服务即成为整个集群的缺陷所在,一旦该节点离线,将导致整个集群无数据库服务可用,即集群不可用。目前应用较为广泛的做法是PostgreSQL部署时以多节点集群的方法安装部署,使用其自身的流复制功能实现底层数据库中数据的实时备份,上层高可用功能可选择性较多,例如使用pgpool实现上层的高可用,或者keepalived实现上层的高可用,其目的都是维持一个虚拟ip存在PostgreSQL集群中,当虚拟ip所在节点异常时,可以将虚拟ip转移到PostgreSQL集群中的其它节点,继续提供服务,避免因单节点故障导致的数据库服务不可用。但是这种多节点数据库集群实际应用中规模不会过大,否则会大量占用系统、网络等资源,所以其容灾能力在部署时被局限,无法解决在一个或多个PostgreSQL集群出现不可恢复的异常情况下,如断电、硬件损坏等,保持数据库集群容灾能力不变,造成数据库集群数量稳定的问题。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术提供一种提高PostgreSQL集群容灾能力的方法、系统、介质及终端,以解决上述技术问题。本专利技术提供的提高PostgreSQL集群容灾能力的方法,包括:获取节点与集群的逻辑关系,若待检查节点为PostgreSQL集群外的节点,则在仅数据库中更新所述待检查节点的互联网协议地址信息和最后更新时间信息;若待检查节点为存储集群部署时生成的PostgreSQL集群内的节点,则定时向数据库插入或者更新所述待检查节点的互联网协议地址信息和更新时间,并继续判断所述待检查节点的PostgreSQL服务状态和节点状态,所述服务状态包括正常状态和异常状态,所述节点状态包括主节点状态和从节点状态,若所述待检查节点为主节点,则根据所述更新时间信息获取待检查节点的服务状态,并继续当判定所述待检查节点处于异常状态时,通过DB-Common(记录PostgreSQL集群外可用节点信息的数据表格)中选择的第一个活跃可用的节点作为新的集群内节点;更新数据库,并删除异常节点。可选的,根据配置文件是否符合第一条件和第二条件判断待检查节点是否为存储集群部署时生成的PostgreSQL集群内的节点,所述配置文件包括互联网协议配置文件和用于检测服务器状态的交换机制(keepalived)配置文件;所述第一条件包括所述待检查节点与互联网协议配置文件中的互联网协议信息和对应的角色信息相匹配;所述第二条件包括所述待检查节点与交换机制配置文件的数据库实施例匹配。可选的,当所述待检查节点不能同时满足所述第一条件和第二条件时,判定所述待检查节点为PostgreSQL集群外节点,则定时更新DB-Common中的信息,并维持服务状态。可选的,当所述待检查节点同时满足所述第一条件和第二条件时,判定所述待检查节点为PostgreSQL集群内节点,则定时连接PostgreSQL集群的虚拟互联网协议地址,向数据库中的DB-Manage(记录PostgreSQL集群内节点信息的数据表格)插入或者更新所述待检查节点的互联网协议地址信息和更新时间。可选的,若所述待检查节点为从节点,则根据只向数据库中的DB-Manage插入或者更新本节点的互联网协议地址信息和更新时间,维持并维持服务状态。可选的,若所述待检查节点为主节点,则检查集群内部每个节点的服务状态,包括:检查数据库中的DB-Manage互联网协议地址对应的最后更新时间与当前时间差,或超过预设的时间阈值,则判定所述待检查节点异常状态。可选的,判定所述待检查节点异常状态后,通过PostgreSQL集群的主节点连接至所述待检查节点,并从所述DB-Common中选择的第一个活跃可用的节点互联网协议地址以入参形式传递给至进程来执行异常添加,在配置文件中替换为新增节点的互联网协议地址,并同步至存储集群中的每个节点。可选的,所述更新数据库包括更新数据库中的DB-Manage和DB-Common的数据,将异常节点信息从DB-Manage中删除;所述删除异常节点包括判断异常节点是否网络可达,若网络可达则执行异常删除流程,如删除成功,则检查用于记录待删除节点的数据表格DB-OFFNOD;如删除失败,则将所述待删除节点的互联网协议信息记录在所述数据表格DB-OFFNOD,并在下一次循环中检查该节点表格并再次尝试删除,如果此次删除成功则从表格DB-OFFNODE中清理已被删除节点的互联网协议信息。本专利技术还提供一种提高PostgreSQL集群容灾能力的系统,包括定时更新模块,用于获取节点与集群的逻辑关系,若待检查节点为PostgreSQL集群外的节点,则在仅数据库中更新所述待检查节点的互联网协议地址信息和最后更新时间信息;若待检查节点为存储集群部署时生成的PostgreSQL集群内的节点,则定时向数据库插入或者更新所述待检查节点的互联网协议地址信息和更新时间;健康检查模块,用于判断所述待检查节点的PostgreSQL服务状态和节点状态,所述服务状态包括正常状态和异常状态,所述节点状态包括主节点状态和从节点状态,若所述待检查节点为主节点,则根据所述更新时间信息获取待检查节点的服务状态;异常添加模块,用于执行异常添加流程,当判定所述待检查节点处于异常状态时,通过DB-Common(记录PostgreSQL集群外可用节点信息的数据表格)中选择的第一个活跃可用的节点作为新的集群内节点;异常删除模块,用于更新数据库,并删除异常节点。本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中任一项所述方法。本专利技术还提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上述中任一项所述方法。本专利技术的有益效果:本专利技术中的提高PostgreSQL集群容灾能力的方法、系统、介质及终端,在PostgreSQL集群数量减少时主动从存储集群内查找可用节点,替换离线的节点,在存储集群有可用节点的情况下,维持PostgreSQL集群数量不变,可以保证高可用功能,极大的提高了容灾能力,提供了更本文档来自技高网
...

【技术保护点】
1.一种提高PostgreSQL集群容灾能力的方法,其特征在于,包括:/n获取节点与集群的逻辑关系,若待检查节点为PostgreSQL集群外的节点,则在仅数据库中更新所述待检查节点的互联网协议地址信息和最后更新时间信息;若待检查节点为存储集群部署时生成的PostgreSQL集群内的节点,则定时向数据库插入或者更新所述待检查节点的互联网协议地址信息和更新时间,并继续/n判断所述待检查节点的PostgreSQL服务状态和节点状态,所述服务状态包括正常状态和异常状态,所述节点状态包括主节点状态和从节点状态,若所述待检查节点为主节点,则根据所述更新时间信息获取待检查节点的服务状态,并继续/n当判定所述待检查节点处于异常状态时,通过DB-Common中选择的第一个活跃可用的节点作为新的集群内节点;/n更新数据库,并删除异常节点。/n

【技术特征摘要】
1.一种提高PostgreSQL集群容灾能力的方法,其特征在于,包括:
获取节点与集群的逻辑关系,若待检查节点为PostgreSQL集群外的节点,则在仅数据库中更新所述待检查节点的互联网协议地址信息和最后更新时间信息;若待检查节点为存储集群部署时生成的PostgreSQL集群内的节点,则定时向数据库插入或者更新所述待检查节点的互联网协议地址信息和更新时间,并继续
判断所述待检查节点的PostgreSQL服务状态和节点状态,所述服务状态包括正常状态和异常状态,所述节点状态包括主节点状态和从节点状态,若所述待检查节点为主节点,则根据所述更新时间信息获取待检查节点的服务状态,并继续
当判定所述待检查节点处于异常状态时,通过DB-Common中选择的第一个活跃可用的节点作为新的集群内节点;
更新数据库,并删除异常节点。


2.根据权利要求1所述的提高PostgreSQL集群容灾能力的方法,其特征在于,根据配置文件是否符合第一条件和第二条件判断待检查节点是否为存储集群部署时生成的PostgreSQL集群内的节点,所述配置文件包括互联网协议配置文件和用于检测服务器状态的交换机制(keepalived)配置文件;
所述第一条件包括所述待检查节点与互联网协议配置文件中的互联网协议信息和对应的角色信息相匹配;
所述第二条件包括所述待检查节点与交换机制配置文件的数据库实施例匹配。


3.根据权利要求2所述的提高PostgreSQL集群容灾能力的方法,其特征在于,当所述待检查节点不能同时满足所述第一条件和第二条件时,判定所述待检查节点为PostgreSQL集群外节点,则定时更新DB-Common中的信息,并维持服务状态。


4.根据权利要求2所述的提高PostgreSQL集群容灾能力的方法,其特征在于,当所述待检查节点同时满足所述第一条件和第二条件时,判定所述待检查节点为PostgreSQL集群内节点,则定时连接PostgreSQL集群的虚拟互联网协议地址,向数据库中的DB-Manage插入或者更新所述待检查节点的互联网协议地址信息和更新时间。


5.根据权利要求4所述的提高PostgreSQL集群容灾能力的方法,其特征在于,若所述待检查节点为从节点,则根据只向数据库中的DB-Manage插入或者更新本节点的互联网协议地址信息和更新时间,维持并维持服务状态。


6.根据权利要求4所述的提高PostgreSQL集群容灾能力的方法,其特征在于,若所述待检查节点为主节点,则检查集群内部每个节点的服务状态,包括:检查数据库中的DB-M...

【专利技术属性】
技术研发人员:许克尧
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:重庆;50

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

1