CN114385592A - 故障转移方法、装置、设备及存储介质 - Google Patents

故障转移方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114385592A
CN114385592A CN202210029870.6A CN202210029870A CN114385592A CN 114385592 A CN114385592 A CN 114385592A CN 202210029870 A CN202210029870 A CN 202210029870A CN 114385592 A CN114385592 A CN 114385592A
Authority
CN
China
Prior art keywords
database
sub
target
master
original main
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
CN202210029870.6A
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202210029870.6A priority Critical patent/CN114385592A/zh
Publication of CN114385592A publication Critical patent/CN114385592A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了故障转移方法、装置、设备及存储介质。方法包括:获取目标数据库系统的运行日志数据,若根据运行日志数据检测到目标数据库系统未发生故障,则获取目标数据库系统的原始主数据库和原始主数据库的业务处理参数;若根据业务处理参数检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库;从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库;若检测到原始主数据库的故障消除,则根据原始主数据库和目标主数据库对初始主从关联关系进行更新,得到目标主从关联关系。通过本申请,能够快速且准确地转移目标数据库系统的故障,确保目标数据库系统的高可用性。

Description

故障转移方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种故障转移方法、装置、设备及存储介质。
背景技术
数据库为业务应用的核心,它存储了业务应用中最有价值的资产,包括客户信息、产品信息、订单信息和历史数据等,给存储相关业务带来了很大的便利。数据库可以通过主从复制架构来实现数据的多处备份、加强数据的安全性且进一步提高数据库的负载能力。其中,主从复制架构是指主数据库对外提供读写服务,多个从数据库不断复制主数据库所接收到的数据,将数据从主数据库同步到从数据库。
目前,当数据库中的主数据库发生故障时,则会导致数据库中的主从复制架构不可用,因而导致数据库不能正常提供业务服务。
发明内容
本申请实施例所要解决的技术问题在于,提供一种故障转移方法、装置、设备及存储介质,可实现业务的转移,确保目标数据库系统的高可用性。
本申请实施例一方面提供一种故障转移方法,包括:
获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障;
若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数;
根据原始主数据库的业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库;M为正整数;
从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库;
若检测到原始主数据库的故障消除,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。
其中,根据运行日志数据检测目标数据库系统是否发生故障,包括:
检测运行日志数据中是否存在目标数据库系统中的管理进程的运行数据;
若运行日志数据中存在管理进程的运行数据,则确定目标数据库系统未发生故障;
若连续目标次数检测到运行日志数据中不存在管理进程的运行数据,则确定目标数据库系统发生故障。
其中,从M个子数据库中选择目标子数据库,包括:
获取M个子数据库中每个子数据库分别对应的地址信息和运行状态数据;
根据每个子数据库的地址信息确定每个子数据库的剩余存储容量;
根据每个子数据库的运行状态数据确定每个子数据库的优先等级;
根据每个子数据库的剩余存储容量和优先等级,确定每个子数据库的备选评分;
将最高的备选评分所对应的子数据库确定为目标子数据库。
其中,从M个子数据库中选择目标子数据库,包括:
获取M个子数据库中每个子数据库分别对应的运行日志数据,获取原始主数据库的运行日志数据;
获取每个子数据库分别对应的运行日志数据和原始主数据库的运行日志数据之间的数据相似度;
将最大的数据相似度所对应的子数据库确定为目标子数据库。
其中,业务处理参数包括原始主数据库接收待处理业务数据的虚拟地址信息;
根据业务处理参数将目标子数据库配置为目标主数据库,包括:
获取原始主数据库的虚拟地址信息,获取目标子数据库的逻辑地址信息和物理地址信息;
采用虚拟地址信息替换目标子数据库的逻辑地址信息,并构建虚拟地址信息与目标子数据库的物理地址信息之间的对应关系;
通过目标子数据库的虚拟地址信息将原始主数据库需处理的业务数据迁移至目标子数据库,得到目标主数据库。
其中,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系,包括:
采用目标主数据库替换初始主从关联关系中的原始主数据库;
构建目标主数据库与更新子数据库之间的主从关系,得到目标主从关联关系。
其中,方法还包括:
分别检测目标主从关系中的M个子数据库是否发生故障;
若检测到子数据库Mi发生故障,则获取子数据库Mi对应的子数据库重启脚本,并执行子数据库重启脚本;子数据库Mi属于M个子数据库,i为小于或者等于M的正整数;
在子数据库重启脚本执行完毕后,再次检测子数据库Mi是否发生故障;
若再次检测到子数据库Mi发生故障,则输出提示信息,以提示管理人员对子数据库Mi进行维护。
本申请实施例一方面提供一种故障转移装置,包括:
第一检测模块,用于获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障;
第一获取模块,用于若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数;
第二获取模块,用于根据原始主数据库的业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库;M为正整数;
配置模块,用于从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库;
更新模块,用于若检测到原始主数据库的故障消除,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。
其中,第一检测模块包括:
检测单元,用于检测运行日志数据中是否存在目标数据库系统中的管理进程的运行数据;
第一确定单元,用于若运行日志数据中存在管理进程的运行数据,则确定目标数据库系统未发生故障;
第二确定单元,用于若连续目标次数检测到运行日志数据中不存在管理进程的运行数据,则确定目标数据库系统发生故障。
其中,配置模块包括:
第一获取单元,用于获取M个子数据库中每个子数据库分别对应的地址信息和运行状态数据;
第三确定单元,用于根据每个子数据库的地址信息确定每个子数据库的剩余存储容量;
第四确定单元,用于根据每个子数据库的运行状态数据确定每个子数据库的优先等级;
第五确定单元,用于根据每个子数据库的剩余存储容量和优先等级,确定每个子数据库的备选评分;
第六确定单元,用于将最高的备选评分所对应的子数据库确定为目标子数据库。
配置模块还包括:
第二获取单元,用于获取M个子数据库中每个子数据库分别对应的运行日志数据,获取原始主数据库的运行日志数据;
第三获取单元,用于获取每个子数据库分别对应的运行日志数据和原始主数据库的运行日志数据之间的数据相似度;
第七确定单元,用于将最大的数据相似度所对应的子数据库确定为目标子数据库。
其中,业务处理参数包括原始主数据库接收待处理业务数据的虚拟地址信息;
配置模块包括:
第四获取单元,用于获取原始主数据库的虚拟地址信息,获取目标子数据库的逻辑地址信息和物理地址信息;
构建单元,用于采用虚拟地址信息替换目标子数据库的逻辑地址信息,并构建虚拟地址信息与目标子数据库的物理地址信息之间的对应关系;
迁移单元,用于通过目标子数据库的虚拟地址信息将原始主数据库需处理的业务数据迁移至目标子数据库,得到目标主数据库。
其中,更新模块包括:
替换单元,用于采用目标主数据库替换初始主从关联关系中的原始主数据库;
第二构建单元,用于构建目标主数据库与更新子数据库之间的主从关系,得到目标主从关联关系。
其中,故障转移装置还包括:
第二检测模块,用于分别检测目标主从关系中的M个子数据库是否发生故障;
执行模块,用于若检测到子数据库Mi发生故障,则获取子数据库Mi对应的子数据库重启脚本,并执行子数据库重启脚本;子数据库Mi属于M个子数据库,i为小于或者等于M的正整数;
第三检测模块,用于在子数据库重启脚本执行完毕后,再次检测子数据库Mi是否发生故障;
输出单元,用于若再次检测到子数据库Mi发生故障,则输出提示信息,以提示管理人员对子数据库Mi进行维护。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例中,通过获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障,若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数。进一步通过根据业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库。也就是说,在目标数据库系统未发生故障时,需要进一步检测原始数据库是否发生故障,避免遗漏检测出原始主数据库的故障,提高故障检测的准确度。然后,从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库,可实现将原始主数据库需要处理的业务转移至目标主数据库,可确保目标数据库系统的高可用性。同时,若检测到原始主数据库的故障消除,表明原始主数据库的故障已经恢复,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。也就是说,原始主数据库的故障恢复时,只需要将原始主库更新为子数据库,不需要再次将原始主库更新为主数据库,可减少业务的转移,同时也确保目标数据库系统中有充足的子数据库,进而保证目标数据库系统的主从复制机制的高可用性,也确保目标数据库系统的高可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种故障转移系统的架构示意图;
图2是本申请实施例提供的一种故障转移方法的流程示意图;
图3是本申请实施例提供的另一种故障转移方法的流程示意图;
图4是本申请实施例提供的一种故障转移装置的结构示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
见图1,图1是本申请实施例提供的一种故障转移系统的结构示意图。如图1所示,该故障转移系统可以包括服务器10和用户终端集群。该用户终端集群可以包括一个或者多个用户终端,这里将不对用户终端的数量进行限制。如图1所示,具体可以包括用户终端100a、用户终端100b、用户终端100c、…、用户终端100n。如图1所示,用户终端100a、用户终端100b、用户终端100c、…、用户终端100n可以分别与上述服务器10进行网络连接,以便于每个用户终端可以通过该网络连接与服务器10进行数据交互。
其中,该用户终端集群中的每个用户终端均可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、可穿戴设备、智能家居、头戴设备、车载终端等具有故障转移功能的智能终端。应当理解,如图1所示的用户终端集群中的每个用户终端均可以安装有目标应用(即应用客户端),当该应用客户端运行于各用户终端中时,可以分别与上述图1所示的服务器10之间进行数据交互。
其中,如图1所示,该服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等携带故障转移功能的智能终端。例如,为便于理解,本申请实施例可以将图1所示的用户终端100a作为目标用户终端,用户终端100a可以获取目标数据库系统的运行日志数据,该目标数据库系统可以是指业务应用中的数据库系统,该运行日志数据可以是指记录了目标数据库系统中操作事件的记录文件或文件集合。用户终端100a可以将目标数据库系统的运行日志数据发送给服务器10。服务器10可以根据该目标数据库系统的运行日志数据检测目标数据库系统是否发生故障,若计算机设备检测到目标数据库系统未发生故障,则向用户终端100a发送针对目标数据库系统中原始主数据库的获取请求。用户终端100a接收到服务器10发送的获取请求后,则获取目标数据库系统中的原始数据库,以及该原始数据库的业务处理参数,并将该目标数据库系统中的原始主数据库和该原始主数据库的业务处理参数发送给服务器10。服务器10可以根据该原始主数据库的业务处理参数检测原始主数据库是否发生故障,若服务器10检测原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库,M为正整数,如M可以取值为1,2,3,...。服务器10可以从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库。若用户终端100a检测到原始主数据库的故障消除,则向服务器10发送原始主数据库的故障消除的消息。若服务器10接收到原始主数据库的故障消除的消息,则将原始主数据库确定为更新子数据库,根据该目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。通过本申请,可以从多维度检测目标数据库系统是否发生故障,同时当检测出目标数据库系统发生故障时,则对该目标数据库系统进行故障转移,保障目标数据库的高可用性。
请参见图2,图2是本申请实施例提供的一种故障转移方法的流程示意图。该故障转移方法可由计算机设备执行,该计算机设备可以为服务器(如上述图1中的服务器10),或者用户终端(如上述图1的用户终端集群中的任一用户终端),或者为服务器和用户终端组成的系统,本申请对此不做限定。如图2所示,该故障转移方法可以包括步骤S101-S105。
S101,获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障。
具体的,计算机设备可以对目标数据库系统的故障进行检测和转移,确保目标数据库系统的高可用性,该高可用新的要求是数据库可靠(即数据可靠,数据不能丢失)和数据库可用(即目标数据库系统的服务器不能宕机)。具体的,计算机设备获取目标数据库系统的运行日志数据,该目标数据库系统可以是指业务应用中的数据库系统,如MYSQL数据库。该MySQL数据库是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样可以增加存储速度并提高数据处理的灵活性。其中,该运行日志数据可以从目标数据库系统的日志文件中获得,该运行日志数据可以是指记录了目标数据库系统中操作事件的记录文件或文件集合,即记录了目标数据库系统各个响应事件的文件集合。具体的,计算机设备可以根据该运行日志数据检测目标数据库是否发生故障,即计算机设备可以根据运行日志数据检测目标数据库系统中各个运行参数是否异常,当计算机设备检测到目标数据库系统中的运行参数发生异常时,则可以确定目标数据库发生故障。若计算机设备没有检测到目标数据库系统中的运行参数发生异常,在额可以确定目标数据库没有发生故障。
可选的,计算机设备根据运行日志数据检测目标数据库系统是否发生故障的具体方式可以包括:检测运行日志数据中是否存在目标数据库系统中的管理进程的运行数据。若运行日志数据中存在管理进程的运行数据,则确定目标数据库系统未发生故障。若连续目标次数检测到运行日志数据中不存在管理进程的运行数据,则确定目标数据库系统发生故障。
具体的,计算机设备可以检测运行日志数据中是否存在目标数据库系统的管理进程的运行数据,该管理进程可以是指mysqld进程(即MySQL的守护进程),又称守护进程,是指数据库系统的核心程序,用于管理数据库系统中的数据库文件以及用户的请求操作等,即管理进程相当于目标数据库系统的主进程,若管理进程未运行,则目标数据库系统不能进行业务处理。若计算机设备检测到运行日志数据中存在管理进程的运行数据,即说明目标数据库系统中的管理系统有运行,则可以确定目标数据库系统未发生故障。若计算机设备连续目标次数检测到运行日志数据中不存在管理进程的运行数据,即说明目标数据库系统中的管理进程未运行,则可以确定目标数据库系统发生故障。若计算机设备连续检测到运行日志数据中不存在管理进程的运行数据的检测次数未达到目标次数,则不能确定目标数据库系统发送故障。因为可能存在目标数据库系统中的管理由于卡顿、暂停或者其他原因未产生运行数据,短时间内能恢复正常的情况,若检测次数未达到目标次数就确定目标数据库系统发生故障,则可能会出现检测错误,造成不必要的损失。因此,只有当计算机设备连续目标次数检测到运行日志数据中不存在管理进程的运行数据,则可以确定目标数据库系统发生故障,可以提高目标数据库系统故障检测的准确性。
可选的,若计算机设备检测到运行日志数据中存在管理进程的运行数据,则可以获取该管理进程的运行数据,对该管理进程的运行数据会否发生异常进行检测,若管理进程的运行数据未发生异常,则可以确定管理进程运行正常,则确定目标数据库系统未发生故障。若计算机设备检测到管理进程的运行数据发生异常,则可以确定管理进程发生异常,则确定目标数据库系统发生故障。
可选的,若计算机设备确定目标数据库系统发生故障,则可以输出数据库系统故障提示信息,通过邮件、电话告警、短信或者即时通信发送消息等方式,通知管理人员对目标数据库系统的故障进行查看和维修。
可选的,若计算机设备确定目标数据库系统发生故障,则可以调用目标数据库系统的探活脚本和重新启动脚本,该探活脚本是指指通过检测端向目标数据库服务发起三次tcp(Transmission Control Protocol,即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议)握手(即发起三次通信),建立新连接,若连接建立成功代表目标数据库可以使用;若建立失败代表目标数据库服务不能使用了,则可以通过邮件、电话告警、短信或者即时通信发送消息等方式,通知管理人员对目标数据库系统的故障进行查看和维修。若计算机设备确定目标数据库服务器还可以使用,则可以调用重新启动脚本,对目标数据库进行重新启动。对目标数据库系统进行重新启动后,再次检测目标数据库系统是否发生故障,若再次检测到目标数据库系统发生故障,则通过邮件、电话告警、短信或者即时通信发送消息等方式,通知管理人员对目标数据库系统的故障进行查看和维修。这样,可以从多方面检测目标数据库系统是否发生故障,以及采用多种方式对目标数据库系统发生的故障进行解决,可以提高故障识别和转移的效率。
S102,若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数。
具体的,若计算机设备检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,该目标数据库系统中包括一个原始主数据库和多个子数据库,原始主数据库对外提供读写功能,多个子数据库从原始主数据库中复制原始主数据库收到的数据,多个子数据库只提供读服务(即数据查看、数据获取服务),不提供写服务(即编辑服务)。这样,可以便于实现目标数据库系统中数据的多处自动备份,实现目标数据库系统的拓展,多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升目标数据库系统的负载性能。计算机设备还可以获取原始主数据库的业务处理参数,该业务处理参数可以包括故障检测脚本和原始主数据库接收待处理业务数据的虚拟地址信息。其中,在相关技术中,当检测到目标数据库系统未发生故障时,则不继续对目标数据库系统中的原始主数据库以及子数据库是否发生故障进行检测,这样,则会出现目标数据库系统中原始主数据库或者子数据库发生故障而不能检测的情况,导致故障检测准确性较低。而在本申请中,计算机设备检测出目标数据库系统未发生故障后,继续检测目标数据库系统中的原始主数据库进行检测,可以提高对目标数据库系统进行故障检测的准确性,避免出现当目标数据库系统运行正常,而主数据库发生异常的情况。
S103,根据原始主数据库的业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库。
具体的,计算机设备可以根据原始主数据库的业务处理参数检测原始主数据库是否发生故障,该原始数据库的业务处理参数可以包括原始主数据库的故障检测脚本。计算机设备可以调用该原始主数据库的故障检测脚本,对原始主数据库是否发生故障进行检测。若计算机设备检测到原始主数据库发生故障,则可以获取与原始主数据库具有初始主从关联关系的M个子数据库,该M为正整数,如M可以取值为1,2,3…。该M个子数据库只提供读服务,可以对目标数据库系统中原始主数据库所接收到的数据进行复制,进而实现目标数据库系统中数据的多处自动备份,实现目标数据库系统的拓展,多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升目标数据库系统的负载性能。
可选的,若计算机设备检测到原始主数据库发生故障,则可以获取原始主数据库的主数据库重启脚本,调用该主数据库重启脚本,对原始主数据库进行重启。计算机设备对原始主数据库进行重启后,可以再次调用故障检测脚本检测该原始主数据库是否发生故障,若计算机设备再次检测到原始主数据库发生故障,则可以执行获取与原始主数据库具有初始主从关联关系的M个子数据库的步骤。在原始主库可能在运行的过程中,由于受某些干扰因素的影响而暂停运行,因此对其重新启动后,可能会恢复运行。这样,便可以不用将原始主数据库的数据处理业务转移到其他子数据库,可以提高故障转移效率。
S104,从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库。
具体的,计算机设备可以从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库。当计算机检测到目标数据库系统中的原始主数据库发生故障后,可以从M个子数据库中选择出目标子数据库,根据原始主数据库的业务处理参数将目标子数据库配置为目标主数据库。这样,可以对目标数据库系统中发生故障的原始主数据库进行转移,将目标数据库系统中的数据处理业务转移到目标主数据库中,进而实现目标数据库系统的主从复制架构的高可用性,即实现目标数据库系统的持续可用性。
可选的,计算机设备从M个子数据库中选择目标子数据库的具体方式可以包括:获取M个子数据库中每个子数据库分别对应的地址信息和运行状态数据。根据每个子数据库的地址信息确定每个子数据库的剩余存储容量,根据每个子数据库的运行状态数据确定每个子数据库的优先等级。根据每个子数据库的剩余存储容量和优先等级,确定每个子数据库的备选评分,将最高的备选评分所对应的子数据库确定为目标子数据库。
具体的,计算机设备可以获取M个子数据库中每个子数据库分别对应的地址信息和运行状态信息,计算机设备可以根据每个子数据库的地址信息,查询每个子数据库的存储记录以及每个子数据库的总存储容量。根据每个子数据库的存储记录确定每个子数据库的已存储容量,根据每个子数据库的已存储容量和总存储容量确定每个子数据库的剩余存储容量。其中,计算机设备可以确定每个子数据库的初始优先等级,该每个子数据库的优先等级相同,对每个子数据库的运行状态数据进行遍历,检测每个子数据库的运行状态数据中是否存在发生卡顿、丢失数据、数据处理速度迟缓等异常数据。若计算机设备检测到子数据库中存在发生卡顿、丢失数据、数据处理速度迟缓等异常数据,则对对应的子数据库的优先等级进行减级,得到对应的子数据库的优先等级。例如,计算机设备确定每个子数据库的初始优先等级为1级,若计算机设备从子数据库A的运行状态数据中检测到子数据库A在运行的时候,出现一次卡顿、丢失数据等异常情况,则对该子数据库的初始优先等级进行降一级,即1-1=0,则子数据库A的优先等级变成0级。
其中,计算机设备得到每个子数据库的剩余存储容量和优先等级后,可以根据每个子数据库的剩余存储容量和优先等级,确定每个子数据库的备选评分。具体的,计算机设备可以根据每个子数据库的剩余存储容量确定每个子数据库的存储评分,即剩余存储容量越高,则对应的存储评分越高;剩余存储容量越低,则对应的存储评分越低。计算机设备得到每个子数据库的存储评分后,可以获取每个子数据库的存储评分与存储加权系数的第一乘积,获取每个子数据库的优先等级与等级加权系数的第二乘积,对该第一乘积和第二乘积进行求和,得到每个子数据库的备选评分。计算机设备可以将M个子数据库中备选评分最高的子数据库,确定目标子数据库。
可选的,计算机设备从M个子数据库中选择目标子数据库的具体方式可以包括:计算机设备可以获取M个子数据库中每个子数据库分别对应的地址信息,根据每个子数据库的地址信息确定每个子数据库的存储容量,将M个子数据库中存储容量最大所对应的子数据库,确定为目标子数据库。
可选的,计算机设备从M个子数据库中选择目标子数据库的具体方式可以包括:计算机设备可以获取M个子数据库中每个子数据库分别对应的运行状态数据,根据每个子数据库对应的运行状态确定每个子数据库分别对应的优先等级。计算机设备可以确定每个子数据库的初始优先等级,如若在子数据库的运行状态数据中检测到子数据库发生卡顿、丢失数据、数据处理速度迟缓等情况,则对子数据库的优先等级进行减级。若在子数据库的运行状态数据中没有检测子数据库发生卡顿、丢失数据、数据处理速度迟缓的情况,则对子数据库的优先等级进行升级。计算机设备得到每个子数据库的优先等级后,可以将M个子数据库中优先等级最高所对应的子数据库,确定为目标子数据库。
可选的,计算机设备从M个子数据库中选择目标子数据库的具体方式可以包括:获取M个子数据库中每个子数据库分别对应的运行日志数据,获取原始主数据库的运行日志数据。获取每个子数据库分别对应的运行日志数据和原始主数据库的运行日志数据之间的数据相似度,将最大的数据相似度所对应的子数据库确定为目标子数据库。
具体的,计算机设备可以获取M个子数据库中每个子数据库分别对应的运行日志数据,以及获取原始主数据库的运行日志数据。其中,计算机设备可以从目标数据库系统的日志文件中,根据原始主数据库的库标识,查询原始主数据的运行日志数据。其中,计算机设备可以从目标数据库系统的日志文件中,根据M个子数据库中每个子数据库的库标识,查询每个子数据库的运行日志数据。具体的,计算机设备可以获取每个子数据库分别对应的运行日志数据和原始主数据库的运行日志数据之间的数据相似度,将M个子数据库中数据相似度最大的子数据库,确定为目标子数据库。在M个子数据库中,查找与原始主数据库中的数据最相似度的子数据库,这样,可以确保原始主数据库被替换后,原始主数据库中的数据不变,避免原始数据库的数据处理业务迁移到目标子数据库中后,数据发生了改变,影响业务处理。
可选的,业务处理参数包括原始主数据库接收待处理业务数据的虚拟地址信息,计算机设备从M个子数据库中确定目标子数据库后,可以根据原始主数据库的业务处理参数,将目标子数据库配置为目标主数据库。计算机设备根据业务处理参数将目标子数据库配置为目标主数据库的具体方式可以包括:获取原始主数据库的虚拟地址信息,获取目标子数据库的逻辑地址信息和物理地址信息。采用虚拟地址信息替换目标子数据库的逻辑地址信息,并构建虚拟地址信息与目标子数据库的物理地址信息之间的对应关系。通过目标子数据库的虚拟地址信息将原始主数据库需处理的业务数据迁移至目标子数据库,得到目标主数据库。
具体的,原始主数据库的业务处理参数包括原始主数据库接收待处理业务数据的虚拟地址信息,计算机设备可以从业务处理参数中获取原始主数据库的虚拟地址信息,原始主数据库具有一个真实地址信息和虚拟地址信息,该真实地址信息和虚拟地址信息均为逻辑地址信息,通过真实地址信息和虚拟地址信息均可以连接到原始主数据库,即与原始主数据库进行通信(即数据交互)。当原始主数据库正常运行时,该真实地址信息和虚拟地址信息均对应一个物理地址信息,该物理地址信息是指网卡物理地址存储器中存储单元对应实际地址,与逻辑地址相对应,它是指在数据传输时,发出数据的电脑和接收数据的主机的地址。逻辑地址信息是指在有地址变换功能的计算机中,访内指令给出的地址(操作数),是机器语言指令中,用来指定一个操作数或是一条指令的地址。
其中,计算机设备可以获取目标子数据库的逻辑地址信息和物理地址信息,采用原始主数据库中的虚拟地址信息替换目标子数据库的逻辑地址信息,即将原始主数据库的虚拟地址信息确定为目标子数据库原来的逻辑地址信息,作为目标子数据库的新的逻辑地址信息,这样,通过其他子数据库通过虚拟地址信息可以与目标子数据库接连。计算机设备可以构建该虚拟地址信息与目标子数据库的物理地址信息之间的对应关系,通过目标子数据库的虚拟地址信息,将原始主数据库需处理的业务数据迁移到目标子数据库中,得到目标主数据库。计算机设备构建虚拟地址信息与目标子数据库的逻辑地址信息之间的对应关系后,其他子数据库可以通过虚拟地址信息与目标子数据库连接,并可以通过目标子数据库的虚拟地址信息,将原始主数据库需处理的业务数据迁移到目标子数据库,得到目标主数据库。这样,将目标子数据库配置成目标主数据库后,目标主数据库根据虚拟地址信息执行原始主数据库需进行的业务处理,并将业务处理所得到的数据存储至目标主数据库的物理地址信息所对应的内存中,以此对目标数据库系统中原始主数据库的故障进行转移,提高目标数据库系统的高可用性。其中,将目标子数据库配置目标主数据库后,目标主数据库依然保留目标子数据库的业务处理能力,依然可以进行配置之间的业务处理。
S105,若检测到原始主数据库的故障消除,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。
具体的,计算机设备检测到原始主数据库发生故障后,可以输出提示信息,如邮件、电话告警、短信或者即时通信发送消息等方式,通知管理人员对原始主数据库的故障进行查看和维修。或者,计算机设备可以通过调用原始主数据库的主数据库重启脚本,对原始主数据库进行重新启动。若计算机设备检测到原始主数据库的故障消除,则可以将原始主数据库确定为更新子数据库,即将原始主数据库作为目标数据库系统中的子数据库,复制主数据库所接收到的数据进行备份。计算机设备可以采用目标主数据库替换目标数据库系统中的初始主从关联关系中的原始主数据库,即将目标主数据库取代初始主从关系中的原始主数据库,作为新的主数据库,并建立目标主数据库与目标数据库系统中M个子数据库之间的主从关系,即由目标主数据库执行原始主数据库所需处理的业务数据,由多个子数据库复制目标主数据库所接受到的数据。其中,当计算机设备检测到原始主数据库的故障消除后,可以将原始主数据库作为更新子数据库,将该更新子数据库作为一个子数据库,并构建更新子数据库与目标主数据库之间的主从关系,得到目标主从关联关系。这样,可以对目标数据库系统的故障进行检测和转移,同时,可以保持目标数据库系统中的主从复制机制的高可用性,即目标数据库系统中的主从复制架构并不会因为主数据库的故障而不可用。同时,可以确保目标数据库系统中的原始主数据库发生故障时,有充足的子数据库可供选择,提高故障转移的效率。
可选的,计算机设备根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系的具体方式可以包括:采用目标主数据库替换初始主从关联关系中的原始主数据库。构建目标主数据库与更新子数据库之间的主从关系,得到目标主从关联关系。
具体的,计算机设备采用目标主数据库替换初始主从关联关系中的原始主数据库,即将目标主数据库作为目标数据库系统中的新的主数据库,进而取代发生故障的原始主数据库,实现对目标数据库系统进行故障转移,确保目标数据库系统的高可用性。计算机设备可以将故障消除的原始主数据库作为更新子数据库,即将原始主数据库作为子数据库,构建该更新子数据库与目标主数据库之间的主从关系,得到目标主从关联关系。这样,可以使更新子数据库执行子数据库的业务处理,复制存储目标主数据库所接收到的数据,同时,也可以保证目标数据库系统的主从复制架构是高可用的,即并不会因为数据库发生故障就对数据库进行丢弃,而是当原始主数据库发生故障,可以将原始主数据库所需处理的业务数据转移到新的目标主数据库,进而实现对目标数据库系统进行故障转移。同时,可以将故障消除的原始主数据库作为更新子数据库,保证目标主数据库系统中有充足的子数据库作为转移的备选数据库,从而保证了在主从发生切换后,依然可以保证主从复制架构的高可用性,提高了对目标数据库系统的故障进行转移的效率。其中,当目标主数据库发生故障时,可以将更新子数据库(即原始主数据库)作为目标子数据库,将目标主数据库所需处理的业务数据转移到目标子数据库中,这样,便可以将业务处理恢复到原来的原始主数据库。可见,通过本方案可以实现目标数据库系统的故障转移(即自动消除目标数据库系统的故障)、自动业务切换(即自动将发生故障的原始主数据库的业务转移到目标主数据库),从而保证业务处理的连续性,同时,也极大缩短目标数据库系统故障消除的时间。
在本申请实施例中,通过获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障,若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数。进一步通过根据业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库。也就是说,在目标数据库系统未发生故障时,需要进一步检测原始数据库是否发生故障,避免遗漏检测出原始主数据库的故障,提高故障检测的准确度。然后,从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库,可实现将原始主数据库需要处理的业务转移至目标主数据库,可确保目标数据库系统的高可用性。同时,若检测到原始主数据库的故障消除,表明原始主数据库的故障已经恢复,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。也就是说,原始主数据库的故障恢复时,只需要将原始主库更新为子数据库,不需要再次将原始主库更新为主数据库,可减少业务的转移,同时也确保目标数据库系统中有充足的子数据库,进而保证目标数据库系统的主从复制机制的高可用性,也确保目标数据库系统的高可用性。这样,可以对目标数据库系统的故障进行检测和转移,同时可以保持目标数据库系统中的主从复制机制的高可用性,即目标数据库系统中的主从复制架构并不会因为主数据库的故障而不可用,也可以确保目标数据库系统中的原始主数据库发生故障时,有充足的子数据库可供选择,提高故障转移的效率,确保目标数据库系统的高可用性。可见,通过本方案,可以实现目标数据库系统的读写分离的同时,也支持目标数据库系统发生故障后自动故障转移、自动回复主从同步的机制,可以确定目标数据库系统中数据的安全性和准确性。
请参见图2,图2是本申请实施例提供的一种故障转移方法的流程示意图。该故障转移方法可由计算机设备执行,该计算机设备可以为服务器(如上述图1中的服务器10),或者用户终端(如上述图1的用户终端集群中的任一用户终端),或者为服务器和用户终端组成的系统,本申请对此不做限定。如图2所示,该故障转移方法可以包括步骤S201-S209。
S201,获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障。
S202,若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数。
S203,根据原始主数据库的业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库。
S204,从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库。
S205,若检测到原始主数据库的故障消除,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。
具体的,本申请实施例中步骤S201-S205的具体内容可以参见上述图2中步骤S101-S105的内容,本申请实施例在此不再赘述。
S206,分别检测目标主从关系中的M个子数据库是否发生故障。
具体的,计算机设备可以实时合作和周期性的检测目标主从关系中的M个子数据库是否发生故障。其中,计算机设备可以获取M个子数据库分别对应的子数据库故障检测脚本,调用该子数据库故障检测脚本检测M个子数据库中每个子数据是否发生故障。其中,计算机设备可以获取M个子数据库分别对应的运行日志数据,根据每个子数据库的运行日志数据中检测每个子数据库是否从目标数据库系统中的目标主数据库中复制数据。若根据每个子数据库的运行日志数据检测到子数据库没有从目标主数据库中复制数据,则可以确定子数据库发生故障。若根据每个子数据库的运行日志数据检测到子数据库存在那个目标主数据库中复制数据的记录,则可以确定子数据库未发生故障。
S207,若检测到子数据库Mi发生故障,则获取子数据库Mi对应的子数据库重启脚本,并执行子数据库重启脚本。
具体的,若计算机设备检测到子数据库Mi发生故障,则可以获取子数据库Mi对应的子数据库重启脚本,并执行该子数据库重启脚本,对子数据库Mi进行重启。由于存在子数据库在运行的过程,受到一些干扰因素的影响而暂停运行或者终止运行,对其重启后,可以重新恢复正常。子数据库Mi属于M个子数据库,i为小于或者等于M的正整数,如i可以取值为1,2,3…。
S208,在子数据库重启脚本执行完毕后,再次检测子数据库Mi是否发生故障。
具体的,计算机设备可以在子数据库重启脚本执行完毕后,再次检测该子数据库Mi是否发生故障,若计算机设备再次检测子数据库Mi未发生故障,则可以等下一个周期再来检测该子数据库Mi是否发生故障。
S209,若再次检测到子数据库Mi发生故障,则输出提示信息,以提示管理人员对子数据库Mi进行维护。
若计算机设备再次检测到子数据库Mi发生故障,则可以输出提示信息,以提示管理人员对子数据库Mi的故障进行查看和维护。例如,当计算机设备检测到子数据库Mi发生故障时,则可以通过邮件、电话告警、短信或者即时通信发送消息等方式,通知管理人员对子数据库Mi的故障进行查看和维修。当计算机设备检测到子数据库Mi的故障消除,则将该子数据库Mi加入目标数据库系统的目标主从关联关系中,确保目标数据库系统的主从复制架构的高可用性,同时也确定目标数据库系统的高可用性。可见,通过本方案,可以实现目标数据库系统的读写分离的同时,也支持目标数据库系统发生故障后自动故障转移、自动回复主从同步的机制,可以确定目标数据库系统中数据的安全性和准确性。同时,可以多维度对目标数据库系统中的故障进行检测和转移,提高故障转移的效率,确保目标数据库系统的主从复制架构的高可用性,也确保目标数据库系统的高可用性。
通过获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障,若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数。进一步通过根据业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库。也就是说,在目标数据库系统未发生故障时,需要进一步检测原始数据库是否发生故障,避免遗漏检测出原始主数据库的故障,提高故障检测的准确度。然后,从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库,可实现将原始主数据库需要处理的业务转移至目标主数据库,可确保目标数据库系统的高可用性。同时,若检测到原始主数据库的故障消除,表明原始主数据库的故障已经恢复,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。也就是说,原始主数据库的故障恢复时,只需要将原始主库更新为子数据库,不需要再次将原始主库更新为主数据库,可减少业务的转移,同时也确保目标数据库系统中有充足的子数据库,进而保证目标数据库系统的主从复制机制的高可用性,也确保目标数据库系统的高可用性。这样,可以对目标数据库系统的故障进行检测和转移,同时可以保持目标数据库系统中的主从复制机制的高可用性,即目标数据库系统中的主从复制架构并不会因为主数据库的故障而不可用,也可以确保目标数据库系统中的原始主数据库发生故障时,有充足的子数据库可供选择,提高故障转移的效率,确保目标数据库系统的高可用性。另外,本方案从多维度检测目标数据库系统是否发生故障(即检测目标数据库系统是否发生故障,检测原始主数据库是否发生故障,检测子数据库是否发生故障),提高目标数据库系统中故障检测的准确性。另外,本申请可以实现目标数据库系统的读写分离的同时,也支持目标数据库系统发生故障后自动故障转移、自动回复主从同步的机制,可以确定目标数据库系统中数据的安全性和准确性。
请参见图4,图4是本申请实施例提供的一种故障转移装置的结构示意图。上述故障转移装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该故障转移装置为一个应用软件;该故障转移装置可以用于执行本申请实施例提供的故障转移方法中的相应步骤。如图4所示,该故障转移装置可以包括:第一检测模块11、第一获取模块12、第二获取模块13、配置模块14、更新模块15、第二检测模块16、执行模块17、第三检测模块18以及输出模块19。
第一检测模块11,用于获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障;
第一获取模块12,用于若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数;
第二获取模块13,用于根据原始主数据库的业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库;M为正整数;
配置模块14,用于从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库;
更新模块15,用于若检测到原始主数据库的故障消除,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。
其中,第一检测模块11包括:
检测单元1101,用于检测运行日志数据中是否存在目标数据库系统中的管理进程的运行数据;
第一确定单元1102,用于若运行日志数据中存在管理进程的运行数据,则确定目标数据库系统未发生故障;
第二确定单元1103,用于若连续目标次数检测到运行日志数据中不存在管理进程的运行数据,则确定目标数据库系统发生故障。
其中,配置模块14包括:
第一获取单元1401,用于获取M个子数据库中每个子数据库分别对应的地址信息和运行状态数据;
第三确定单元1402,用于根据每个子数据库的地址信息确定每个子数据库的剩余存储容量;
第四确定单元1403,用于根据每个子数据库的运行状态数据确定每个子数据库的优先等级;
第五确定单元1404,用于根据每个子数据库的剩余存储容量和优先等级,确定每个子数据库的备选评分;
第六确定单元1405,用于将最高的备选评分所对应的子数据库确定为目标子数据库。
配置模块14还包括:
第二获取单元1406,用于获取M个子数据库中每个子数据库分别对应的运行日志数据,获取原始主数据库的运行日志数据;
第三获取单元1407,用于获取每个子数据库分别对应的运行日志数据和原始主数据库的运行日志数据之间的数据相似度;
第七确定单元1408,用于将最大的数据相似度所对应的子数据库确定为目标子数据库。
其中,业务处理参数包括原始主数据库接收待处理业务数据的虚拟地址信息;
配置模块14包括:
第四获取单元1409,用于获取原始主数据库的虚拟地址信息,获取目标子数据库的逻辑地址信息和物理地址信息;
构建单元1410,用于采用虚拟地址信息替换目标子数据库的逻辑地址信息,并构建虚拟地址信息与目标子数据库的物理地址信息之间的对应关系;
迁移单元1411,用于通过目标子数据库的虚拟地址信息将原始主数据库需处理的业务数据迁移至目标子数据库,得到目标主数据库。
其中,更新模块15包括:
替换单元1501,用于采用目标主数据库替换初始主从关联关系中的原始主数据库;
第二构建单元1502,用于构建目标主数据库与更新子数据库之间的主从关系,得到目标主从关联关系。
其中,故障转移装置还包括:
第二检测模块16,用于分别检测目标主从关系中的M个子数据库是否发生故障;
执行模块17,用于若检测到子数据库Mi发生故障,则获取子数据库Mi对应的子数据库重启脚本,并执行子数据库重启脚本;子数据库Mi属于M个子数据库,i为小于或者等于M的正整数;
第三检测模块18,用于在子数据库重启脚本执行完毕后,再次检测子数据库Mi是否发生故障;
输出单元19,用于若再次检测到子数据库Mi发生故障,则输出提示信息,以提示管理人员对子数据库Mi进行维护。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图2或者图3所对应实施例中对故障转移方法的描述,在此不再赘述。
通过获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障,若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数。进一步通过根据业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库。也就是说,在目标数据库系统未发生故障时,需要进一步检测原始数据库是否发生故障,避免遗漏检测出原始主数据库的故障,提高故障检测的准确度。然后,从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库,可实现将原始主数据库需要处理的业务转移至目标主数据库,可确保目标数据库系统的高可用性。同时,若检测到原始主数据库的故障消除,表明原始主数据库的故障已经恢复,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。也就是说,原始主数据库的故障恢复时,只需要将原始主库更新为子数据库,不需要再次将原始主库更新为主数据库,可减少业务的转移,同时也确保目标数据库系统中有充足的子数据库,进而保证目标数据库系统的主从复制机制的高可用性,也确保目标数据库系统的高可用性。这样,可以对目标数据库系统的故障进行检测和转移,同时可以保持目标数据库系统中的主从复制机制的高可用性,即目标数据库系统中的主从复制架构并不会因为主数据库的故障而不可用,也可以确保目标数据库系统中的原始主数据库发生故障时,有充足的子数据库可供选择,提高故障转移的效率,确保目标数据库系统的高可用性。另外,本方案从多维度检测目标数据库系统是否发生故障(即检测目标数据库系统是否发生故障,检测原始主数据库是否发生故障,检测子数据库是否发生故障),提高目标数据库系统中故障检测的准确性。另外,本申请可以实现目标数据库系统的读写分离的同时,也支持目标数据库系统发生故障后自动故障转移、自动回复主从同步的机制,可以确定目标数据库系统中数据的安全性和准确性。
请参见图5,图5是本申请实施例提供的一种计算机设备的结构示意图。如图5所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:目标用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,目标用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选目标用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图5所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、目标用户接口模块以及设备控制应用程序。
在图5所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而目标用户接口1003主要用于为目标用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取目标数据库系统的运行日志数据,根据运行日志数据检测目标数据库系统是否发生故障;
若检测到目标数据库系统未发生故障,则获取目标数据库系统中的原始主数据库,以及原始主数据库的业务处理参数;
根据原始主数据库的业务处理参数检测原始主数据库是否发生故障,若检测到原始主数据库发生故障,则获取与原始主数据库具有初始主从关联关系的M个子数据库;M为正整数;
从M个子数据库中选择出目标子数据库,根据业务处理参数将目标子数据库配置为目标主数据库;
若检测到原始主数据库的故障消除,则将原始主数据库确定为更新子数据库,根据目标主数据库和更新子数据库,对初始主从关联关系进行更新,得到目标主从关联关系。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图2或者图3所对应实施例中对故障转移方法的描述,也可执行前文图4所对应实施例中对故障转移装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的故障转移装置所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图2或者图3所对应实施例中对故障转移方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图2或者图3所对应实施例中对故障转移方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种故障转移方法,其特征在于,包括:
获取目标数据库系统的运行日志数据,根据所述运行日志数据检测所述目标数据库系统是否发生故障;
若检测到所述目标数据库系统未发生故障,则获取所述目标数据库系统中的原始主数据库,以及所述原始主数据库的业务处理参数;
根据所述原始主数据库的业务处理参数检测所述原始主数据库是否发生故障,若检测到所述原始主数据库发生故障,则获取与所述原始主数据库具有初始主从关联关系的M个子数据库;M为正整数;
从所述M个子数据库中选择出目标子数据库,根据所述业务处理参数将所述目标子数据库配置为目标主数据库;
若检测到所述原始主数据库的故障消除,则将所述原始主数据库确定为更新子数据库,根据所述目标主数据库和所述更新子数据库,对所述初始主从关联关系进行更新,得到目标主从关联关系。
2.根据权利要求1所述的方法,其特征在于,所述根据所述运行日志数据检测所述目标数据库系统是否发生故障,包括:
检测所述运行日志数据中是否存在目标数据库系统中的管理进程的运行数据;
若所述运行日志数据中存在所述管理进程的运行数据,则确定所述目标数据库系统未发生故障;
若连续目标次数检测到所述运行日志数据中不存在所述管理进程的运行数据,则确定所述目标数据库系统发生故障。
3.根据权利要求1所述的方法,其特征在于,所述从所述M个子数据库中选择目标子数据库,包括:
获取所述M个子数据库中每个子数据库分别对应的地址信息和运行状态数据;
根据所述每个子数据库的地址信息确定所述每个子数据库的剩余存储容量;
根据所述每个子数据库的运行状态数据确定所述每个子数据库的优先等级;
根据所述每个子数据库的剩余存储容量和优先等级,确定所述每个子数据库的备选评分;
将最高的备选评分所对应的子数据库确定为目标子数据库。
4.根据权利要求1所述的方法,其特征在于,所述从所述M个子数据库中选择目标子数据库,包括:
获取所述M个子数据库中每个子数据库分别对应的运行日志数据,获取所述原始主数据库的运行日志数据;
获取所述每个子数据库分别对应的运行日志数据和所述原始主数据库的运行日志数据之间的数据相似度;
将最大的数据相似度所对应的子数据库确定为目标子数据库。
5.根据权利要求1所述的方法,其特征在于,所述业务处理参数包括所述原始主数据库接收待处理业务数据的虚拟地址信息;
所述根据所述业务处理参数将所述目标子数据库配置为目标主数据库,包括:
获取所述原始主数据库的虚拟地址信息,获取所述目标子数据库的逻辑地址信息和物理地址信息;
采用所述虚拟地址信息替换所述目标子数据库的逻辑地址信息,并构建所述虚拟地址信息与所述目标子数据库的物理地址信息之间的对应关系;
通过所述目标子数据库的虚拟地址信息将所述原始主数据库需处理的业务数据迁移至所述目标子数据库,得到目标主数据库。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标主数据库和所述更新子数据库,对所述初始主从关联关系进行更新,得到目标主从关联关系,包括:
采用所述目标主数据库替换所述初始主从关联关系中的原始主数据库;
构建所述目标主数据库与所述更新子数据库之间的主从关系,得到目标主从关联关系。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别检测所述目标主从关系中的M个子数据库是否发生故障;
若检测到子数据库Mi发生故障,则获取所述子数据库Mi对应的子数据库重启脚本,并执行所述子数据库重启脚本;所述子数据库Mi属于所述M个子数据库,i为小于或者等于M的正整数;
在所述子数据库重启脚本执行完毕后,再次检测所述子数据库Mi是否发生故障;
若再次检测到所述子数据库Mi发生故障,则输出提示信息,以提示管理人员对所述子数据库Mi进行维护。
8.一种故障转移装置,其特征在于,包括:
检测模块,用于获取目标数据库系统的运行日志数据,根据所述运行日志数据检测所述目标数据库系统是否发生故障;
第一获取模块,用于若检测到所述目标数据库系统未发生故障,则获取所述目标数据库系统中的原始主数据库,以及所述原始主数据库的业务处理参数;
第二获取模块,用于根据所述原始主数据库的业务处理参数检测所述原始主数据库是否发生故障,若检测到所述原始主数据库发生故障,则获取与所述原始主数据库具有初始主从关联关系的M个子数据库;M为正整数;
配置模块,用于从所述M个子数据库中选择出目标子数据库,根据所述业务处理参数将所述目标子数据库配置为目标主数据库;
更新模块,用于若检测到所述原始主数据库的故障消除,则将所述原始主数据库确定为更新子数据库,根据所述目标主数据库和所述更新子数据库,对所述初始主从关联关系进行更新,得到目标主从关联关系。
9.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-7任一项所述的方法。
CN202210029870.6A 2022-01-12 2022-01-12 故障转移方法、装置、设备及存储介质 Pending CN114385592A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210029870.6A CN114385592A (zh) 2022-01-12 2022-01-12 故障转移方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210029870.6A CN114385592A (zh) 2022-01-12 2022-01-12 故障转移方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114385592A true CN114385592A (zh) 2022-04-22

Family

ID=81202516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210029870.6A Pending CN114385592A (zh) 2022-01-12 2022-01-12 故障转移方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114385592A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984569A (zh) * 2017-06-05 2018-12-11 中兴通讯股份有限公司 数据库切换方法、系统和计算机可读存储介质
CN110019484A (zh) * 2018-01-04 2019-07-16 腾讯科技(深圳)有限公司 数据库系统及实现方法、管理设备、数据接口设备和介质
CN111367885A (zh) * 2020-02-28 2020-07-03 京东方科技集团股份有限公司 数据库管理系统、方法、存储介质及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984569A (zh) * 2017-06-05 2018-12-11 中兴通讯股份有限公司 数据库切换方法、系统和计算机可读存储介质
CN110019484A (zh) * 2018-01-04 2019-07-16 腾讯科技(深圳)有限公司 数据库系统及实现方法、管理设备、数据接口设备和介质
CN111367885A (zh) * 2020-02-28 2020-07-03 京东方科技集团股份有限公司 数据库管理系统、方法、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US7802128B2 (en) Method to avoid continuous application failovers in a cluster
CN107480014B (zh) 一种高可用设备切换方法及装置
US8788455B2 (en) Disaster recovery
CN112131237B (zh) 数据同步方法、装置、设备及计算机可读介质
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
US9189348B2 (en) High availability database management system and database management method using same
US20150213100A1 (en) Data synchronization method and system
CN111327467A (zh) 一种服务器系统及其容灾备份方法和相关设备
CN106339278A (zh) 一种网络文件系统的数据备份及恢复方法
CN111124755A (zh) 集群节点的故障恢复方法、装置、电子设备及存储介质
US7730029B2 (en) System and method of fault tolerant reconciliation for control card redundancy
CN113986450A (zh) 一种虚拟机备份方法及装置
CN118018463A (zh) 一种故障处理方法、装置、设备及可读存储介质
CN115686951A (zh) 一种数据库服务器的故障处理方法和装置
CN116389233B (zh) 容器云管理平台主备切换系统、方法、装置和计算机设备
US10728326B2 (en) Method and system for high availability topology for master-slave data systems with low write traffic
CN111752892B (zh) 分布式文件系统及其实现方法、管理系统、设备及介质
CN113535430B (zh) 应用数据读写分离方法、装置、计算机设备和存储介质
CN114385592A (zh) 故障转移方法、装置、设备及存储介质
CN114490188A (zh) 同步主备数据库的方法及装置
CN114442947B (zh) 跨域桶删除方法、系统、终端及存储介质
CN117395263B (zh) 一种数据同步方法、装置、设备和存储介质
US12007964B2 (en) Maintaining ongoing transaction information of a database system in an external data store for processing unsaved transactions in response to designated events
WO2024061219A1 (zh) 一种信息更新方法、装置、设备、存储介质及程序产品
CN107707402B (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