数据库切换方法、装置、系统及计算机可读存储介质与流程

文档序号:18192952发布日期:2019-07-17 05:40阅读:141来源:国知局
数据库切换方法、装置、系统及计算机可读存储介质与流程

本发明涉及数据库技术领域,尤其涉及一种数据库切换方法、装置、系统及计算机可读存储介质。



背景技术:

近年来,数据库技术迅速发展,从单机数据库到分布式数据库,逐步解决了数据可扩展性和高并发访问性能,数据库的可靠性一直以来备受关注,越来越多的企业机构要求部署数据库灾备系统,当生产系统异常时保障数据库的可用性,为了保证生产系统向灾备系统切换对业务影响最小,这就要求容灾rpo(recoverypointobjective),生产环境发生异常时,灾备系统数据对比生产系统无数据丢失;容灾rpo可容许的服务中断时长越小越好。因此,灾备系统的快速切换技术研究有着重大而深远的意义。

目前,容灾系统切换主要靠提高网络传输速度和稳定性、提高数据库数据同步技术,使数据尽可能地快速同步到灾备系统,在生产环境发送异常时,数据已经在灾备系统落盘,灾备系统上没有数据丢失,业务才能正常切换并对外提供服务。但是,现有的数据同步技术,在网络抖动或者异常时,为了保证数据库的性能,都会退化为异步通信,这就必然导致生产系统和灾备系统间存在数据同步差异,在差异间隙就无法保证业务可以进行快速的切换,必须先进行手动的数据同步才能保证数据一致性,从而大大增加了切换时长。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据库切换方法、装置、系统及计算机可读存储介质,通过鉴权操作将数据库切换时间段内的更新数据的用户暂停访问数据库,不需要等待数据库完全同步,即可向应用模块提供数据库服务,提高了数据库的切换速度,达到了数据库不间断服务的效果。

本发明解决上述技术问题所采用的技术方案如下:

根据本发明的一个方面,提供的一种数据库切换方法,包括:

接收应用模块发来的数据库连接请求;

判断所述数据库的类型是否为灾备环境数据库;

若是,则判断所述连接请求是否为账号登录操作;

若是,则向账号鉴权模块发送账号鉴权请求,若鉴权成功,则允许所述连接请求对应的账号访问灾备环境数据库。

可选地,所述判断所述数据库的类型是否为灾备环境数据库之后还包括:

若所述数据库的类型为生产环境数据库,判断所述连接请求是否为更新数据库操作;

若是,则向账号管理模块发送账号更新信息,根据所述账号更新信息更新账号信息表;然后访问生产环境数据库。

可选地,所述向账号鉴权模块发送账号鉴权请求,若鉴权成功,则允许所述连接请求对应的账号访问灾备环境数据库包括:

账号鉴权模块接收所述账号鉴权请求;

判断所述账号是否存在于预设的账号信息表中,所述账号信息表包括:登录账号、账号类型和更新数据时间;

若是,则判断所述账号的更新数据时间是否在预设的账号操作有效时长内;

若是,则允许所述连接请求对应的账号访问灾备环境数据库,否则,暂停所述账号访问灾备环境数据库的权限。

可选地,所述判断所述数据库的类型是否为灾备环境数据库包括:

获取数据库标识,根据所述数据库标识判断所述数据库是生产环境数据库还是灾备环境数据库。

根据本发明的一个方面,提供的一种数据库切换装置,包括:

接收模块,用于接收应用模块发来的数据库连接请求;

数据库判断模块,用于判断所述数据库的类型是否为灾备环境数据库;

账号登录判断模块,用于当所述数据库的类型为灾备环境数据库时,则判断所述连接请求是否为账号登录操作;

鉴权模块,用于当所述连接请求为账号登录操作时,则向账号鉴权模块发送账号鉴权请求,若鉴权成功,则允许所述连接请求对应的账号访问灾备环境数据库。

可选地,还包括:

更新操作判断模块,用于当所述数据库的类型为生产环境数据库时,判断所述连接请求是否为更新数据库操作;

更新模块,用于当所述连接请求为更新数据库操作时,向账号管理模块发送账号更新信息,根据所述账号更新信息更新账号信息表;然后访问生产环境数据库。

可选地,所述鉴权模块包括:

接收单元,用于账号鉴权模块接收所述账号鉴权请求;

第一判断单元,用于判断所述账号是否存在于预设的账号信息表中,所述账号信息表包括:登录账号、账号类型和更新数据时间;

