CN113900863A - 一种对PostgreSQL服务故障自动转移的方法 - Google Patents

一种对PostgreSQL服务故障自动转移的方法 Download PDF

Info

Publication number
CN113900863A
CN113900863A CN202111194192.0A CN202111194192A CN113900863A CN 113900863 A CN113900863 A CN 113900863A CN 202111194192 A CN202111194192 A CN 202111194192A CN 113900863 A CN113900863 A CN 113900863A
Authority
CN
China
Prior art keywords
node
postgresql
service
slave node
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111194192.0A
Other languages
English (en)
Inventor
闫康平
卫宣安
姜坤
吴闽华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhenyou Software Technology Co ltd
Original Assignee
Shenzhen Zhenyou Software Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhenyou Software Technology Co ltd filed Critical Shenzhen Zhenyou Software Technology Co ltd
Priority to CN202111194192.0A priority Critical patent/CN113900863A/zh
Publication of CN113900863A publication Critical patent/CN113900863A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种对PostgreSQL服务故障自动转移的方法,所述方法包括:分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点;分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;分别根据所述第一结果与第二结果进行故障转移。本申请可以在出现故障时自动实现PostgreSQL服务的主备切换,从而实现发生故障时的自动转移,提高PostgreSQL的应用便捷性。

Description

一种对PostgreSQL服务故障自动转移的方法
技术领域
本发明涉及PostgreSQL服务领域,具体涉及一种对PostgreSQL服务故障自动转移的方法。
背景技术
PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS),有着强大的计算性能、空间地理信息处理能力,在很多专业的地理商业软件中采用PostgreSQL作为数据存储库。实际应用场景中,PostgreSQL高可用性是十分重要的一项考虑因素。虽然PostgreSQL官方提供了多种备份策略,如:逻辑复制、基于触发器的主备复制、WAL日志流式复制等,但自身并不具备故障自动转移功能,在出现故障时需要人为手动切换或借助其他软件实现PostgreSQL服务的主备切换。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种对PostgreSQL服务故障自动转移的方法,旨在通过提供一种对PostgreSQL服务故障自动转移的方法,在PostgreSQL服务发生故障时能够自动对故障进行转移。
本发明解决技术问题所采用的技术方案如下:
第一方面,本发明提供一种对PostgreSQL服务故障自动转移的方法,其中,所述方法包括:
分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点;
分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;
分别根据所述第一结果与第二结果进行故障转移。
在一种实现方式中,所述分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点之后包括:
分别在所述主节点与所述从节点上安装Consul服务;
分别对所述主节点上的Consul服务以及所述从节点上的Consul服务进行配置。
在一种实现方式中,所述分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果包括:
分别对所述主节点与所述从节点的写入数据功能进行检测,并根据检测结果通过Consul服务分别对所述主节点与所述从节点上的PostgreSQL服务进行标记;
在所述主节点上循环对有标记的PostgreSQL服务进行检测,得到第一结果;
在所述从节点上循环对有标记的PostgreSQL服务进行检测,得到第二结果。
在一种实现方式中,所述根据检测结果通过Consul服务分别对所述主节点与所述从节点进行标记包括:
当所述检测结果为所述主节点与所述从节点的数据写入功能为正常时,通过Consul服务标记所述主节点与所述从节点的PostgreSQL服务为正常;
当所述检测结果为所述主节点与所述从节点的数据写入功能为不可用时,通过Consul服务标记所述主节点与所述从节点的PostgreSQL服务为异常。
在一种实现方式中,所述分别根据所述第一结果与第二结果进行故障转移包括:
当所述第一结果为所述Consul服务上没有有标记的PostgreSQL服务时,关闭所述主节点上的PostgreSQL服务;
将所述主节点上的数据同步至所述从节点上,并将所述主节点降为第二从节点。
在一种实现方式中,所述分别根据所述第一结果与第二结果进行故障转移还包括:
当所述第二结果为所述Consul服务上没有有标记的PostgreSQL服务时,激活所述从节点的可写功能;
将所述从节点提升为第二主节点。
在一种实现方式中,所述分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果还包括:
每隔预设的时间对所述主节点与所述从节点进行故障检查。
第二方面,本发明实施例还提供一种对PostgreSQL服务故障自动转移的装置,其中,所述装置包括:
复制模块,用于分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点;
故障检查模块,用于分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;
故障转移模块,用于分别根据所述第一结果与第二结果进行故障转移。
第三方面,本发明实施例还提供一种终端设备,其中,所述终端设备包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述方案中任一项所述的一种对PostgreSQL服务故障自动转移的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述方案中任意一项所述的一种对PostgreSQL服务故障自动转移的方法。
本发明的有益效果:与现有技术相比,本发明提供了一种对PostgreSQL服务故障自动转移的方法,所述方法包括分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点,由于PostgreSQL原生支持的WAL日志流式复制允许备用服务器保持更新,主数据库在生成WAL记录时将他们流式传输到备用数据库,而无需等待WAL文件被填充,异步的流式复制使得主数据库中提交事务和更改在备用数据库中变得可见之间存在的延迟很小,因此基于PostgreSQL的WAL日志异步流式复制得到主节点与从节点,然后分别在主节点与从节点上进行故障检测,由于本实施例是通过PostgreSQL服务的主备切换来实现故障的转移,因此需要判断主节点与从节点的故障情况,然后根据检测到的第一结果与第二结果对故障进行转移,实现在出现故障时自动对PostgreSQL服务的主备切换,从而实现发生故障时的自动转移,提高PostgreSQL的应用便捷性。
附图说明
图1是本发明实施例提供的一种对PostgreSQL服务故障自动转移的方法的具体实施方式的流程图。
图2是本发明实施例提供的一种对PostgreSQL服务故障自动转移的方法中分别在主节点与从节点上进行故障检查的流程图。
图3是本发明实施例提供的一种对PostgreSQL服务故障自动转移的方法中分别在主节点与从节点上进行故障检查与故障转移的流程图。
图4是本发明实施例提供的一种对PostgreSQL服务故障自动转移的方法中根据第一结果与第二结果进行故障转移的流程图。
图5是本发明实施例提供的一种对PostgreSQL服务故障自动转移的装置的原理框图。
图6是本发明实施例提供的终端设备的内部结构原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS),有着强大的计算性能、空间地理信息处理能力,在很多专业的地理商业软件中采用PostgreSQL作为数据存储库。实际应用场景中,PostgreSQL高可用性是十分重要的一项考虑因素。
经研究发现,虽然PostgreSQL官方提供了多种备份策略,如:逻辑复制、基于触发器的主备复制、WAL日志流式复制等,但自身并不具备故障自动转移功能,在出现故障时需要人为手动切换或借助其他软件实现PostgreSQL服务的主备切换。
为了解决现有的技术问题,本实施例提供一种对PostgreSQL服务故障自动转移的方法,所述方法包括分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点,由于PostgreSQL原生支持的WAL日志流式复制允许备用服务器保持更新,主数据库在生成WAL记录时将他们流式传输到备用数据库,而无需等待WAL文件被填充,异步的流式复制使得主数据库中提交事务和更改在备用数据库中变得可见之间存在的延迟很小,因此基于PostgreSQL的WAL日志异步流式复制得到主节点与从节点,然后分别在主节点与从节点上进行故障检测,由于本实施例是通过PostgreSQL服务的主备切换来实现故障的转移,因此需要判断主节点与从节点的故障情况,然后根据检测到的第一结果与第二结果对故障进行转移,实现在出现故障时自动对PostgreSQL服务的主备切换,从而实现发生故障时的自动转移,提高PostgreSQL的应用便捷性。
示例性方法
本实施例中的一种对PostgreSQL服务故障自动转移的方法可应用于终端设备中。具体实施时,如图1中所示,本实施例的一种对PostgreSQL服务故障自动转移的方法包括如下步骤:
步骤S100、分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点。
具体实施时,由于本实施例是通过PostgreSQL服务的主备切换来实现故障的转移,因此需要先分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点。较佳的,由于Consul是一个分布式服务网格解决方案,具备服务注册,服务状态检查,DNS查询等功能。基于PostgreSQL的WAL日志异步流式复制,构建PostgreSQL双机主备集群,将PostgreSQL服务在Consul上注册,利用Consul支持Script+Interval模式对服务状态检查,自动将PostgreSQL服务标记为是否可用的特性,确保在PostgreSQL主服务不可用的情况下,通过脚本自动将备服务提升为主服务,并将原始的主服务降级为备服务。利用Consul的DNS查询功能,用户通过指定的PostgreSQL域名始终能连接到运行正常的PostgreSQL服务,从而实现PostgreSQL服务故障自动转移。因此,在分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点之后,分别在主节点与从节点上安装Consul服务,然后分别对所述主节点上的Consul服务以及所述从节点上的Consul服务进行配置。
步骤S200、分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果。
本实施例在得到主节点和从节点后,即可分别在主节点与从节点上进行故障检测,从而便于根据检测到的结果对故障进行转移,实现在出现故障时自动对PostgreSQL服务的主备切换,进而实现发生故障时的自动转移,提高PostgreSQL的应用便捷性。
在一种实现方式中,如图2所示,所述步骤S200包括如下步骤:
S201、分别对所述主节点与所述从节点的写入数据功能进行检测,并根据检测结果通过Consul服务分别对所述主节点与所述从节点上的PostgreSQL服务进行标记。
S202、在所述主节点上循环对有标记的PostgreSQL服务进行检测,得到第一结果。
S203、在所述从节点上循环对有标记的PostgreSQL服务进行检测,得到第二结果。
具体实施时,本实施例在得到主节点和从节点之后,分别对主节点与从节点的写入数据功能进行检测,并根据检测结果通过Consul服务分别对主节点与从节点上的PostgreSQL服务进行标记。具体地,当检测结果为主节点与从节点的数据写入功能为正常时,通过Consul服务标记主节点与从节点的PostgreSQL服务为正常,当检测结果为主节点与从节点的数据写入功能为不可用时,通过Consul服务标记主节点与从节点的PostgreSQL服务为异常。较佳的,如图3所示,本实施中的主节点与从节点分别向自己本地的Consul注册服务,服务名为postgresql,然后配置Consul对自己本节点上的PostgreSQL服务健康检查方式为Script(状态检测脚本)+Interval(间隔时间),脚本功能为检测自身节点上的PostgreSQL服务是否可写入数据,可写入数据则说明节点上的PostgreSQL服务可正常对外提供服务。进一步地,Consul服务自动在Interval指定的时间间隔循环调用状态检测脚本,如果调用返回状态码为0,则标记本节点的PostgreSQL服务状态为可用,否则标记本节点的PostgreSQL服务为不可用。在对主节点与从节点上的PostgreSQL服务进行标记后,在主节点上循环对有标记的PostgreSQL服务进行检测,得到第一结果,在从节点上循环对有标记的PostgreSQL服务进行检测,得到第二结果,从而便于根据第一结果和第二结果对故障进行转移。
S300、分别根据所述第一结果与第二结果进行故障转移。
本实施例在检测得到第一结果与第二结果后,即可根据第一结果和第二结果对主节点与从节点进行处理,从而实现故障的自动转移。
在一种实现方式中,如图4所示,所述步骤S300包括如下步骤:
S301、当所述第一结果为所述Consul服务上没有有标记的PostgreSQL服务时,关闭所述主节点上的PostgreSQL服务。
S302、将所述主节点上的数据同步至所述从节点上,并将所述主节点降为第二从节点。
具体实施时,当第一结果为Consul服务上没有有标记的PostgreSQL服务时,则说明当前主节点出现故障,则关闭当前主节点上的PostgreSQL服务,将主节点上的数据同步至从节点上,并将主节点降为第二从节点。当第二结果为Consul服务上没有有标记的PostgreSQL服务时,激活从节点的可写功能,将从节点提升为第二主节点。较佳的,本实施例根据第一结果与第二结果分别在从节点上运行主服务切换脚本以及在主节点上运行从服务切换脚本。具体地,主服务切换脚本功能为循环检测Consul服务上是否有标记可用的PostgreSQL服务,如果否说明当前主节点出现故障,激活自己的可写功能,使从节点提升为第二主节点,此时,Consul服务会自动将该提升后的从节点标记为可用的PostgreSQL服务。从服务切换脚本功能为循环检测Consul服务上是否有标记可用的PostgreSQL服务,如果否说明当前主节点出现故障,关闭本节点上的PostgreSQL服务,将当前主节点的数据同步至从节店,将自己降为第二从节点,此时,Consul服务自动会将该节点标记为不可用的PostgreSQL服务。
综上,本实施例首先分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点,由于PostgreSQL原生支持的WAL日志流式复制允许备用服务器保持更新,主数据库在生成WAL记录时将他们流式传输到备用数据库,而无需等待WAL文件被填充,异步的流式复制使得主数据库中提交事务和更改在备用数据库中变得可见之间存在的延迟很小,因此基于PostgreSQL的WAL日志异步流式复制得到主节点与从节点,然后分别在主节点与从节点上进行故障检测,由于本实施例是通过PostgreSQL服务的主备切换来实现故障的转移,因此需要判断主节点与从节点的故障情况,然后根据检测到的第一结果与第二结果对故障进行转移,实现在出现故障时自动对PostgreSQL服务的主备切换,从而实现发生故障时的自动转移,提高PostgreSQL的应用便捷性。
示例性装置
如图5中所示,本实施例还提供一种对PostgreSQL服务故障自动转移的装置,该装置包括复制模块10,故障检查模块20,故障转移模块30。具体地,所述复制模块10,用于分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点。所述故障检查模块20,用于分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果。所述故障转移模块30,用于分别根据所述第一结果与第二结果进行故障转移。
在一种实现方式中,所述故障检查模块20包括:
标记单元,用于分别对所述主节点与所述从节点的写入数据功能进行检测,并根据检测结果通过Consul服务分别对所述主节点与所述从节点上的PostgreSQL服务进行标记;
第一检测单元,用于在所述主节点上循环对有标记的PostgreSQL服务进行检测,得到第一结果;
第二检测单元,用于在所述从节点上循环对有标记的PostgreSQL服务进行检测,得到第二结果。
在一种实现方式中,所述故障转移模块30包括:
关闭服务单元,用于当所述第一结果为所述Consul服务上没有有标记的PostgreSQL服务时,关闭所述主节点上的PostgreSQL服务;
数据同步单元,用于将所述主节点上的数据同步至所述从节点上,并将所述主节点降为第二从节点。
基于上述实施例,本发明还提供一种终端设备,其原理框图可以如图6所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种对PostgreSQL服务故障自动转移的方法。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端设备的温度传感器是预先在终端设备内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图6中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在存储器中并可在处理器上运行的对PostgreSQL服务故障自动转移程序,处理器执行对PostgreSQL服务故障自动转移程序时,实现如下操作指令:
分别配置PostgreSQL服务基于预设的Wal日志流复制得到主节点和从节点;
分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;
分别根据所述第一结果与第二结果进行故障转移。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上,本发明提供了一种对PostgreSQL服务故障自动转移的方法,所述方法包括分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点,由于PostgreSQL原生支持的WAL日志流式复制允许备用服务器保持更新,主数据库在生成WAL记录时将他们流式传输到备用数据库,而无需等待WAL文件被填充,异步的流式复制使得主数据库中提交事务和更改在备用数据库中变得可见之间存在的延迟很小,因此基于PostgreSQL的WAL日志异步流式复制得到主节点与从节点,然后分别在主节点与从节点上进行故障检测,由于本实施例是通过PostgreSQL服务的主备切换来实现故障的转移,因此需要判断主节点与从节点的故障情况,然后根据检测到的第一结果与第二结果对故障进行转移,实现在出现故障时自动对PostgreSQL服务的主备切换,从而实现发生故障时的自动转移,提高PostgreSQL的应用便捷性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

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服务故障自动转移的方法,其特征在于,所述分别根据所述第一结果与第二结果进行故障转移包括:
当所述第一结果为所述Consul服务上没有有标记的PostgreSQL服务时,关闭所述主节点上的PostgreSQL服务;
将所述主节点上的数据同步至所述从节点上,并将所述主节点降为第二从节点。
6.根据权利要求5所述的一种对PostgreSQL服务故障自动转移的方法,其特征在于,所述分别根据所述第一结果与第二结果进行故障转移还包括:
当所述第二结果为所述Consul服务上没有有标记的PostgreSQL服务时,激活所述从节点的可写功能;
将所述从节点提升为第二主节点。
7.根据权利要求4所述的一种对PostgreSQL服务故障自动转移的方法,其特征在于,所述分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果还包括:
每隔预设的时间对所述主节点与所述从节点进行故障检查。
8.一种对PostgreSQL服务故障自动转移的装置,其特征在于,所述装置包括:
复制模块,用于分别配置PostgreSQL基于预设的Wal日志流复制得到主节点和从节点;
故障检查模块,用于分别在所述主节点与所述从节点上进行故障检查,得到与主节点对应的第一结果以及与从节点对应的第二结果;
故障转移模块,用于分别根据所述第一结果与第二结果进行故障转移。
9.一种终端设备,其特征在于,所述终端设备包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述权利要求1-7任一项所述的一种对PostgreSQL服务故障自动转移的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述权利要求1-7任意一项所述的一种对PostgreSQL服务故障自动转移的方法。
CN202111194192.0A 2021-10-13 2021-10-13 一种对PostgreSQL服务故障自动转移的方法 Pending CN113900863A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111194192.0A CN113900863A (zh) 2021-10-13 2021-10-13 一种对PostgreSQL服务故障自动转移的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111194192.0A CN113900863A (zh) 2021-10-13 2021-10-13 一种对PostgreSQL服务故障自动转移的方法

