[发明专利]一种PostgreSQL高可用性的实现方法在审
申请号: | 202010618679.6 | 申请日: | 2020-07-01 |
公开(公告)号: | CN111813856A | 公开(公告)日: | 2020-10-23 |
发明(设计)人: | 王凯利;赵山;王阳 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/28;G06F9/455 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 刘淑风 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 postgresql 可用性 实现 方法 | ||
1.一种PostgreSQL高可用性的实现方法,其特征在于,该方法基于客户端、哨兵单元、代理单元、PostgreSQL集群和存储单元五个部分;
所述客户端通过代理单元读取存储单元上的信息,从而访问数据库集群;
哨兵单元实时监控主库和从库存活状态,如果主库宕机,实现主库故障自动切换,并且在切换过程中,补偿差异数据,从而保证在主库故障时不丢失数据;
所述数据库集群为层级数据库主从复制集群,主库处理读写请求,从库作为备库,或接收读请求。
2.根据权利要求1所述的一种PostgreSQL高可用性的实现方法,其特征在于,所述哨兵单元包含以下模块:
哨兵节点初始化模块,用于实现哨兵节点的初始化;
初始化哨兵集群模块,用于实现哨兵集群模块的初始化;
哨兵节点状态检测模块,用于对哨兵节点的状态进行检测;
选择领导哨兵模块,用于选择领导哨兵;
管理主库节点模块,用于管理主库节点;
管理从库节点模块,用于管理从库节点;
选举新主库模块,用于选举新主库;
获取差异数据模块,用于获取差异数据;
补偿差异数据模块,用于补偿差异数据;
重建从库服务模块,用于冲减从库服务。
3.根据权利要求2所述的一种PostgreSQL高可用性的实现方法,其特征在于,基于权利要求1所述的系统,所述哨兵节点初始化模块的步骤如下:
启动每个哨兵节点时,需要传入以下参数:哨兵端口,主库IP和端口,用户名密码以及主库标识符;
启动后,该哨兵节点和主库建立通信,获取到主库和从库节点信息,保存在存储单元里;其中,存储单元保存了主库IP,端口,主库标识符,状态和增量日志文件名;从库的IP,端口,从库标识符,状态,增量日志文件名和同步偏移量。
4.根据权利要求2所述的一种PostgreSQL高可用性的实现方法,其特征在于,所述初始化哨兵集群模块的步骤如下:
哨兵节点初始化模块运行结束后,执行如下操作:根据传入的存储单元标识符信息,读取主库和从库信息后与主库从库进行通讯,在指定时间内收到回复,表示状态为存活,否则为故障。
5.根据权利要求2所述的一种PostgreSQL高可用性的实现方法,其特征在于,所述哨兵节点状态检测模块的步骤如下:
根据哨兵列表,每个哨兵节点周期性检测其他哨兵节点状态,并更新哨兵列表,检测方式是执行PING命令,在限定时间内返回成功结果,表示存活,否则表示故障;
选择领导哨兵模块的步骤如下:
功能:首先调用哨兵节点状态检测模块,检测和主库同机部署的哨兵的存活状态,如果状态为存活,那么该哨兵的角色就是领导哨兵;否则,从哨兵列表里选择第一个存活哨兵节点,作为领导哨兵,如果没有获取到领导哨兵,返回错误;否则返回领导哨兵节点的IP和端口。
6.根据权利要求2所述的一种PostgreSQL高可用性的实现方法,其特征在于,所述管理主库节点模块的步骤如下:
首先调用选择领导哨兵模块,得到领导哨兵,然后,领导哨兵周期性执行该模块,比对主库节点和主库列表,如果不一致,则更新主库信息;如果主库状态为存活,返回成功,否则调用选举新主库模块,选择新主库;
管理从库节点模块的步骤如下:
领导哨兵周期性执行该模块,该模块功能如下:该模块首先调用管理主库节点模块,获取主库IP和端口信息,然后根据层级数据库自身的接口,获取到所有从库的IP和端口,状态和同步偏移量信息,并比对从库列表,如果不一致,则更新从库列表信息;从库列表里未匹配到的从库节点,将其从列表里删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010618679.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:可折叠显示屏及显示装置
- 下一篇:一种神经网络的内存分配方法