数据库高可用切换方法、设备及系统与流程

文档序号:23003241发布日期:2020-11-20 11:51阅读:127来源:国知局
数据库高可用切换方法、设备及系统与流程

本申请涉及数据库管理技术领域,尤其涉及一种数据库高可用切换方法、设备及系统。



背景技术:

现有技术中,数据库大多为单节点主从模式,当主节点异常或宕机后无法快速恢复,将导致业务长时间不可用。并且,现有的数据库高可用一般是实时应用集群形式,需要消耗大量的服务器资源。



技术实现要素:

为至少在一定程度上克服相关技术中存在的问题,本申请提供一种数据库高可用切换方法、设备及系统。

本申请的方案如下:

根据本申请实施例的第一方面,提供一种数据库高可用切换方法包括:

连接并获取多个数据库服务器数据,将每个数据库服务器均配置为主从形式的主库和备库;

实时监控当前正在运行的所有所述主库和备库;

当所述备库出现异常时,停止监控所述备库和所述备库对应的主库,并进行告警;

当所述主库出现异常且所述主库对应的备库正常时,关闭所述主库,并将所述主库对应的备库升级为新的主库。

优选的,在本申请一种可实现的方式中,所述实时监控当前正在运行的所有所述主库和备库,具体包括:

每隔预设时间向所述备库发起一次检测,检测所述备库运行状态;

若所述备库运行异常则判断为所述备库出现异常;

若所述备库运行正常则对所述备库对应的主库进行建表读写操作;

若在预设次数内均无法对所述主库进行建表读写操作,则判断为所述主库出现异常。

优选的,在本申请一种可实现的方式中,还包括:

对所述新的主库进行建表读写操作,若对所述新的主库进行建表读写操作成功,则判断为切换成功;若对所述新的主库进行建表读写操作失败,则判断为切换失败。

优选的,在本申请一种可实现的方式中,还包括:

若切换成功,则通过预设通信方式告知内部工作人员;

若切换失败,则通过预设通信方式告知内部工作人员,并将切换失败产生的异常信息进行写入日志。

优选的,在本申请一种可实现的方式中,还包括:

对所述新的主库重新配置新的备库,并实时监控所述新的主库和所述新的备库。

优选的,在本申请一种可实现的方式中,还包括:

当所述备库出现异常时,将所述备库出现异常产生的异常信息进行写入日志。

优选的,在本申请一种可实现的方式中,所述数据库服务器通过高可用性数据库方案配置为主从形式的主库和备库。

根据本申请实施例的第二方面,提供一种数据库高可用切换设备,包括:

处理器和存储器;

所述处理器与存储器通过通信总线相连接:

其中,所述处理器,用于调用并执行所述存储器中存储的程序;

所述存储器,用于存储程序,所述程序至少用于执行如以上任一项所述的数据库高可用切换方法。

根据本申请实施例的第三方面,提供一种数据库高可用切换系统,包括:

监控管理设备,多个数据库服务器;

所述监控管理设备分别连接各所述数据库服务器;

所述数据库服务器均配置为主从形式的主库和备库;

所述监控管理设备用于实时监控当前正在运行的所有所述主库和备库;当所述备库出现异常时,停止监控所述备库和所述备库对应的主库,并进行告警;当所述主库出现异常且所述主库对应的备库正常时,关闭所述主库,并将所述主库对应的备库升级为新的主库。

优选的,在本申请一种可实现的方式中,各所述数据库服务器均搭载oracle软件;

所述监控管理设备部署python3软件,oracle软件,以及开源的允许访问oracle数据库服务器的python扩展模块

本申请提供的技术方案可以包括以下有益效果:由于本申请中连接并获取多个数据库服务器数据,将每个数据库服务器均配置为主从形式的主库和备库;实时监控当前正在运行的所有主库和备库;当备库出现异常时,停止监控备库和备库对应的主库,并进行告警;当主库出现异常且主库对应的备库正常时,关闭主库,并将主库对应的备库升级为新的主库。当主节点即主库异常或宕机时,能够自动切换到从节点即备库,继续提供数据库服务。并且,本申请中,可以通过监控管理设备实时监控当前正在运行的所有主库和备库,无需额外大量的服务器资源来做支撑。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1是本申请一个实施例提供的一种数据库高可用切换方法的流程示意图;

图2是本申请一个实施例提供的一种数据库高可用切换方法的实际运行时的流程示意图;

图3是本申请一个实施例提供的一种数据库高可用切换设备的结构示意图;

图4是本申请一个实施例提供的一种数据库高可用切换系统的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

图1是本申请一个实施例提供的一种数据库高可用切换方法的流程示意图,参照图1,一种数据库高可用切换方法,包括:

s11:连接并获取多个数据库服务器数据,将每个数据库服务器均配置为主从形式的主库和备库;