Publications (1)

Publication Number Publication Date
CN113900863A true CN113900863A (zh) 2022-01-07

Family

ID=79191954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111194192.0A Pending CN113900863A (zh) 2021-10-13 2021-10-13 一种对PostgreSQL服务故障自动转移的方法

Country Status (1)

Country Link
CN (1) CN113900863A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676118A (zh) * 2022-05-30 2022-06-28 深圳市科力锐科技有限公司 数据库切换方法、装置、设备及存储介质
CN116048538A (zh) * 2023-01-13 2023-05-02 中科驭数(北京)科技有限公司 用于dpu的服务网格部署方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676118A (zh) * 2022-05-30 2022-06-28 深圳市科力锐科技有限公司 数据库切换方法、装置、设备及存储介质
CN116048538A (zh) * 2023-01-13 2023-05-02 中科驭数(北京)科技有限公司 用于dpu的服务网格部署方法及装置
CN116048538B (zh) * 2023-01-13 2023-11-28 中科驭数(北京)科技有限公司 用于dpu的服务网格部署方法及装置

Similar Documents

Publication Publication Date Title
KR100575497B1 (ko) 내고장성 컴퓨터 시스템
US8301600B1 (en) Failover recovery in a distributed data store
US9607001B2 (en) Automated failover of a metadata node in a distributed file system
CN113900863A (zh) 一种对PostgreSQL服务故障自动转移的方法
US9753954B2 (en) Data node fencing in a distributed file system
US8938638B2 (en) Recovery service location for a service
US20140019495A1 (en) Processing a file system operation in a distributed file system
US7836162B2 (en) Transaction processing system and transaction processing method
MXPA06005797A (es) Sistema y metodo para la recuperacion en caso de fallas.
WO2023082800A1 (zh) 主节点选择方法、分布式数据库及存储介质
CN113360579A (zh) 数据库高可用处理方法、装置、电子设备及存储介质
CN112637335A (zh) 主备模式服务部署方法、装置、设备及存储介质
CN113612814B (zh) 一种会话信息的筛选方法、装置、终端及存储介质
US10860411B2 (en) Automatically detecting time-of-fault bugs in cloud systems
CN110489491B (zh) 一种适用于a/b网双集群的全量数据同步装置
CN112069152A (zh) 一种数据库集群升级方法、装置、设备以及存储介质
CN116010446A (zh) 数据库切换方法、装置、设备及介质
CN115686951A (zh) 一种数据库服务器的故障处理方法和装置
CN113596195B (zh) 公共ip地址管理方法、装置、主节点及存储介质
CN116633724A (zh) 多维度限流和动态路由的系统和部署方法
CN113419901A (zh) 数据灾备方法、装置及服务器
CN111737354A (zh) 数据一致性的检测方法、装置、系统及介质
CN115242874B (zh) 应用开发阶段的网络请求代理优化方法、系统、设备及存储介质
WO2022143065A1 (zh) 数据库探活方法及装置
CN115454928A (zh) 系统在线迁移方法、系统在线迁移装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination