一种数据库切换方法、装置、设备及系统制造方法及图纸

技术编号:20588889 阅读:21 留言:0更新日期:2019-03-16 07:10
本申请提供一种数据库切换方法、装置、设备及系统,该方法包括:接收第一数据库发送的切换请求;从所述第一数据库获取到连接状态信息,并将所述连接状态信息发送给第二数据库,以使所述第二数据库存储所述连接状态信息;将与所述第一数据库对应的操作请求发送给所述第二数据库,以使所述第二数据库根据所述连接状态信息对所述操作请求进行处理。通过本申请的技术方案,可以在数据库切换过程中保持连接状态信息不变,即第二数据库使用的连接状态信息与第一数据库使用的连接状态信息相同,从而提升数据库切换的成功率,能够更加有效的实现数据库连接保持功能。

【技术实现步骤摘要】
一种数据库切换方法、装置、设备及系统
本申请涉及互联网
,尤其涉及一种数据库切换方法、装置、设备及系统。
技术介绍
随着互联网的迅速发展,数据库的中间件技术在分布式数据库系统中得到了广泛应用。中间件是位于应用服务器与数据库之间的中转设备,并可以分别连接应用服务器和数据库。当应用服务器需要访问数据库时,则应用服务器需要与中间件建立一个通信连接1,且中间件需要与数据库建立一个通信连接2。当应用服务器需要使用SQL(StructuredQueryLanguage,结构化查询语言)语句对数据库中的数据进行操作时,会通过通信连接1将SQL语句发送至中间件,中间件通过通信连接2将该SQL语句发送至数据库。数据库执行接收到的该SQL语句,并通过中间件向该应用服务器返回该SQL语句的执行结果。但是,若数据库发生故障,则中间件与数据库之间的通信连接2发生中断,这样,针对应用服务器发送给数据库的SQL语句,中间件无法通过通信连接2发送至数据库,导致无法处理这些SQL语句,并对业务体验产生影响。
技术实现思路
本申请提供一种数据库切换方法,应用于中间件,所述方法包括:接收第一数据库发送的切换请求;从所述第一数据库获取到连接状态信息,并将所述连接状态信息发送给第二数据库,以使所述第二数据库存储所述连接状态信息;将与所述第一数据库对应的操作请求发送给所述第二数据库,以使所述第二数据库根据所述连接状态信息对所述操作请求进行处理。本申请提供一种数据库切换装置,应用于中间件,所述装置包括:接收模块,用于接收第一数据库发送的切换请求;获取模块,用于从所述第一数据库获取到连接状态信息;发送模块,用于将所述连接状态信息发送给第二数据库,以使第二数据库存储所述连接状态信息;将与所述第一数据库对应的操作请求发送给所述第二数据库,以使第二数据库根据所述连接状态信息对所述操作请求进行处理。本申请提供一种中间件设备,所述中间件设备包括:接收器,用于接收第一数据库发送的切换请求;处理器,用于从所述第一数据库获取到连接状态信息;发射器,用于将所述连接状态信息发送给第二数据库,以使第二数据库存储所述连接状态信息;将与所述第一数据库对应的操作请求发送给所述第二数据库,以使所述第二数据库根据所述连接状态信息对所述操作请求进行处理。本申请提供一种数据库切换系统,所述系统包括:第一数据库,用于向中间件发送切换请求;中间件,用于接收所述第一数据库发送的切换请求,从所述第一数据库获取到连接状态信息,并将所述连接状态信息发送给第二数据库;第二数据库,用于存储接收到的所述连接状态信息;中间件,还用于将所述第一数据库对应的操作请求发送给所述第二数据库;第二数据库,还用于根据所述连接状态信息对所述操作请求进行处理。基于上述技术方案,本申请实施例中,在需要从第一数据库切换到第二数据库时,中间件可以从第一数据库获取到连接状态信息,并将连接状态信息发送给第二数据库,以使第二数据库存储该连接状态信息,并根据该连接状态信息对操作请求进行处理。这样,可以在数据库切换过程中保持连接状态信息不变,即第二数据库使用的连接状态信息与第一数据库使用的连接状态信息相同,从而提升数据库切换的成功率,能够更加有效的实现数据库连接保持功能。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。图1是本申请一种实施方式中的应用场景示意图;图2是本申请一种实施方式中的数据库切换方法的流程图;图3是本申请一种实施方式中的数据库切换装置的结构图。具体实施方式在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请实施例中提出一种数据库切换方法,该方法可以应用于包括应用服务器、中间件和数据库的系统,中间件是位于应用服务器与数据库之间的中转设备,也可以称为中间件设备,中间件可以分别连接应用服务器和数据库。在一个例子中,应用服务器、中间件和数据库可以部署在同一个设备。在另一个例子中,应用服务器、中间件和数据库也可以部署在不同的设备,如应用服务器、中间件和数据库均部署在独立的设备。参见图1所示,为本申请实施例的应用场景示意图,应用服务器的数量可以为一个或者多个,中间件的数量可以为一个,数据库的数量可以为两个或者两个以上,对此数量不做限制。在一个例子中,中间件是位于应用服务器与数据库之间的中转设备,中间件封装有与应用服务器的操作系统、通信协议等相关的处理方法,从而可以为数据库提供统一的接口,使得应用服务器在更换操作系统和通信协议等底层配置之后,不需要改变数据库的程序代码,并且增强了数据库的可移植性。中间件还可以管理数据库的连接,减轻数据库的负担。具体的,若不使用中间件,应用服务器每次访问数据库时,均需要与数据库建立一个连接,当大量应用服务器并行访问数据库时,需要同时与数据库建立大量连接,由于建立连接是耗费时间和系统资源的操作,且数据库的并行处理能力有限,因此,应用服务器对数据库的访问效率大大降低。中间件可以预先与数据库建立多个空闲连接,并对这些连接进行保持和管理,当应用服务器通过中间件请求访问数据库时,该应用服务器先与中间件建立连接,然后,中间件从与数据库建立的连接中选择空闲连接,并将该空闲连接分配给应用服务器使用,等应用服务器使用完毕后,中间件回收该连接,从而提高了应用服务器对数据库的访问效率。其中,上述数据库包括但不限于MySQL(MyStructuredQueryLanguage,即关系型数据库管理系统)数据库,上述中间件与数据库之间的连接,可以包括但不限于JDBC(JavaDatabaseConnectivity,java数据库连接)。当然,上述MySQL和JDBC只是本申请的一个示例,对此数据库、连接均不做限制。在一个例子中,可以将切换前的数据库称为第一数据库,将切换后的数据库称为第二数据库。在数据库切换之前,中间件在接收到应用服务器发送的操作请求后,将操作请求发送给第一数据库,第一数据库执行该操作请求,通过中间件向应用服务器返回该操作请求的执行结果。在数据库切换之后,中间件在接收到应用服务器发送的操作请求后,将操作请求发送给第二数据库,第二数据库执行该操作请求,通过中间件向应用服务器返回该操作请求的执行结果。其中,针对数据库切换之前的处理流程,则:当应用服务器需要访问数据库时,应用服务器需要与中间件建立通信连接(后续称为连本文档来自技高网...

【技术保护点】
1.一种数据库切换方法,其特征在于,应用于中间件,所述方法包括:接收第一数据库发送的切换请求;从所述第一数据库获取到连接状态信息,并将所述连接状态信息发送给第二数据库,以使所述第二数据库存储所述连接状态信息;将与所述第一数据库对应的操作请求发送给所述第二数据库,以使所述第二数据库根据所述连接状态信息对所述操作请求进行处理。

【技术特征摘要】
1.一种数据库切换方法,其特征在于,应用于中间件,所述方法包括:接收第一数据库发送的切换请求;从所述第一数据库获取到连接状态信息,并将所述连接状态信息发送给第二数据库,以使所述第二数据库存储所述连接状态信息;将与所述第一数据库对应的操作请求发送给所述第二数据库,以使所述第二数据库根据所述连接状态信息对所述操作请求进行处理。2.根据权利要求1所述的方法,其特征在于,所述从所述第一数据库获取到连接状态信息之后,所述方法还包括:判断所述第一数据库中是否存在未处理完成的操作请求;如果是,则保持所述中间件与所述第一数据库之间的连接;如果否,则断开所述中间件与所述第一数据库之间的连接。3.根据权利要求1所述的方法,其特征在于,所述将所述连接状态信息发送给第二数据库之前,所述方法还包括:从所述切换请求中解析出切换后的第二数据库的信息,并在所述中间件与所述第二数据库之间建立连接;或者,为所述第一数据库选择切换后的第二数据库,并在所述中间件与所述第二数据库之间建立连接。4.根据权利要求1所述的方法,其特征在于,所述从所述第一数据库获取到连接状态信息的过程,具体包括:向所述第一数据库发送连接状态请求消息;接收所述第一数据库返回的针对所述连接状态请求消息的响应消息;从所述响应消息中解析出所述第一数据库的连接状态信息。5.根据权利要求1所述的方法,其特征在于,所述将与所述第一数据库对应的操作请求发送给所述第二数据库的过程,具体包括:在接收到应用服务器发送的与所述第一数据库对应的操作请求后,将接收到的操作请求发送给所述第二数据库;和/或,从所述中间件查询出与所述第一数据库...

【专利技术属性】
技术研发人员:吴旭冬黄大鹏侯宏元
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1