PostgreSQL主从数据库自动切换系统及方法技术方案

技术编号:24682394 阅读:49 留言:0更新日期:2020-06-27 07:43
本发明专利技术公开了PostgreSQL主从数据库自动切换系统及方法,包括以下步骤:包括以下步骤:S1、zookeeper节点信息写入和节点数据监控;S2、数据库检测;S3、将数据库角色状态写入记录节点;S4、判断数据库是否需要切换;S5、切换触发器模块开启;S6、判断数据库主备关系是否一致;S7、数据库主从切换,本发明专利技术使用分布式架构,将程序部署在多个节点上;利用zookeeper的特性,自动选举leader,保障程序集群本身高可用,防止单点故障;程序各节点实时观察数据库状态,多个观察点对数据库状态进行投票,leader作为监票者根据各观察点的投票数量来判断是否触发后续自动切换任务;程序自动切换模块根据集群leader发出的指令,开启切换任务,完成数据库主从自动切换,继续提供服务。

PostgreSQL master-slave database automatic switch system and method

【技术实现步骤摘要】
PostgreSQL主从数据库自动切换系统及方法
本专利技术属于通信领域,尤其涉及PostgreSQL主从数据库自动切换系统及方法。
技术介绍
PostgreSQL作为当今主流关系型数据库之一,在工业界得到广泛应用并取得良好的效果;数据库的重要性已经不言而喻,如何保障数据库的高可用在业内始终被高度关注,同时在开源领域内,也没有现成的工具和解决方案;本专利技术结合企业自建PostgreSQL主从数据库在故障期间,主从切换缓慢、人为干预程度高、故障时间长、影响范围广等实际情况,基于zookeepr、负载均衡等技术实现数据库故障状态下主从自动切换;大范围的提高了数据库主从切换效率,减少人为干预不可控因素,缩短故障时长,降低故障影响,保障服务高可用。目前,公开号为CN201610548154.3一种主备用数据库切换时的服务提供方法、系统和配置中心。其中,该方法包括:接收应用系统的第一请求消息并提取第一请求消息中的用户ID,其中,第一请求消息用于更新主数据库;将第一请求消息中的用户ID写入名单库,并记录本次写入时间;当主数据库故障时,获取主数据库的故障时间点;根据主数据库的故障时间点和名单库生成黑名单;进行主数据库和备用数据库的切换,并根据黑名单提供服务。本申请实施例的主备用数据库切换时的服务提供方法、系统和配置中心,使得在主备切换后不用等待数据完整同步至备用数据库即可为大部分用户提供正常的读写服务,提升了服务的可用性。
技术实现思路
本专利技术的目的是提供PostgreSQL主从数据库自动切换方法,包括以下步骤:S1、zookeeper节点信息写入和节点数据监控;S2、数据库检测;S3、将数据库角色状态写入记录节点;S4、判断数据库是否需要切换;S5、切换触发器模块开启;S6、判断数据库主备关系是否一致;S7、数据库主从切换。优选的,S1中,zookeeper节点信息写入前,根据IP地址获取DB的角色信息,并对DB进行IP地址、角色信息的格式化,而后将DB信息写入zookeeper节点。优选的,S1中,zookeeper节点数据如果发生变化,先对zookeeper节点的数据和配置文件的信息,然后删除zookeeper节点上的废除信息。优选的,S2中,检测zookeeper节点存在后开启数据库检测的常驻线程。优选的,S3中,在节点存在、能查询到角色的前提下将数据库角色状态写入记录节点。优选的,S4中,开启检测数据库常驻线程后检测数据库状态来判断是否需要切换。优选的,S4中,当DB数量为2,DB角色、IP信息一致,进空信息充足、ZK节点数量充分,主DB异常计数>2且备DB状态正常的情况下可执行切换。优选的,S6中,主库服务器停止后将从库修改为主库,并将原主库从SLB后端摘除,将原从库添加至SLB后端,实现主从数据库切换。PostgreSQL主从数据库自动切换系统,包括:PostgreSQL主数据库、PostgreSQL从数据库,还包括:分布式集群选举模块,分布式程序部署在zookeeper节点上;配置检测模块,配置检测模块获取本地数据库初始化信息,匹配数据库角色信息;格式化后写入zookeeper集群的配置记录节点上,观察者实时检测节点数据,如果数据发生变更,匹配zookeeper配置节点记录信息与本地信息,实时删除废弃信息;数据库检测模块,数据库状态检测模块根据配置模块写入的数据库信息,实时检测数据库状态、观察者根据检测结果对数据库状态进行投票;切换触发器模块,切换触发器模块根据数据库检测模块提供的信息;判断数据库主从是否匹配、数据库角色与ip地址是否匹配、数据库状态的观察者投票计数、观察者数量是否满足、从库状态是否满足;各项指标满足切换条件后,调用切换模块;自动切换模块,自动切换模块负责数据库主从切换的执行;结合负载均衡完成切换;获取负载均衡与服务器ID;判断主从关系是否匹配;判断数据库IP与服务器id是否匹配;停止主库服务器,将从库角色修改为主库,将原主库从负载均衡器摘除,将新的主库(原从库)加入到负载均衡上,完成切换。优选的,分布式集群选举模块的程序数量与zookeeper节点数量保持一致,程序自动选举其中一个节点成为leader,其他节点自动成为观察者。优选的,数据库检测模块中,leader根据各观察者的投票结果来决定是否调用切换触发器模块。本专利技术的有益效果:本专利技术使用分布式架构,将程序部署在多个节点上;利用zookeeper的特性,自动选举leader,保障程序集群本身高可用,防止单点故障;程序各节点实时观察数据库状态,多个观察点对数据库状态进行投票,leader作为监票者根据各观察点的投票数量来判断是否触发后续自动切换任务;程序自动切换模块根据集群leader发出的指令,开启切换任务,完成数据库主从自动切换,继续提供服务。附图说明图1是本专利申请的程序架构图;图2为本专利申请的实现流程图。具体实施方式PostgreSQL主从数据库自动切换系统及方法,包括以下步骤:S1、zookeeper节点信息写入和节点数据监控;S2、数据库检测;S3、将数据库角色状态写入记录节点;S4、判断数据库是否需要切换;S5、切换触发器模块开启;S6、判断数据库主备关系是否一致;S7、数据库主从切换。优选的,S1中,zookeeper节点信息写入前,根据IP地址获取DB的角色信息,并对DB进行IP地址、角色信息的格式化,而后将DB信息写入zookeeper节点。优选的,S1中,zookeeper节点数据如果发生变化,先对zookeeper节点的数据和配置文件的信息,然后删除zookeeper节点上的废除信息。优选的,S2中,检测zookeeper节点存在后开启数据库检测的常驻线程。优选的,S3中,在节点存在、能查询到角色的前提下将数据库角色状态写入记录节点。优选的,S4中,开启检测数据库常驻线程后检测数据库状态来判断是否需要切换。优选的,S4中,当DB数量为2,DB角色、IP信息一致,进空信息充足、ZK节点数量充分,主DB异常计数>2且备DB状态正常的情况下可执行切换。优选的,S6中,主库服务器停止后将从库修改为主库,并将原主库从SLB后端摘除,将原从库添加至SLB后端,实现主从数据库切换。PostgreSQL主从数据库自动切换系统,包括:PostgreSQL主数据库、PostgreSQL从数据库,还包括:分布式集群选举模块,分布式程序部署在zookeeper节点上,本专利技术使用分布式架构,将程序部署在多个节点上;利用zookeeper的特性,自动选举leader,保障程序集群本身高可用,防止单点故障;配置检测模块,配置检测模块获取本地数据库初始化信息,匹配数据库角色信息;格式化后写入zookeeper集群的配置记录节点上,观察者实时检测节点数据,如果数据发生变更,匹配zookeeper配置节本文档来自技高网...

【技术保护点】
1.PostgreSQL主从数据库自动切换方法,其特征在于:包括以下步骤:包括以下步骤:S1、zookeeper节点信息写入和节点数据监控;S2、数据库检测;S3、将数据库角色状态写入记录节点;S4、判断数据库是否需要切换;S5、切换触发器模块开启;S6、判断数据库主备关系是否一致;S7、数据库主从切换。/n

【技术特征摘要】
1.PostgreSQL主从数据库自动切换方法,其特征在于:包括以下步骤:包括以下步骤:S1、zookeeper节点信息写入和节点数据监控;S2、数据库检测;S3、将数据库角色状态写入记录节点;S4、判断数据库是否需要切换;S5、切换触发器模块开启;S6、判断数据库主备关系是否一致;S7、数据库主从切换。


2.根据权利要求1所述的PostgreSQL主从数据库自动切换方法,其特征在于:S1中,zookeeper节点信息写入前,根据IP地址获取DB的角色信息,并对DB进行IP地址、角色信息的格式化,而后将DB信息写入zookeeper节点。


3.根据权利要求1所述的PostgreSQL主从数据库自动切换方法,其特征在于:S1中,zookeeper节点数据如果发生变化,先对zookeeper节点的数据和配置文件的信息,然后删除zookeeper节点上的废除信息。


4.根据权利要求1所述的PostgreSQL主从数据库自动切换方法,其特征在于:S2中,检测zookeeper节点存在后开启数据库检测的常驻线程。


5.根据权利要求1所述的PostgreSQL主从数据库自动切换方法,其特征在于:S3中,在节点存在、能查询到角色的前提下将数据库角色状态写入记录节点。


6.根据权利要求1所述的PostgreSQL主从数据库自动切换方法,其特征在于:S4中,开启检测数据库常驻线程后检测数据库状态来判断是否需要切换。


7.根据权利要求1所述的PostgreSQL主从数据库自动切换方法,其特征在于:S4中,当DB...

【专利技术属性】
技术研发人员:许超
申请(专利权)人:无锡雅座在线科技股份有限公司
类型:发明
国别省市:江苏;32

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

1