数据库切换方法、系统、电子设备和计算机可读介质技术方案

技术编号:20448682 阅读:20 留言:0更新日期:2019-02-27 02:51
本公开提供了一种数据库切换方法,包括获取切换请求,所述切换请求用于将主节点数据库从第一数据库切换为第二数据库,基于所述切换请求,确定切换类型,基于所述切换类型,检测切换环境是否满足切换条件,以及在所述切换环境满足所述切换条件的情况下,将主节点数据库从所述第一数据库切换为所述第二数据库。本公开还提供了一种数据库切换系统、一种电子设备以及一种计算机可读介质。

Database Switching Method, System, Electronic Equipment and Computer Readable Media

The present disclosure provides a database switching method, including acquiring a switching request for switching the primary node database from the first database to the second database, determining the switching type based on the switching request, detecting whether the switching environment meets the switching condition, and when the switching environment meets the switching condition. The primary node database is switched from the first database to the second database. The present disclosure also provides a database switching system, an electronic device and a computer readable medium.

【技术实现步骤摘要】
数据库切换方法、系统、电子设备和计算机可读介质
本公开涉及互联网
,更具体地,涉及一种数据库切换方法、系统、电子设备和计算机可读介质。
技术介绍
数据库的高可用已经成为了信息化建设的重中之重。在现有技术中,通常将数据库的主从复制技术与高可用切换方案相结合来提高数据库的可用性。例如,在主节点数据库宕机或者对系统的硬件维护、版本升级等情况下,利用高可用切换方案将当前的主节点数据库切换成从节点数据库,并将某个从节点数据库切换成主节点数据库,以保证数据库的高可用。在实现本公开构思的过程中,专利技术人发现现有技术中至少存在如下问题:现有的主节点数据库与从节点数据库的切换容易出现切换中断,成功率较低。
技术实现思路
有鉴于此,本公开提供了一种数据库切换方法、系统、电子设备和计算机可读介质。本公开的一个方面提供了一种数据库切换方法包括,获取切换请求,所述切换请求用于将主节点数据库从第一数据库切换为第二数据库,基于所述切换请求,确定切换类型,基于所述切换类型,检测切换环境是否满足切换条件,以及在所述切换环境满足所述切换条件的情况下,将主节点数据库从所述第一数据库切换为所述第二数据库。根据本公开的实施例,获取切换请求包括基于用户输入生成切换请求,或者在第一数据库作为主节点数据库发生异常的情况下,生成切换请求。根据本公开的实施例,在第一数据库作为主节点数据库发生异常的情况下,生成切换请求包括,获得多个从节点数据库的状态,基于所述多个从节点数据库的状态,确定一个从节点数据库为第二数据库,以及生成用于将主节点数据库从第一数据库切换为第二数据库的切换请求。根据本公开的实施例,基于所述切换请求,确定切换类型包括,从所述切换请求中读取表征切换类型的参数,以确定切换类型,或者基于所述切换请求,检测所述第一数据库是否异常,在所述第一数据库异常的情况下,确定切换类型是故障切换,在所述第一数据库正常的情况下,确定切换类型是在线切换。根据本公开的实施例,在所述切换类型为在线切换的情况下,所述检测切换环境是否满足切换条件包括以下至少一种,检测是否存在工作状态异常的数据库,检测是否具备访问各个数据库的权限,或者验证切换请求中包括的从节点数据库是否是所述第一数据库的从节点。根据本公开的实施例,在所述切换类型为在线切换的情况下,所述方法还包括,若在将主节点数据库从所述第一数据库切换为所述第二数据库的过程中出现异常,则中止所述切换并执行预定操作。根据本公开的实施例,所述数据库切换方法还包括存储所述第一数据库的日志位点,所述预定操作包括基于所述第一数据库的日志位点,执行回滚操作。根据本公开的实施例,,在所述切换类型为在线切换的情况下,所述将主节点数据库从第一数据库切换为第二数据库包括,禁止所述第一数据库的写入进程,在所述第二数据库中的数据与所述第一数据库的数据一致的情况下,记录所述第二数据库的当前日志位点,将所述第二数据库设置为读写模式,以及在第三数据库中的数据与所述第一数据库的数据一致的情况下,基于所述当前日志位点,将所述主节点数据库从第一数据库切换为第二数据库,其中,所述第三数据库包括除第二数据库以外的其他从节点数据库,所述将所述主节点数据库从第一数据库切换为第二数据库包括控制所述第三数据库从所述第二数据库读取数据,而非从所述第一数据库读取数据。根据本公开的实施例,在所述切换类型为故障切换的情况下,所述检测切换环境是否满足预设条件包括检测所述第一数据库工作状态是否异常。根据本公开的实施例,所述数据库切换方法还包括,检测多个第三数据库的工作状态是否异常,所述第三数据库包括除第二数据库以外的其他从节点数据库,以及在至少一个所述第三数据库的工作状态异常的情况下,将所述至少一个第三数据库设为忽略节点。根据本公开的实施例,在基于用户输入生成切换请求的情况下,所述检测切换环境是否满足预设条件还包括检测所述第二数据库是否正常。根据本公开的实施例,在所述切换类型为故障切换的情况下,所述将主节点数据库从第一数据库切换为第二数据库包括,判断所述第二数据库是否存在数据缺失,在所述第二数据库不存在数据缺失的情况下,记录所述第二数据库的当前日志位点,并将所述第二数据库的工作模式设置为读写模式,以及基于所述当前日志位点,将主节点数据库从第一数据库切换为第二数据库,所述将主节点数据库从第一数据库切换为第二数据库包括控制第三数据库从所述第二数据库读取数据,而非从所述第一数据库读取数据,其中,所述第三数据库包括除第二数据库以外的其他从节点数据库。根据本公开的实施例,所述数据库切换方法还包括记录所述第三数据库存储的主从复制配置信息,其中,所述控制所述第三数据库从所述第二数据库读取数据包括基于所述主从复制配置信息,控制所述第三数据库从所述第二数据库读取数据。根据本公开的实施例,所述数据库切换方法还包括在所述第二数据库存在数据缺失的情况下,第二数据库与不存在数据缺失的第四数据库的建立数据复制的连接,以及基于所述第四数据库,恢复所述第二数据库的缺失数据。根据本公开的实施例,所述数据库切换方法还包括发送将主节点数据库从第一数据库切换为第二数据库的切换报告。根据本公开的实施例,所述数据库切换方法还包括通过第一接口与外部系统进行切换信息的交互,其中,所述切换信息包括将主节点数据库从第一数据库切换为第二数据库的结果,和/或将主节点数据库从第一数据库切换为第二数据库所需要的配置信息。根据本公开的实施例,所述数据库切换方法还包括中断业务系统与所述第一数据库的连接,以及在所述主节点数据库切换完成的情况下,将所述第一数据库的虚拟地址分配给所述第二数据库,用于使业务系统通过所述虚拟地址访问的数据库为所述第二数据库,而非所述第一数据库。本公开的另一个方面提供了一种数据库切换系统包括,获取模块用于获取切换请求,所述切换请求用于将主节点数据库从第一数据库切换为第二数据库,确定模块用于基于所述切换请求,确定切换类型,第一检测模块用于基于所述切换类型,检测切换环境是否满足切换条件,以及切换模块用于在所述切换环境满足所述切换条件的情况下,将主节点数据库从所述第一数据库切换为所述第二数据库。根据本公开的实施例,获取模块包括,第一生成子模块用于基于用户输入生成切换请求,或者第二生成子模块用于在第一数据库作为主节点数据库发生异常的情况下,生成切换请求。根据本公开的实施例,第二生成子模块包括,获取单元用于获得多个从节点数据库的状态,确定单元用于基于所述多个从节点数据库的状态,确定一个从节点数据库为第二数据库,生成单元用于生成以将主节点数据库从第一数据库切换为第二数据库的切换请求。根据本公开的实施例,确定模块包括以下至少一种,第一确定子模块用于从所述切换请求中读取表征切换类型的参数,以确定切换类型,或者第二确定子模块用于基于所述切换请求,检测所述第一数据库是否异常,在所述第一数据库异常的情况下,确定切换类型是故障切换,在所述第一数据库正常的情况下,确定切换类型是在线切换。根据本公开的实施例,在所述切换类型为在线切换的情况下,所述第一检测模块包括以下至少一种,第一检测子模块用于检测是否存在工作状态异常的数据库,第二检测子模块,用于检测是否具备访问各个数据库的权限,或者验证子模块,用于验证切换请求中包括的从节点数据库是否本文档来自技高网...

