一种对PostgreSQL服务故障自动转移的方法技术

技术编号:31802646 阅读:14 留言:0更新日期:2022-01-08 11:03
本发明专利技术公开了一种对PostgreSQL服务故障自动转移的方法,所述方法包括:分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点;分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;分别根据所述第一结果与第二结果进行故障转移。本申请可以在出现故障时自动实现PostgreSQL服务的主备切换,从而实现发生故障时的自动转移,提高PostgreSQL的应用便捷性。PostgreSQL的应用便捷性。PostgreSQL的应用便捷性。

【技术实现步骤摘要】
一种对PostgreSQL服务故障自动转移的方法


[0001]本专利技术涉及PostgreSQL服务领域,具体涉及一种对PostgreSQL服务故障自动转移的方法。

技术介绍

[0002]PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS),有着强大的计算性能、空间地理信息处理能力,在很多专业的地理商业软件中采用PostgreSQL作为数据存储库。实际应用场景中,PostgreSQL高可用性是十分重要的一项考虑因素。虽然PostgreSQL官方提供了多种备份策略,如:逻辑复制、基于触发器的主备复制、WAL日志流式复制等,但自身并不具备故障自动转移功能,在出现故障时需要人为手动切换或借助其他软件实现PostgreSQL服务的主备切换。
[0003]因此,现有技术还有待于改进和发展。

技术实现思路

[0004]本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种对PostgreSQL服务故障自动转移的方法,旨在通过提供一种对PostgreSQL服务故障自动转移的方法,在PostgreSQL服务发生故障时能够自动对故障进行转移。
[0005]本专利技术解决技术问题所采用的技术方案如下:
[0006]第一方面,本专利技术提供一种对PostgreSQL服务故障自动转移的方法,其中,所述方法包括:
[0007]分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点;
[0008]分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;
[0009]分别根据所述第一结果与第二结果进行故障转移。
[0010]在一种实现方式中,所述分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点之后包括:
[0011]分别在所述主节点与所述从节点上安装Consul服务;
[0012]分别对所述主节点上的Consul服务以及所述从节点上的Consul服务进行配置。
[0013]在一种实现方式中,所述分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果包括:
[0014]分别对所述主节点与所述从节点的写入数据功能进行检测,并根据检测结果通过Consul服务分别对所述主节点与所述从节点上的PostgreSQL服务进行标记;
[0015]在所述主节点上循环对有标记的PostgreSQL服务进行检测,得到第一结果;
[0016]在所述从节点上循环对有标记的PostgreSQL服务进行检测,得到第二结果。
[0017]在一种实现方式中,所述根据检测结果通过Consul服务分别对所述主节点与所述从节点进行标记包括:
[0018]当所述检测结果为所述主节点与所述从节点的数据写入功能为正常时,通过Consul服务标记所述主节点与所述从节点的PostgreSQL服务为正常;
[0019]当所述检测结果为所述主节点与所述从节点的数据写入功能为不可用时,通过Consul服务标记所述主节点与所述从节点的PostgreSQL服务为异常。
[0020]在一种实现方式中,所述分别根据所述第一结果与第二结果进行故障转移包括:
[0021]当所述第一结果为所述Consul服务上没有有标记的PostgreSQL服务时,关闭所述主节点上的PostgreSQL服务;
[0022]将所述主节点上的数据同步至所述从节点上,并将所述主节点降为第二从节点。
[0023]在一种实现方式中,所述分别根据所述第一结果与第二结果进行故障转移还包括:
[0024]当所述第二结果为所述Consul服务上没有有标记的PostgreSQL服务时,激活所述从节点的可写功能;
[0025]将所述从节点提升为第二主节点。
[0026]在一种实现方式中,所述分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果还包括:
[0027]每隔预设的时间对所述主节点与所述从节点进行故障检查。
[0028]第二方面,本专利技术实施例还提供一种对PostgreSQL服务故障自动转移的装置,其中,所述装置包括:
[0029]复制模块,用于分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点;
[0030]故障检查模块,用于分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;
[0031]故障转移模块,用于分别根据所述第一结果与第二结果进行故障转移。
[0032]第三方面,本专利技术实施例还提供一种终端设备,其中,所述终端设备包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述方案中任一项所述的一种对PostgreSQL服务故障自动转移的方法。
[0033]第四方面,本专利技术实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述方案中任意一项所述的一种对PostgreSQL服务故障自动转移的方法。
[0034]本专利技术的有益效果:与现有技术相比,本专利技术提供了一种对PostgreSQL服务故障自动转移的方法,所述方法包括分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点,由于PostgreSQL原生支持的WAL日志流式复制允许备用服务器保持更新,主数据库在生成WAL记录时将他们流式传输到备用数据库,而无需等待WAL文件被填充,异步的流式复制使得主数据库中提交事务和更改在备用数据库中变得可见之间存在的延迟很小,因此基于PostgreSQL的WAL日志异步流式复制得到主节点与从节点,然后分别在主节点与从节点上进行故障检测,由于本实施例是通过PostgreSQL服务的主备切换来实现故障的转移,因此需要判断主节点与从节点的故障情况,然后根据检测到的第一结果与第二结果对故障进行转移,实现在出现故障时自动对PostgreSQL服务的主备切换,从而实现发生故障
时的自动转移,提高PostgreSQL的应用便捷性。
附图说明
[0035]图1是本专利技术实施例提供的一种对PostgreSQL服务故障自动转移的方法的具体实施方式的流程图。
[0036]图2是本专利技术实施例提供的一种对PostgreSQL服务故障自动转移的方法中分别在主节点与从节点上进行故障检查的流程图。
[0037]图3是本专利技术实施例提供的一种对PostgreSQL服务故障自动转移的方法中分别在主节点与从节点上进行故障检查与故障转移的流程图。
[0038]图4是本专利技术实施例提供的一种对PostgreSQL服务故障自动转移的方法中根据第一结果与第二结果进行故障转移的流本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对PostgreSQL服务故障自动转移的方法,其特征在于,所述方法包括:分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点;分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;分别根据所述第一结果与第二结果进行故障转移。2.根据权利要求1所述的一种对PostgreSQL服务故障自动转移的方法,其特征在于,所述分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点之后包括:分别在所述主节点与所述从节点上安装Consul服务;分别对所述主节点上的Consul服务以及所述从节点上的Consul服务进行配置。3.根据权利要求2所述的一种对PostgreSQL服务故障自动转移的方法,其特征在于,所述分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果包括:分别对所述主节点与所述从节点的写入数据功能进行检测,并根据检测结果通过Consul服务分别对所述主节点与所述从节点上的PostgreSQL服务进行标记;在所述主节点上循环对有标记的PostgreSQL服务进行检测,得到第一结果;在所述从节点上循环对有标记的PostgreSQL服务进行检测,得到第二结果。4.根据权利要求3所述的一种对PostgreSQL服务故障自动转移的方法,其特征在于,所述根据检测结果通过Consul服务分别对所述主节点与所述从节点进行标记包括:当所述检测结果为所述主节点与所述从节点的数据写入功能为正常时,通过Consul服务标记所述主节点与所述从节点的PostgreSQL服务为正常;当所述检测结果为所述主节点与所述从节点的数据写入功能为不可用时,通过Consul服务标记所述主节点与所述从节点的PostgreSQL服务为异常。5.根据权利要求4所述的一种对PostgreSQL服务故障自动转移的方法,其特征在于,所述分别根据...

【专利技术属性】
技术研发人员:闫康平卫宣安姜坤吴闽华
申请(专利权)人:深圳市震有软件科技有限公司
类型:发明
国别省市:

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

1