System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,尤其涉及一种数据库的高可用管理方法和装置、电子设备及存储介质。
技术介绍
1、目前,现代软件体系中,对于数据库管理系统可用性的要求越来越高,数据库一般采用一主多备的容灾部署架构来实现高可用。主库对外提供读写服务,备库和主库之间做实时日志同步,当主库故障时,备库可通过提升角色来代替原主库继续对外提供服务。但是,其数据库本身不具备自动故障转移的能力,所以需要单独部署一套监控运维系统来完成自动的故障探测和数据库的故障转移。因此,如何在不依赖数据库外部服务的前提下,实现高可用服务去中心化,成为了亟待解决的技术问题。
技术实现思路
1、本申请实施例的主要目的在于提出一种数据库资源管理方法和装置、电子设备及存储介质,旨在提高数据库管理系统的可用性的同时,减少对第三方服务的依赖。
2、为实现上述目的,本申请实施例的第一方面提出了一种数据库的高可用管理方法,所述数据库的高可用管理方法应用于服务节点集群的多个服务节点中的目标服务节点,所述目标服务节点与目标数据库实例部署在同一个目标服务器,所述数据库的高可用管理方法包括:
3、通过预设的心跳进程对所述目标数据库实例进行实例状态检测,得到实例状态检测结果;
4、通过预设的通信进程对所述目标服务节点与所述服务节点集群中各个所述服务节点的通信进行通信状态检测,得到通信状态检测结果;
5、基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移。
6、根据本专
7、通过预设的看护进程对所述心跳进程进行心跳进程状态检测,得到心跳进程状态;
8、通过预设的看护进程对所述通信进程进行通信进程状态检测,得到通信进程状态;
9、若所述心跳进程状态为非运行状态,则重启所述心跳进程,若所述通信进程状态为非运行状态,则重启所述通信进程。
10、根据本专利技术的一些实施例,所述通过预设的通信进程对所述目标服务节点与所述服务节点集群中各个所述服务节点的通信进行通信状态检测,得到通信状态检测结果,包括:
11、通过所述通信进程向所述服务节点集群中各个所述服务节点发送消息请求;
12、通过所述通信进程接收各个所述服务节点响应于所述消息请求发送的反馈信息;
13、如果接收到的所述反馈信息的第一数目大于未接收到的所述反馈信息的第二数目,则通信状态检测结果为通信成功;
14、如果接收到的所述反馈信息的第一数目小于或等于未接收到的所述反馈信息的第二数目,则通信状态检测结果为通信失败。
15、根据本专利技术的一些实施例,多个服务节点为两个服务节点,所述基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移,包括:
16、若所述通信状态检测结果为通信失败,则对所述目标服务节点与网关之间的通信进行网路延迟状态检测,得到网络延迟状态检测结果;
17、基于所述实例状态检测结果和所述网络延迟状态检测结果对所述目标数据库实例进行故障转移。
18、根据本专利技术的一些实施例,其特征在于,所述通过预设的心跳进程对所述目标数据库实例进行实例状态检测,得到实例状态检测结果,包括:
19、获取所述目标数据库实例的心跳监测数据;
20、根据所述心跳监测数据和预设的故障检测逻辑规则进行故障检测,得到所述实例状态检测结果。
21、根据本专利技术的一些实施例,所述基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移,包括:
22、若所述实例状态检测结果为非运行状态、或所述通信状态检测结果为通信失败,确定所述目标数据库实例的角色;
23、若所述目标数据库实例的角色为主数据库实例,则解除所述目标数据库实例绑定的虚拟地址,重启或切换所述目标数据库实例。
24、根据本专利技术的一些实施例,所述重启或切换所述目标数据库实例,包括:
25、确定所述数据库实例对应的磁盘的状态,得到磁盘状态;
26、若所述磁盘状态为磁盘故障,则切换所述目标数据库实例。
27、为实现上述目的,本申请实施例的第二方面提出了一种数据库的高可用管理装置,所述数据库的高可用管理装置应用于服务节点集群的多个服务节点中的目标服务节点,所述目标服务节点与目标数据库实例部署在同一个目标服务器,所述数据库的高可用管理装置包括:
28、实例状态检测模块,用于通过预设的心跳进程对所述目标数据库实例进行实例状态检测,得到实例状态检测结果;
29、通信状态检测模块,用于通过预设的通信进程对所述目标服务节点与所述服务节点集群中各个所述服务节点的通信进行通信状态检测,得到通信状态检测结果;
30、故障转移模块,用于基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移。
31、为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
32、为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
33、本申请提出的数据库的高可用管理方法和装置、电子设备及存储介质,其应用于服务节点集群的多个服务节点中的目标服务节点,目标服务节点与目标数据库实例部署在同一个目标服务器,数据库的高可用管理方法包括:通过预设的心跳进程对目标数据库实例进行实例状态检测,得到实例状态检测结果。然后通过预设的通信进程对目标服务节点与服务节点集群中各个服务节点的通信进行通信状态检测,得到通信状态检测结果,最后基于实例状态检测结果和通信状态检测结果对目标数据库实例进行故障转移。由于每个高可用服务节点和数据库实例部署在同一个服务器上,并在高可用服务节点内部通过通信进程和心跳进程实现故障检查和元数据同步,不依赖外部服务。因此,本申请实施例能够提高数据库管理系统的可用性的同时,减少对第三方服务的依赖。
本文档来自技高网...【技术保护点】
1.一种数据库的高可用管理方法,其特征在于,所述数据库的高可用管理方法应用于服务节点集群的多个服务节点中的目标服务节点,所述目标服务节点与目标数据库实例部署在同一个目标服务器,所述数据库的高可用管理方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移之后,所述数据库的高可用管理方法,还包括:
3.根据权利要求1所述的方法,其特征在于,所述通过预设的通信进程对所述目标服务节点与所述服务节点集群中各个所述服务节点的通信进行通信状态检测,得到通信状态检测结果,包括:
4.根据权利要求3所述的方法,其特征在于,多个服务节点为两个服务节点,所述基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述通过预设的心跳进程对所述目标数据库实例进行实例状态检测,得到实例状态检测结果,包括:
6.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述实例状态检测结
7.根据权利要求6所述的方法,其特征在于,所述重启或切换所述目标数据库实例,包括:
8.一种数据库的高可用管理装置,其特征在于,所述数据库的高可用管理装置应用于服务节点集群的多个服务节点中的目标服务节点,所述目标服务节点与目标数据库实例部署在同一个目标服务器,所述数据库的高可用管理装置包括:
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的数据库的高可用管理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据库的高可用管理方法。
...【技术特征摘要】
1.一种数据库的高可用管理方法,其特征在于,所述数据库的高可用管理方法应用于服务节点集群的多个服务节点中的目标服务节点,所述目标服务节点与目标数据库实例部署在同一个目标服务器,所述数据库的高可用管理方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移之后,所述数据库的高可用管理方法,还包括:
3.根据权利要求1所述的方法,其特征在于,所述通过预设的通信进程对所述目标服务节点与所述服务节点集群中各个所述服务节点的通信进行通信状态检测,得到通信状态检测结果,包括:
4.根据权利要求3所述的方法,其特征在于,多个服务节点为两个服务节点,所述基于所述实例状态检测结果和所述通信状态检测结果对所述目标数据库实例进行故障转移,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述通过预设的心跳进程对所述目标数据库实例进行实例状态检测...
【专利技术属性】
技术研发人员:姚前,
申请(专利权)人:本原数据北京信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。