【技术保护点】
1.一种数据库切换方法,包括:获取切换请求,所述切换请求用于将主节点数据库从第一数据库切换为第二数据库;基于所述切换请求,确定切换类型;基于所述切换类型,检测切换环境是否满足切换条件;以及在所述切换环境满足所述切换条件的情况下,将主节点数据库从所述第一数据库切换为所述第二数据库。

【技术特征摘要】
1.一种数据库切换方法,包括:获取切换请求,所述切换请求用于将主节点数据库从第一数据库切换为第二数据库;基于所述切换请求,确定切换类型;基于所述切换类型,检测切换环境是否满足切换条件;以及在所述切换环境满足所述切换条件的情况下,将主节点数据库从所述第一数据库切换为所述第二数据库。2.根据权利要求1所述的数据库切换方法,其中,所述获取切换请求包括:基于用户输入生成切换请求;或者在第一数据库作为主节点数据库发生异常的情况下,生成切换请求。3.根据权利要求2所述的数据库切换方法,其中,所述在第一数据库作为主节点数据库发生异常的情况下,生成切换请求包括:获得多个从节点数据库的状态;基于所述多个从节点数据库的状态,确定一个从节点数据库为第二数据库;生成用于将主节点数据库从第一数据库切换为第二数据库的切换请求。4.根据权利要求1所述的数据库切换方法,其中,所述基于所述切换请求,确定切换类型包括:从所述切换请求中读取表征切换类型的参数,以确定切换类型;或者基于所述切换请求,检测所述第一数据库是否异常,在所述第一数据库异常的情况下,确定切换类型是故障切换,在所述第一数据库正常的情况下,确定切换类型是在线切换。5.根据权利要求1所述的数据库切换方法,其中,在所述切换类型为在线切换的情况下,所述检测切换环境是否满足切换条件包括以下至少一种:检测是否存在工作状态异常的数据库;检测是否具备访问各个数据库的权限;或者验证切换请求中包括的从节点数据库是否是所述第一数据库的从节点。6.根据权利要求1所述的数据库切换方法,其中,在所述切换类型为在线切换的情况下,所述方法还包括:若在将主节点数据库从所述第一数据库切换为所述第二数据库的过程中出现异常,则中止所述切换并执行预定操作。7.根据权利要求6所述的方法,还包括存储所述第一数据库的日志位点,所述预定操作包括:基于所述第一数据库的日志位点,执行回滚操作。8.根据权利要求1所述的数据库切换方法,其中,在所述切换类型为在线切换的情况下,所述将主节点数据库从第一数据库切换为第二数据库包括:禁止所述第一数据库的写入进程;在所述第二数据库中的数据与所述第一数据库的数据一致的情况下,记录所述第二数据库的当前日志位点;将所述第二数据库设置为读写模式;以及在第三数据库中的数据与所述第一数据库的数据一致的情况下,基于所述当前日志位点,将所述主节点数据库从第一数据库切换为第二数据库,其中,所述第三数据库包括除第二数据库以外的其他从节点数据库,所述将所述主节点数据库从第一数据库切换为第二数据库包括:控制所述第三数据库从所述第二数据库读取数据,而非从所述第一数据库读取数据。9.根据权利要求3所述的数据库切换方法,其中,在所述切换类型为故障切换的情况下,所述检测切换环境是否满足预设条件包括:检测所述第一数据库工作状态是否异常。10.根据权利要求1所述的方法,还包括:检测多个第三数据库的工作状态是否异常,所述第三数据库包括除第二数据库以外的其他从节点数据库;以及在至少一个所述第三数据库的工作状态异常的情况下,将所述至少一个第三数据库设为忽略节点。11.根据权利要求9所述的数据库切换方法,其中,在基于用户输入生成切换请求的情况下,所述检测切换环境是否满足预设条件还包括:检测所述第二数据库是否正常。12.根据权利要求1所述的数据库切换方法,其中,在所述切换类型为故障切换的情况下,所述将主节点数据库从第一数据库切换为第二数据库包括:判断所述第二数据库是否存在数据缺失;在所述第二数据库不存在数据缺失的情况下,记录所述第二数据库的当前日志位点,并将所述第二数据库的工作模式设置为读写模式;以及基于所述当前日志位点,将主节点数据库从第一数据库切换为第二数据库,所述将主节点数据库从第一数据库切换为第二数据库包括:控制第三数据库从所述第二数据库读取数据,而非从所述第一数据库读取数据,其中,所述第三数据库包括除第二数据库以外的其他从节点数据库。13.根据权利要求8或12所述的数据库切换方法,还包括:记录所述第三数据库存储的主从复制配置信息,其中,所述控制所述第三数据库从所述第二数据库读取数据包括:基于所述主从复制配置信息,控制所述第三数据库从所述第二数据库读取数据。14.根据权利要求12所述的数据库切换方法,还包括:在所述第二数据库存在数据缺失的情况下,第二数据库与不存在数据缺失的第四数据库的建立数据复制的连接;以及基于所述第四数据库,恢复所述第二数据库的缺失数据。15.根据权利要求1所述的数据库切换方法,还包括:发送将主节点数据库从第一数据库切换为第二数据库的切换报告。16.根据权利要求1所述的数据库切换方法,还包括通过第一接口与外部系统进行切换信息的交互,其中,所述切换信息包括:将主节点数据库从第一数据库切换为第二数据库的结果;和/或将主节点数据库从第一数据库切换为第二数据库所需要的配置信息。17.根据权利要求1所述的数据库切换方法,还包括:中断业务系统与所述第一数据库的连接;以及在所述主节点数据库切换完成的情况下,将所述第一数据库的虚拟地址分配给所述第二数据库,用于使业务系统通过所述虚拟地址访问的数据库为所述第二数据库,而非所述第一数据库。18.一种数据库切换系统,包括:获取模块,用于获取切换请求,所述切换请求用于将主节点数据库从第一数据库切换为第二数据库;确定模块,用于基于所述切换请求,确定切换类型;第一检测模块,用于基于所述切换类型,检测切换环境是否满足切换条件;以及切换模块,用于在所述切换环境满足所述切换条件的情况下,将主节点数据库从所述第一数据库切换为所述第二数据库。19.根据权利要求1...

【专利技术属性】
技术研发人员:孙文晖高新刚
申请(专利权)人:北京京东金融科技控股有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1