s12:实时监控当前正在运行的所有主库和备库;

s13:当备库出现异常时,停止监控备库和备库对应的主库,并进行告警;

s14:当主库出现异常且主库对应的备库正常时,关闭主库,并将主库对应的备库升级为新的主库。

本实施例中,可以同时监控多个数据库服务器,每个数据库服务器可以配置在不同的环境中。

优选的,各数据库服务器均搭载oracle软件;

对应的,监控管理设备部署python3软件,oracle软件,以及开源的允许访问oracle数据库服务器的python扩展模块。

优选的,监控管理设备采用odm监控管理机。

由于本申请中连接并获取多个数据库服务器数据,将每个数据库服务器均配置为主从形式的主库和备库;实时监控当前正在运行的所有主库和备库;当备库出现异常时,停止监控备库和备库对应的主库,并进行告警;当主库出现异常且主库对应的备库正常时,关闭主库,并将主库对应的备库升级为新的主库。当主节点即主库异常或宕机时,能够自动切换到从节点即备库,继续提供数据库服务。并且,本申请中,可以通过监控管理设备实时监控当前正在运行的所有主库和备库,无需额外大量的服务器资源来做支撑。

进一步的,参照图2,实时监控当前正在运行的所有主库和备库,具体包括:

每隔预设时间向备库发起一次检测,检测备库运行状态;

若备库运行异常则判断为备库出现异常;

若备库运行正常则对备库对应的主库进行建表读写操作;

若在预设次数内均无法对主库进行建表读写操作,则判断为主库出现异常。

预设时间可以为一秒,即每隔一秒向备库发起一次检测,检测备库运行状态。在备库运行正常时则执行对备库对应的主库进行建表读写操作。

预设次数可以为三次,即在连续三次均无法对主库进行建表读写操作时,判断为主库出现异常。

一些实施例中的数据库高可用切换方法,参照图2,还包括:

对新的主库进行建表读写操作,若对新的主库进行建表读写操作成功,则判断为切换成功;若对新的主库进行建表读写操作失败,则判断为切换失败。

将备库升级为新的主库后,对新的主库进行建表读写操作以防新的主库无法正常提供数据支持。在确认新的主库进行建表读写操作成功后,判断为切换成功。

优选的,对新的主库进行多次建表读写操作进行测试,如三次。

一些实施例中的数据库高可用切换方法,参照图2,还包括:

若切换成功,则通过预设通信方式告知内部工作人员;

若切换失败,则通过预设通信方式告知内部工作人员,并将切换失败产生的异常信息进行写入日志。

预设通信方式可以为钉钉,邮件等方式。

无论切换成功失败,均通过钉钉,邮件等方式告知内部工作人员。

在切换失败时,将切换失败产生的异常信息进行写入日志,方便内部工作人员查看失败原因,以便进行处理。

一些实施例中的数据库高可用切换方法,参照图2,还包括:

对新的主库重新配置新的备库,并实时监控新的主库和新的备库。

在将备库升级为新的主库后,需要为新的主库重新配置新的备库,并实时监控新的主库和新的备库,以防止新的主库出现异常或宕机。

一些实施例中的数据库高可用切换方法,参照图2,还包括:

当备库出现异常时,将备库出现异常产生的异常信息进行写入日志。

当备库出现异常时,将备库出现异常产生的异常信息进行写入日志,方便内部工作人员查看失败原因,以便进行处理。

一些实施例中的数据库高可用切换方法,数据库服务器通过高可用性数据库方案配置为主从形式的主库和备库。

优选的,采用dataguard方案,dataguard方案是甲骨文公司推出的一种高可用性数据库方案,它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。dataguard只是在软件上对数据库进行设置,并不需要额外购买任何组件。用户能够在对主数据库影响很小的情况下,实现主备数据库的同步。而主备机之间的数据差异只限于在线日志部分。

一种数据库高可用切换设备,参照图3,包括:

处理,21和存储器22;

处理器21与存储器22通过通信总线相连接:

其中,处理器21,用于调用并执行存储器22中存储的程序;

存储器22,用于存储程序,程序至少用于执行如以上任一实施例中的数据库高可用切换方法。

一种数据库高可用切换系统,参照图4,包括:

监控管理设备31,多个数据库服务器32;

监控管理设备31分别连接各数据库服务器32;

数据库服务器32均配置为主从形式的主库和备库;

监控管理设备31用于实时监控当前正在运行的所有主库和备库;当备库出现异常时,停止监控备库和备库对应的主库,并进行告警;当主库出现异常且主库对应的备库正常时,关闭主库,并将主库对应的备库升级为新的主库。

一些实施例中的数据库高可用切换系统,各数据库服务器32均搭载oracle软件;

监控管理设备31部署python3软件,oracle软件,以及开源的允许访问oracle数据库服务器的python扩展模块。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1