发明内容
基于此,有必要针对上述技术问题,提供一种能够解决数据库实现高可用较为复杂的问题的实现数据库高可用的方法、系统、计算机设备和存储介质。
一种实现数据库高可用的方法,所述方法包括:
通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个;
在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点;
在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
上述实现数据库高可用的方法,通过多个判断逻辑对主节点中的主数据库进行检测,如果检测到判断逻辑中的每一项故障,判断主数据故障,从而确定从节点中的备用数据库作为切换对象,在切换对象运行正常时,将备用对象切换为主数据库,并将从节点切换为主节点。本发明实施例,通过判断逻辑以及切换逻辑,使主数据库高可用的实现更加简单。
在其中一个实施例中,还包括:在预设时间内向所述主数据库发送多次心跳检测指令,在接收到连续多次的主数据库运行故障的信息时,确定所述心跳检测的检测结果为故障;和/或,检测所述主数据库的连接数是否正常,若否,则确定所述连接检测的检测结果为故障;和/或,检测所述主数据库的监听进程是否工作正常,若是,则确定所述监听检测的检测结果为故障;若否,重启所述监听进程;其中,所述监听进程用于获取所述主数据库的运行状态。
在其中一个实施例中,还包括:获取从节点中各个可用的备用数据库的系统修订号,确定所述可用的备用数据库中所述系统修订号最大的备用数据库为所述切换对象。
在其中一个实施例中,还包括:关闭所述主数据库以及所述主数据库的远程访问进程,将所述备用对象切换为主数据库,重启所述备用对象。
在其中一个实施例中,还包括:接收触发功能选项的指令,判断所述功能选项是否为进入主节点中的主数据库,若是,则检测主节点中主数据库的运行状态;其中,所述功能选项包括:监控功能、进入主节点中的主数据库以及进入从节点中的备用数据库中的任意一个。
在其中一个实施例中,还包括:接收触发功能选项的指令,判断所述功能选项是否为进入主节点中的主数据库,若是,检测主节点中主数据库的运行状态,在所述主数据库故障时,则通过多个判断逻辑对主数据库进行检测;其中,所述日志文件部署在所述主节点和所述从节点中,所述日志文件用于对应存储对应主数据库和备用数据库的运行记录的信息;若否,则确定对应主节点或从节点的日志文件输出异常;若是,根据所述日志文件监测所述主节点中主数据库以及所述从节点中备用数据库的运行状态。
在其中一个实施例中,还包括:获取预先设置的监控变量的返回值,根据所述返回值检测所述主节点以及所述从节点是否正常,并将检测结果输出至对应的主节点的日志文件和/或从节点的日志文件中;其中,所述日志文件部署在所述主节点和所述从节点中,所述日志文件用于对应存储对应主数据库和备用数据库的运行记录的信息。
在其中一个实施例中,还包括:检测所述主数据库的运行状态,若主数据库正常运行,则生成主数据库正常的运行记录,并将所述主数据库正常的运行记录存入所述主数据库的日志文件中。
在其中一个实施例中,还包括:将主节点的日志文件和/或从节点的日志文件通过短信接口或者邮件接口发送至目标对象。
在其中一个实施例中,还包括:检测所述切换对象的运行状态是否为等待记录,若是,则判定所述切换对象的运行状态正常。
在其中一个实施例中,还包括:检测所述切换对象中是否配置有所述日志文件;若所述切换对象中没有所述日志文件,则在所述切换对象对应的从节点中生成新的日志文件。
一种实现数据库高可用的系统,所述系统包括:
主数据库状态检测模块,用于通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个;
备用数据库状态检测模块,用于在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点;
切换模块,用于在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个;
在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点;
在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个;
在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点;
在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
上述实现数据库高可用的方法、系统、计算机设备和存储介质,判断逻辑以及切换逻辑,简单的实现主数据库高可用。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的实现数据库高可用的方法,可以应用于如图1所示的应用环境中。其中,高可用框架100中包括有主节点102,主节点102用于部署主数据库,根据业务场景,主节点102可以是一个,也可以是多个。高可用框架100中包括有从节点104,从节点104用于部署从节点,每个主节点102至少配置有一个从节点104。数据库管理平台200可以管理高可用架构100,并与高可用架构100链接。
具体的,根据数据库的高可用需求,可以将主数据库部署在高可用架构100的主节点102中,备用数据库部署在从节点104中。高可用架构100中还包括有多个功能脚本,功能脚本可以实现判断逻辑的功能,数据管理平台200作为高可用架构100的入口,可以管理以上功能脚本。高可用架构100的相应配置均通过配置文件管理,通过修改配置文件就可以修改节点中数据库的相应配置,同样,通过检测配置文件中参数,也可以获取当前数据库的配置状态。
另外,还可以设置相应的功能脚本,使数据库的运行数据在数据管理平台200中可视化展现。
其中,主数据库和备用数据库均可以是Oracle数据库等,高可用架构100以及数据管理平台200均可以通过程序语言实现。
在一个实施例中,如图2所示,提供了一种实现数据库高可用的方法,以该方法应用于图1中的高可用架构100为例进行说明,包括以下步骤:
步骤202,通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个。
其中,心跳检测表示发送数据请求的指令,主数据库表示一个数据库系统中参与主要数据库功能的数据库。
步骤204,在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点。
在本步骤中,各个判断逻辑可以依次进行,在判断逻辑检测故障时,判定需要切换主数据库。各个判断逻辑也可以同时进行,在出现所有判断逻辑检测故障时,判定需要切换主数据库。
步骤206,在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
上述实现数据库高可用的方法,通过对个判断逻辑对主节点中的主数据库进行检测,如果判断逻辑的检测结果均为故障,就判断主数据库故障,从而确定从节点中的备用数据库作为切换对象,在切换对象运行正常时,将备用对象切换为主数据库,并将从节点切换为主节点。本发明实施例,通过判断逻辑以及切换逻辑,简单的实现主数据库高可用。
在一实施例中,对于步骤202,通过心跳检测对主节点中主数据库进行检测可以包括:在预设时间内向所述主数据库发送多次心跳检测指令,在接收到连续多次的主数据库运行故障的信息时,确定所述心跳检测的检测结果为故障。
具体的,心跳检测指令可以是访问主数据库的访问请求,已查看是否能接收到主数据库的反馈,可以在预设时间向主数据库发送3次访问请求,然后检测3次是否均为得到主数据库的反馈,若是,则确定主数据库故障。值得说明的是,本实施例并不限于3次,还可以是其他例如4次、5次等。
在一实施例中,对于步骤202,通过连接检测对主节点中主数据库进行检测可以是:检测所述主数据库的连接数是否正常,若否,则确定所述连接检测的检测结果为故障。
本实施例中,连接数表示连接进程数,一般而言,正常的数据库,其连接进程数是确定的,若检测到连接进程数异常,就可以大致判断主数据库故障。
在一实施例中,对于步骤202,通过监听检测对主节点中主数据库进行检测可以包括:检测所述主数据库的监听进程是否工作正常,若是,则确定所述监听检测的检测结果为故障;若否,重启所述监听进程;其中,所述监听进程用于获取所述主数据库的运行状态。
本实施例中,监听进程是外部设备或者外部程序与主数据库建立的连接,监听进行用于采集主数据库当前的运行状态,在外部设备或者外部程序收集到主数据库故障的信息时,就在数据库管理平台中判定主数据库故障,因此,若数据库故障的判定是由于监听进程故障导致的,那么不需要去切换主数据库,只需要重新启动监听进程即可。如果监听进程也是正常,则判定需要切换主数据库。
综上三种判定逻辑,在一实施例中,如图3所示,可以按照如下流程对主节点中主数据库进行检测,具体如下:
S301,是否接收到连续多次的主数据库运行故障的信息,若是,则跳转到步骤S302,若否,则结束。
S302,主数据库的连接进程数是否正常,若是,则跳转到步骤S303,若否,则结束。
S303,主数据库的监听进程是否正常,若是,则确定需要切换主数据库,若是,则重启监听进程,结束。
本发明实施例,给出对主数据库进行检测的具体流程,通过以上判断逻辑,可以自动对主数据库的运行状态进行判定,以及可以确定是否需要切换至主数据库,从而实现主数据库的高可用。
在一实施例中,上述判断逻辑可以由failover机制进行判断,可以通过failover机制对主数据库进行访问,以及通过failover参数,检查连接进程数。以及通过failover参数检测主数据库的监听进程是否正常。
在一实施例中,对于步骤204,确定一个从节点中的备用数据库作为切换对象可以包括:获取从节点中各个可用的备用数据库的系统修订号(System Change Number,SCN),确定所述可用的备用数据库中所述系统修订号最大的备用数据库为所述切换对象。
具体的,可以通过检测高可用架构中各个备用数据库的运行状态,判断出可用的备用数据库。
另外,从节点的系统修订号是在每次系统更新时,进行累加的一个数据,系统修订号越大,说明备用数据库的版本更新,更适合作为切换对象。因此,在确定切换对象时,可以根据系统修订号确定切换对象。
在另一实施例中,在进行主数据库与备用数据库的切换时,可以关闭所述主数据库以及所述主数据库的远程访问进程,将所述备用对象切换为主数据库,重启所述备用对象。
在一实施例中,如图4所示,提供另一种实现数据库高可用的方法的示意性流程图,具体如下:
S401,接收触发功能选项的指令。
其中,功能选项包括:监控功能、进入主节点中的主数据库以及进入从节点中的备用数据库中的任意一个。
S402,判断功能选项的类型,根据功能选项的类型确定跳转到S403、S404和S405中的任意一个。
S403,功能选项为监控功能,获取预先设置的监控变量的返回值,根据所述返回值检测所述主节点以及所述从节点是否正常,并将检测结果输出至对应的主节点的日志文件和/或从节点的日志文件中。
本步骤中,日志文件部署在所述主节点和所述从节点中,值得说明的是,每个节点均部署其对应的日志文件,其日志文件只记录对应数据库的运行记录,日志文件用于存储对应主数据库或备用数据库的运行记录的信息。
本步骤可以通过返回值,判断各个从节点以及主节点的运行状态,然后通过日志文件,就可以直观的监控各个从节点以及主节点的运行状态。
S404,功能选项为进入主节点中的主数据库,检测所述主数据库的运行状态,若主数据库正常运行,则生成主数据库正常的运行记录,并将所述主数据库正常的运行记录存入所述主数据库的日志文件中。
一般而言,通过监控功能,可以知道主数据库以及备用数据库的运行状态,在监控功能有异常报告时,可以知道具体是哪一个数据库出现的故障,因此可以通过进入主节点的主数据库或进入从节点的备用数据库检查是否异常。
S405,功能选项为进入从节点中的备用数据库,检测所述备用数据库的运行状态,在所述备用数据库的运行状态异常时,生成所述备用数据库故障的运行记录,并将所述备用数据库故障的运行记录存入所述从节点对应的日志文件中。在所述备用数据库的运行状态正常时,生成所述备用库正常的运行记录,并将所述备用数据库正常的运行记录存入所述从节点对应的日志文件中。
上述实施例,通过设置功能选项,可以实现更加便捷的数据库高可用,同时也可以便于数据库的管理,例如,在监控到备用数据库故障时,通过后台维护,及时对备用数据库进行修复,因此在实现数据库高可用时更加稳定。
在一应用场景中,可以通过在数据库管理平台中设置启动脚本,可以对象选择相应的功能选项,也可以通过可视化脚本,实现日志文件中数据的可视化,便于数据库的监控以及管理。
在另一应用场景下,在生成日志文件后,可以将日志文件通过短信接口或者邮件接口发送给相应的目标对象。具体的,目标对象可以是相应的运维人员或管理员,短信接口可以采用短信网关,即,将高可用架构连接至短信网关,然后将日志文件推送至数据库的发送表,待短信网关取数发送。另外邮件接口可以采用邮件发送插件,如:MAIL X,来实现邮件的发送功能。
基于上述实施例,在一实施例中,在检测切换对象的运行状态,需要判断切换对象中的日志文件是否处于等待记录状态,若是,则判定切换对象的运行状态正常,可以开始备用数据库向主数据库的转换。
在另一实施例中,在检测切换对象的运行对象是否正常之前,还需要检测所述切换对象中是否配置有所述日志文件;若所述切换对象中没有所述日志文件,则在所述切换对象对应的从节点中生成新的日志文件。
以上实施例中,在进行备用数据库向主数据库转换时,也可以通过failover机制实现。
另外,在一实施例中,重启切换对象之后,需要检查新主数据库的状态,具体的,检测新主数据库的状态是否为READ WRITE,若是,通知主数据库切换成功,若否,则切换失败,可以线下查找原因,并再次进行failover,以实现主数据库与备用数据库的切换。
在一实施例中,提供一具体实现数据库高可用的方法,具体为:在检测到主数据库异常时,首先需要通过心跳检测,判定主数据库是否能接收到访问请求,然后需要通过连接检测,判断主数据库的连接进程数是否正常,最后通过监听检测,判断主数据库故障是不是监听进程报错,如果监听进程正常,则判定需要切换当前的主数据库,因此首先确定高可用框架中可用的备用数据库,然后获取所有可用的备用数据库的系统修订号,以此确定切换对象,从切换对象访问主数据库,做复查,若主数据库依然故障,则需要判断切换对象中是否有日志文件,没有则需要新建日志文件,通过配置文件检查切换对象的状态,若切换对象的状态为WAIT_FOR_LOG,则开始切换对象向主数据库的切换,数据库切换时,关闭主数据库,以及关闭主数据库的LOCAL=NO的远程访问连接,然后将切换对象切换为主数据库,并重启切换对象,重启之后,检查新主数据库的状态,判断主数据库的运行状态是否为READWRITE,若是,则说明主备数据库切换成功,若否,则说明切换不成功,可以通过线下检测故障原因,以完成主备数据库的切换。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种实现数据库高可用的系统,包括:主数据库状态检测模块501、备用数据库状态检测模块502和切换模块503,其中:
主数据库状态检测模块501,用于通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个。
备用数据库状态检测模块502,用于在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点。
切换模块503,用于在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
在其中一个实施例中,主数据库状态检测模块501还用于在预设时间内向所述主数据库发送多次心跳检测指令,在接收到连续多次的主数据库运行故障的信息时,确定所述心跳检测的检测结果为故障;和/或,通过连接检测对主节点中主数据库进行检测,包括:检测所述主数据库的连接数是否正常,若否,则确定所述连接检测的检测结果为故障;和/或,通过监听检测对主节点中主数据库进行检测,包括:检测所述主数据库的监听进程是否工作正常,若是,则确定所述监听检测的检测结果为故障;若否,重启所述监听进程;其中,所述监听进程用于获取所述主数据库的运行状态。
在其中一个实施例中,备用数据库状态检测模块502还用于获取从节点中各个可用的备用数据库的系统修订号,确定所述可用的备用数据库中所述系统修订号最大的备用数据库为所述切换对象。
在其中一个实施例中,切换模块503还用于关闭所述主数据库以及所述主数据库的远程访问进程,将所述备用对象切换为主数据库,重启所述备用对象。
在其中一个实施例中,还包括功能选择模块,用于接收触发功能选项的指令,判断所述功能选项是否为进入主节点中的主数据库,若是,检测主节点中主数据库的运行状态,在所述主数据库故障时,则通过多个判断逻辑对主数据库进行检测;其中,所述功能选项包括:监控功能、进入主节点中的主数据库以及进入从节点中的备用数据库中的任意一个。
在其中一个实施例中,功能选择模块还用于获取预先设置的监控变量的返回值,根据所述返回值检测所述主节点以及所述从节点是否正常,并将检测结果输出至对应的主节点的日志文件和/或从节点的日志文件中;其中,所述日志文件部署在所述主节点和所述从节点中,所述日志文件用于对应存储对应主数据库和备用数据库的运行记录的信息。
在其中一个实施例中,功能选择模块还用于检测所述备用数据库的运行状态;在所述备用数据库的运行状态异常时,生成所述备用数据库故障的运行记录,并将所述备用数据库故障的运行记录存入所述从节点对应的日志文件中;在所述备用数据库的运行状态正常时,生成所述备用库正常的运行记录,并将所述备用数据库正常的运行记录存入所述从节点对应的日志文件中。
在其中一个实施例中,功能选择模块还用于检测所述主数据库的运行状态,若主数据库正常运行,则生成主数据库正常的运行记录,并将所述主数据库正常的运行记录存入所述主数据库的日志文件中。
在其中一个实施例中,还包括状态反馈模块,用于将主节点的日志文件和/或从节点的日志文件通过短信接口或者邮件接口发送至目标对象。
在其中一个实施例中,备用数据库状态检测模块502还用于检测所述切换对象的运行状态是否为等待记录,若是,则判定所述切换对象的运行状态正常。
在其中一个实施例中,备用数据库状态检测模块502还用于检测所述切换对象中是否配置有所述日志文件;若所述切换对象中没有所述日志文件,则在所述切换对象对应的从节点中生成新的日志文件。
关于实现数据库高可用的系统的具体限定可以参见上文中对于实现数据库高可用的方法的限定,在此不再赘述。上述实现数据库高可用的系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储实现数据库高可用的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种实现数据库高可用的方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个;
在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点;
在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在预设时间内向所述主数据库发送多次心跳检测指令,在接收到连续多次的主数据库运行故障的信息时,确定所述心跳检测的检测结果为故障;和/或,通过连接检测对主节点中主数据库进行检测,包括:检测所述主数据库的连接数是否正常,若否,则确定所述连接检测的检测结果为故障;和/或,通过监听检测对主节点中主数据库进行检测,包括:检测所述主数据库的监听进程是否工作正常,若是,则确定所述监听检测的检测结果为故障;若否,重启所述监听进程;其中,所述监听进程用于获取所述主数据库的运行状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取从节点中各个可用的备用数据库的系统修订号,确定所述可用的备用数据库中所述系统修订号最大的备用数据库为所述切换对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:关闭所述主数据库以及所述主数据库的远程访问进程,将所述备用对象切换为主数据库,重启所述备用对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收触发功能选项的指令,判断所述功能选项是否为进入主节点中的主数据库,若是,检测主节点中主数据库的运行状态,在所述主数据库故障时,则通过多个判断逻辑对主数据库进行检测;其中,所述功能选项包括:监控功能、进入主节点中的主数据库以及进入从节点中的备用数据库中的任意一个。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预先设置的监控变量的返回值,根据所述返回值检测所述主节点以及所述从节点是否正常,并将检测结果输出至对应的主节点的日志文件和/或从节点的日志文件中;其中,所述日志文件部署在所述主节点和所述从节点中,所述日志文件用于对应存储对应主数据库和备用数据库的运行记录的信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测所述备用数据库的运行状态;在所述备用数据库的运行状态异常时,生成所述备用数据库故障的运行记录,并将所述备用数据库故障的运行记录存入所述从节点对应的日志文件中;在所述备用数据库的运行状态正常时,生成所述备用库正常的运行记录,并将所述备用数据库正常的运行记录存入所述从节点对应的日志文件中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测所述主数据库的运行状态,若主数据库正常运行,则生成主数据库正常的运行记录,并将所述主数据库正常的运行记录存入所述主数据库的日志文件中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将主节点的日志文件和/或从节点的日志文件通过短信接口或者邮件接口发送至目标对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测所述切换对象的运行状态是否为等待记录,若是,则判定所述切换对象的运行状态正常。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测所述切换对象中是否配置有所述日志文件;若所述切换对象中没有所述日志文件,则在所述切换对象对应的从节点中生成新的日志文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
通过多个判断逻辑对主数据库进行检测;其中,所述主数据库部署在主节点,所述判断逻辑至少包括:心跳检测、连接检测以及监听检测中的至少两个;
在所述多个判断逻辑的检测结果均为故障时,确定一个备用数据库作为切换对象;其中,所述备用数据库部署在从节点;
在所述切换对象的运行状态正常时,将所述备用对象切换为主数据库,并确定所述切换对象对应的从节点为主节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在预设时间内向所述主数据库发送多次心跳检测指令,在接收到连续多次的主数据库运行故障的信息时,确定所述心跳检测的检测结果为故障;和/或,通过连接检测对主节点中主数据库进行检测,包括:检测所述主数据库的连接数是否正常,若否,则确定所述连接检测的检测结果为故障;和/或,通过监听检测对主节点中主数据库进行检测,包括:检测所述主数据库的监听进程是否工作正常,若是,则确定所述监听检测的检测结果为故障;若否,重启所述监听进程;其中,所述监听进程用于获取所述主数据库的运行状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取从节点中各个可用的备用数据库的系统修订号,确定所述可用的备用数据库中所述系统修订号最大的备用数据库为所述切换对象。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:关闭所述主数据库以及所述主数据库的远程访问进程,将所述备用对象切换为主数据库,重启所述备用对象。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收触发功能选项的指令,判断所述功能选项是否为进入主节点中的主数据库,若是,检测主节点中主数据库的运行状态,在所述主数据库故障时,则通过多个判断逻辑对主数据库进行检测;其中,所述功能选项包括:监控功能、进入主节点中的主数据库以及进入从节点中的备用数据库中的任意一个。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取预先设置的监控变量的返回值,根据所述返回值检测所述主节点以及所述从节点是否正常,并将检测结果输出至对应的主节点的日志文件和/或从节点的日志文件中;其中,所述日志文件部署在所述主节点和所述从节点中,所述日志文件用于对应存储对应主数据库和备用数据库的运行记录的信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测所述备用数据库的运行状态;在所述备用数据库的运行状态异常时,生成所述备用数据库故障的运行记录,并将所述备用数据库故障的运行记录存入所述从节点对应的日志文件中;在所述备用数据库的运行状态正常时,生成所述备用库正常的运行记录,并将所述备用数据库正常的运行记录存入所述从节点对应的日志文件中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测所述主数据库的运行状态,若主数据库正常运行,则生成主数据库正常的运行记录,并将所述主数据库正常的运行记录存入所述主数据库的日志文件中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将主节点的日志文件和/或从节点的日志文件通过短信接口或者邮件接口发送至目标对象。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测所述切换对象的运行状态是否为等待记录,若是,则判定所述切换对象的运行状态正常。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测所述切换对象中是否配置有所述日志文件;若所述切换对象中没有所述日志文件,则在所述切换对象对应的从节点中生成新的日志文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。