第二判断单元,用于当所述账号存在于预设的账号信息表中时,则判断所述账号的更新数据时间是否在预设的账号操作有效时长内;

允许访问单元,用于当所述账号的更新数据时间在预设的账号操作有效时长内时,则允许所述连接请求对应的账号访问灾备环境数据库;

暂停访问单元,用于当所述账号的更新数据时间不在预设的账号操作有效时长内时,暂停所述账号访问灾备环境数据库的权限。

可选地,所述数据库判断模块包括:

获取数据库标识,根据所述数据库标识判断所述数据库是生产环境数据库还是灾备环境数据库。

根据本发明的再一个方面,提供的一种数据库切换系统,包括存储器、处理器和至少一个被存储在所述存储器中并被配置为由所述处理器执行的应用程序,所述应用程序被配置为用于执行以上所述的数据库切换方法。

根据本发明的再一个方面,提供的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上所述的数据库切换方法。

本发明实施例的一种数据库切换方法、装置、系统及计算机可读存储介质,该方法包括:接收应用模块发来的数据库连接请求;判断所述数据库的类型是否为灾备环境数据库;若是,则判断所述连接请求是否为账号登录操作;若是,则向账号鉴权模块发送账号鉴权请求,若鉴权成功,则允许所述连接请求对应的账号访问灾备环境数据库,通过鉴权操作将数据库切换时间段内的更新数据的用户暂停访问数据库,不需要等待数据库完全同步,即可向应用模块提供数据库服务,提高了数据库的切换速度,达到了数据库不间断服务的效果。

附图说明

图1为本发明实施例一提供的一种数据库切换方法流程图;

图2为本发明实施例一提供的另一种数据库切换方法流程图;

图3为图1中步骤s50的方法流程图;

图4为本发明实施例二提供的一种数据库切换装置示范性结构框图;

图5为本发明实施例二提供的另一种数据库切换装置示范性结构框图;

图6为图4中鉴权模块的一种示范性结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例一

如图1所示,在本实施例中,一种数据库切换方法,包括:

s10、接收应用模块发来的数据库连接请求;

s20、判断所述数据库的类型是否为灾备环境数据库;若不是灾备环境数据库,则所述数据库为生产环境数据库;

若是灾备环境数据库,则s30、判断所述连接请求是否为账号登录操作,若不是账号登录操作,则为访问数据库操作,进入步骤s40、允许所述连接请求对应的账号访问灾备环境数据库;

若是账号登录操作,则s50、向账号鉴权模块发送账号鉴权请求,判断是否鉴权成功,若鉴权成功,则进入步骤s40、允许所述连接请求对应的账号访问灾备环境数据库;若鉴权失败,则s60、暂停所述账号访问灾备环境数据库的权限。

在本实施例中,通过鉴权操作将数据库切换时间段内的更新数据的用户暂停访问数据库,不需要等待数据库完全同步,即可向应用模块提供数据库服务,提高了数据库的切换速度,达到了数据库不间断服务的效果。

在本实施例中,当生产环境数据库和灾备环境数据库发生切换后,通过账号鉴权模块判断用户账号是否可用,对不可用账号暂停访问,其他账号正常访问数据库。该方法从另一个角度解决了灾备环境数据库异常切换时数据不一致的问题,保证了数据库的迅速切换且可用。

在本实施例中,生产环境数据库和灾备环境数据库通过网络进行数据同步,当生产环境数据库发生异常时,切换到灾备环境数据库,应用模块上的应用程序直接访问灾备环境数据库从而对外提供服务。

在本实施例中,应用模块访问数据库进行数据查询和更新,访问数据库时,首先判断数据库是生产环境数据库还是灾备环境数据库,如果是灾备环境数据库,则在用户登录前向账号鉴权模块发送鉴权请求,如果是生产环境数据库,则在进行用户数据更新前给账号管理模块发送账号信息和更新数据时间等。

在本实施例中,账号鉴权模块接收账号鉴权请求,根据时间规则,判断用户是否可以登录到灾备环境数据库;根据设定的账号操作有效时长、记录的鉴权帐号和该账号最近一次操作时间,如果操作时间在有效时间之前,则认为该账号可操作,若在有效时间之后,则该账号暂停登陆操作。

在本实施例中,账号管理模块接收和存储应用模块发送来的账号信息、操作数据时间和操作类型;帐号管理模块定时向生产环境数据库发送心跳消息,记录下生产环境数据库正常访问时间,并记录最后一次数据库正常访问时间。帐号管理模块提供接口对帐号信息进行帐号管理,包括帐号定时清理,帐号状态修改和清除;账号管理模块还可以接收人工帐号清理操作,当灾备环境数据库已恢复到正常状态下,暂停登录操作的禁用帐号信息可以手工清理,从而可以使上述暂停登录操作的账号正常访问数据库。

如图2所示,在本实施例中,所述步骤s20之后还包括:

若所述数据库的类型为生产环境数据库,s21、判断所述连接请求是否为更新数据库操作;

若是,则s22、向账号管理模块发送账号更新信息,根据所述账号更新信息更新账号信息表;

s23、访问生产环境数据库;

若所述连接请求不是更新数据库操作,则直接进入步骤s23、访问生产环境数据库。

如图3所示,在本实施例中,所述步骤s50包括:

s51、账号鉴权模块接收所述账号鉴权请求;

s52、判断所述账号是否存在于预设的账号信息表中,所述账号信息表包括:登录账号、账号类型和更新数据时间;

若是,则s53、判断所述账号的更新数据时间是否在预设的账号操作有效时长内;若是,则s54、允许所述连接请求对应的账号访问灾备环境数据库,否则,s55、暂停所述账号访问灾备环境数据库的权限;

若所述账号不在预设的账号信息表中,则认为该账号在发生主备数据库切换期间未进行操作,在灾备环境数据库上该账号数据直接可用,鉴权成功,直接进入步骤s54、允许所述连接请求对应的账号访问灾备环境数据库;

在本实施例中,如果鉴权帐号在列表中,获取该帐号最近一次更新数据时间,最近一次操作生产环境数据库的时间大于生产环境数据库正常访问时间减去系统配置帐号操作有效时长,则认为该账号更新的数据已同步到灾备环境数据库中,用户鉴权成功;否则认为该账号更新数据还未同步到灾备环境数据库,鉴权失败,暂时无法登录到灾备环境数据库。

在本实施例中,所述步骤s20包括:

获取数据库标识,根据所述数据库标识判断所述数据库是生产环境数据库还是灾备环境数据库。

在本实施例中,从数据库层很难在保证性能的同时保证数据的完全同步,当发生断电等突发异常时,必然会导致部分数据的丢失,该方案的核心是在数据库从生产环境向灾备环境进行切换时,不再等待数据完全同步后,灾备环境才向业务提供服务,而是把切换时间段内的更新数据的用户暂停访问数据库,其他用户正常使用数据库,从而达到总体上不间断服务的要求。

实施例二

如图4所示,在本实施例中,一种数据库切换装置,包括:

接收模块10,用于接收应用模块发来的数据库连接请求;

数据库判断模块20,用于判断所述数据库的类型是否为灾备环境数据库;

账号登录判断模块30,用于当所述数据库的类型为灾备环境数据库时,则判断所述连接请求是否为账号登录操作;

鉴权模块40,用于当所述连接请求为账号登录操作时,则向账号鉴权模块发送账号鉴权请求,若鉴权成功,则允许所述连接请求对应的账号访问灾备环境数据库。

在本实施例中,通过鉴权操作将数据库切换时间段内的更新数据的用户暂停访问数据库,不需要等待数据库完全同步,即可向应用模块提供数据库服务,提高了数据库的切换速度,达到了数据库不间断服务的效果。

在本实施例中,当生产环境数据库和灾备环境数据库发生切换后,通过账号鉴权模块判断用户账号是否可用,对不可用账号暂停访问,其他账号正常访问数据库。该方法从另一个角度解决了灾备环境数据库异常切换时数据不一致的问题,保证了数据库的迅速切换且可用。

在本实施例中,生产环境数据库和灾备环境数据库通过网络进行数据同步,当生产环境数据库发生异常时,切换到灾备环境数据库,应用模块上的应用程序直接访问灾备环境数据库从而对外提供服务。

在本实施例中,应用模块访问数据库进行数据查询和更新,访问数据库时,首先判断数据库是生产环境数据库还是灾备环境数据库,如果是灾备环境数据库,则在用户登录前向账号鉴权模块发送鉴权请求,如果是生产环境数据库,则在进行用户数据更新前给账号管理模块发送账号信息和更新数据时间等。

在本实施例中,账号鉴权模块接收账号鉴权请求,根据时间规则,判断用户是否可以登录到灾备环境数据库;根据设定的账号操作有效时长、记录的鉴权帐号和该账号最近一次操作时间,如果操作时间在有效时间之前,则认为该账号可操作,若在有效时间之后,则该账号暂停登陆操作。

在本实施例中,账号管理模块接收和存储应用模块发送来的账号信息、操作数据时间和操作类型;帐号管理模块定时向生产环境数据库发送心跳消息,记录下生产环境数据库正常访问时间,并记录最后一次数据库正常访问时间。帐号管理模块提供接口对帐号信息进行帐号管理,包括帐号定时清理,帐号状态修改和清除;账号管理模块还可以接收人工帐号清理操作,当灾备环境数据库已恢复到正常状态下,暂停登录操作的禁用帐号信息可以手工清理,从而可以使上述暂停登录操作的账号正常访问数据库。

如图5所示,在本实施例中,还包括:

更新操作判断模块50,用于当所述数据库的类型为生产环境数据库时,判断所述连接请求是否为更新数据库操作;

更新模块60,用于当所述连接请求为更新数据库操作时,向账号管理模块发送账号更新信息,根据所述账号更新信息更新账号信息表;然后访问生产环境数据库。

如图6所示,在本实施例中,所述鉴权模块包括:

接收单元41,用于账号鉴权模块接收所述账号鉴权请求;

第一判断单元42,用于判断所述账号是否存在于预设的账号信息表中,所述账号信息表包括:登录账号、账号类型和更新数据时间;

第二判断单元43,用于当所述账号存在于预设的账号信息表中时,则判断所述账号的更新数据时间是否在预设的账号操作有效时长内;

允许访问单元44,用于当所述账号的更新数据时间在预设的账号操作有效时长内时,则允许所述连接请求对应的账号访问灾备环境数据库;

暂停访问单元45,用于当所述账号的更新数据时间不在预设的账号操作有效时长内时,暂停所述账号访问灾备环境数据库的权限。

在本实施例中,若所述账号不在预设的账号信息表中,则认为该账号在发生主备数据库切换期间未进行操作,在灾备环境数据库上该账号数据直接可用,鉴权成功;

在本实施例中,如果鉴权帐号在列表中,获取该帐号最近一次更新数据时间,最近一次操作生产环境数据库的时间大于生产环境数据库正常访问时间减去系统配置帐号操作有效时长,则认为该账号更新的数据已同步到灾备环境数据库中,用户鉴权成功;否则认为该账号更新数据还未同步到灾备环境数据库,鉴权失败,暂时无法登录到灾备环境数据库。

在本实施例中,所述数据库判断模块包括:

获取数据库标识,根据所述数据库标识判断所述数据库是生产环境数据库还是灾备环境数据库。

在本实施例中,从数据库层很难在保证性能的同时保证数据的完全同步,当发生断电等突发异常时,必然会导致部分数据的丢失,该方案的核心是在数据库从生产环境向灾备环境进行切换时,不再等待数据完全同步后,灾备环境才向业务提供服务,而是把切换时间段内的更新数据的用户暂停访问数据库,其他用户正常使用数据库,从而达到总体上不间断服务的要求。

实施例三

在本实施例中,一种数据库切换系统,包括存储器、处理器和至少一个被存储在所述存储器中并被配置为由所述处理器执行的应用程序,所述应用程序被配置为用于执行实施例一所述的数据库切换方法。

实施例四

本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述数据库切换方法实施例中任一所述的方法实施例。

需要说明的是,上述装置、系统实和计算机可读存储介质实施例与方法实施例属于同一构思,其具体实现过程详见方法实施例,且方法实施例中的技术特征在装置实施例中均对应适用,这里不再赘述。

本发明实施例的一种数据库切换方法、装置、系统及计算机可读存储介质,该方法包括:接收应用模块发来的数据库连接请求;判断所述数据库的类型是否为灾备环境数据库;若是,则判断所述连接请求是否为账号登录操作;若是,则向账号鉴权模块发送账号鉴权请求,若鉴权成功,则允许所述连接请求对应的账号访问灾备环境数据库,通过鉴权操作将数据库切换时间段内的更新数据的用户暂停访问数据库,不需要等待数据库完全同步,即可向应用模块提供数据库服务,提高了数据库的切换速度,达到了数据库不间断服务的效果。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

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