CN109002373A - 数据库连接异常处理方法及装置 - Google Patents

数据库连接异常处理方法及装置 Download PDF

Info

Publication number
CN109002373A
CN109002373A CN201810820684.8A CN201810820684A CN109002373A CN 109002373 A CN109002373 A CN 109002373A CN 201810820684 A CN201810820684 A CN 201810820684A CN 109002373 A CN109002373 A CN 109002373A
Authority
CN
China
Prior art keywords
database
connection
request
target database
default
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810820684.8A
Other languages
English (en)
Inventor
何哲伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810820684.8A priority Critical patent/CN109002373A/zh
Publication of CN109002373A publication Critical patent/CN109002373A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本说明书实施例提供一种数据库连接异常处理方法及装置,该方法包括:按照预设第一时间间隔定时发送目标数据库实例的连接检测请求;如果检测到与目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔定时发送目标数据库实例的连接建立请求,预设第二时间间隔小于预设第一时间间隔;在接收到目标数据库实例对连接建立请求的反馈后,建立与目标数据库实例之间的数据库连接。本说明书实施例通过对数据库实例配置相应的连接状态检测机制,能够及时发现连接异常的数据库实例,针对连接异常的数据库实例,通过频繁地向其发送连接建立请求,来尽快恢复与数据库之间的正常连接,使得客户端的业务请求能够得到数据库的反馈,降低对业务请求的影响。

Description

数据库连接异常处理方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据库连接异常处理方法及装置。
背景技术
随着互联网技术不断的发展,通过在业务服务端中配置数据库可以满足网络中的业务数据的存储需求,业务服务端与客户端之间可以建立数据库连接,当客户端需要访问业务服务端数据库中的数据时,可以通过已建立的数据库连接向业务服务端发送数据访问请求。
然而,在一些情况(例如数据库主备切换)下,业务服务端与客户端之间的数据库连接会被强制断开。由于数据库连接被强制断开,客户端并不会接收到数据库连接已断开的提示,仍会使用之前的数据库连接进行数据访问,导致数据访问失败。因此,需要提出一种数据库连接异常处理方法。
发明内容
本说明书实施例的目的是提供一种数据库连接异常处理方法及装置,本说明书实施例是这样实现的:
第一方面,提供了一种数据库连接异常处理方法,所述方法包括:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
第二方面,提供了一种数据库连接异常处理装置,所述装置包括:
第一发送模块,用于按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
第二发送模块,用于在检测到与所述目标数据库实例之间的数据库连接异常的情况下,按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
连接建立模块,用于在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
第三方面,提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,客户端可以通过按照第一时间间隔,定时发送目标数据库的连接检测请求,来检测客户端与数据库之间的连接状态,当检测到连接异常后,通过频繁地发送目标数据库的连接建立请求,来恢复与数据库之间的正常连接。可见,本说明书实施例中,通过对每个数据库实例配置相应的连接状态检测机制,能够及时发现连接异常的数据库实例,针对连接异常的数据库实例,通过频繁地向其发送连接建立请求,来尽快恢复与数据库之间的正常连接,使得客户端的业务请求能够得到数据库的反馈,从而降低对业务请求的影响。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书的一个实施例的数据库连接异常处理方法的流程图;
图2是本说明书的一个实施例的数据库连接异常处理方法的应用场景图;
图3是本说明书的一个实施例的数据库连接异常处理装置的结构示意图;
图4是本说明书的一个实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例提供了一种数据库连接异常处理方法及装置。
为了便于理解,首先对本说明书实施例中涉及到的一些概念进行介绍。
数据库实例(DataBase,DB):也可以称为“数据库”,是按照数据结构来组织、存储和管理数据的仓库。
DB服务端(DB Server):数据库实例所在的服务器端,为了便于描述,后续用“服务端”指代。
DB客户端(DB Client):业务调度方的应用端,为了便于描述,后续用“客户端”指代。
客户端与服务端中数据库的交互过程:客户端与数据库之间建立数据库连接,客户端在数据库连接上传输数据访问请求(例如业务请求),服务端在接收到数据访问请求后,从数据库中读取相应的数据,提供给客户端。
需要说明的是,数据访问请求必须在数据库连接上传输,如果客户端没有建立与数据库之间的数据库连接或者与数据库之间的数据库连接断开,则无法实现数据库中数据的访问。
接下来对本说明书实施例提供的一种数据库连接异常处理方法进行介绍。
需要说明的是,本说明书实施例提供的方法适用于客户端,该客户端可以运行在移动终端中,在实际应用中,该移动终端可以包括:智能手机、平板电脑、智能手表和个人数字助理等;或者,该客户端可以运行于计算机设备中,在实际应用中,该计算机设备可以包括:笔记本电脑、台式电脑和桌面机等;或者,该客户端可以运行于服务器中,本说明书实施例对此不作限定。
图1是本说明书的一个实施例的数据库连接异常处理方法的流程图,如图1所示,该方法可以包括以下步骤:步骤102、步骤104和步骤106,其中,
在步骤102中,按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求。
本说明书实施例中,连接检测请求用于检测客户端与目标数据库实例之间的数据库连接状态,即用于数据库连接有效性的检测。
可选地,可以采用与应用端口保活心跳类似的检测方式,在这种情况下,连接检测请求用于对数据库端口进行访问。
优选地,考虑到数据库的特性,为了降低客户端资源和数据库资源的占用,连接检测请求可以为轻量级的查询请求,即保证对数据库访问的连通即可。
在一个例子中,该轻量级的查询请求可以用于请求访问数据库中某个小流量(访问量小)的业务表或配置表,例如,select*from数据库配置表limit1;或者该SQL查询请求为无意义的测试请求,例如,在Oracle中,执行select sysdate from dual测试,如果数据库连接正常,则可得到数据库的系统日期。
可见,相较于使用业务请求进行数据库连接有效性的检测,本说明书实施例中,使用轻量级的查询请求进行数据库连接有效性的检测,可以节约客户端资源和数据库资源。
本说明书实施例中,如果客户端仅连接着一个数据库实例,那么目标数据库实例即为该客户端连接的一个数据库实例;如果客户端连接着多个数据库实例,那么目标数据库实例可以为其中的一个数据库实例,也可以为其中的多个数据库实例。
考虑到通常情况下每个客户端可能连接着多个数据库实例,本说明书实施例中,可以对每个数据库实例均配置单独的连接状态检测机制,即针对每个数据库实例,均按照预设第一时间间隔,发送该数据库实例的连接检测请求。
这样,一方面,可以精确化地检测每个数据库实例的连接状态,及时发现连接状态存在异常的数据库实例,另一方面,在单个数据库实例的连接状态出现异常时,有针对性地定位到连接出现异常的数据库实例,并进行相应的处理,避免影响到其他数据库实例的运行。
可以理解的是,预设第一时间间隔关系着在数据库实例出现连接异常时,客户端能够在多久内发现,预设第一时间间隔越小,越能够尽早发现连接异常的情况。
本说明书实施例中,考虑到客户端的资源占用以及数据库资源自用的情况,可以设置预设第一时间间隔为200毫秒或者300毫秒,在这种情况下,1秒内对一个数据库实例进行3~5次连接状态的检测。或者,也可以根据实际需要,对预设第一时间间隔进行设置,本说明书实施例对此不作限定。
在步骤104中,如果检测到与目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送目标数据库实例的连接建立请求,其中,预设第二时间间隔小于预设第一时间间隔。
本说明书实施例中,可以根据目标数据库实例对连接检测请求的反馈情况(包括:反馈和未反馈),来确定是否检测到与目标数据库实例之间的数据库连接异常。
可选地,如果在发送连接检测请求的预设第一时长后,未接收到目标数据库实例对连接检测请求的反馈,则确定检测到与目标数据库实例之间的数据库连接异常。
在一个例子中,预设第一时长为200毫秒,客户端定时向服务端发送目标数据库实例的连接检测请求,该连接检测请求用于请求访问目标数据库实例中的业务表1,如果在发送连接检测请求后的200毫秒后,客户端未接收到目标数据库返回的业务表1,则确定检测到客户端与目标数据库实例之间的数据库连接异常。
本说明书实施例中,考虑到客户端第一次未接收到目标数据库实例对连接检测请求的反馈,有可能是网络状况不好导致的,为了避免这种情况下的误判,可以重试N次,例如,重试3~30次。
优选地,如果对发送的N个连接检测请求,均未接收到目标数据库实例对连接检测请求的反馈,则确定检测到与目标数据库实例之间的数据库连接异常。
在一个例子中,N为5,客户端定时向服务端发送目标数据库实例的连接检测请求,该连接检测请求用于请求访问目标数据库实例中的业务表2,如果在连续发送5个连接检测请求后,客户端均未接收到目标数据库返回的业务表2,则确定检测到客户端与目标数据库实例之间的数据库连接异常。
本说明书实施例中,在发现客户端与目标数据库实例的连接异常后,按照预设第二时间间隔,定时向服务端发送目标数据库实例的连接建立请求,即通过频繁地向服务端发送目标数据库实例的连接建立请求,来尽量保证在业务请求到达之前,恢复客户端与目标数据库实例的正常连接,从而减少对业务请求的影响。
本说明书实施例中,在检测到与目标数据库实例之间的数据库连接异常之后,可以选择断开与目标数据库实例之间的数据库连接,例如,客户端可以断开连接池中对目标数据库实例中的所有数据库连接,以节省连接池的空间;或者,也可以选择不断开与目标数据库实例之间的数据库连接。
具体的,在检测到与目标数据库实例之间的数据库连接异常之后,可以先断开与目标数据库实例之间的数据库连接,之后,再按照预设第二时间间隔,定时向服务端发送目标数据库实例的连接建立请求。
在这种情况下,连接建立请求用于请求与目标数据库实例建立新的数据库连接,这里提到的“新的数据库连接”是与之前建立的数据库连接,完全不同的数据库连接。
或者,在检测到与目标数据库实例之间的数据库连接异常之后,可以不断开与目标数据库实例之间的数据库连接,直接按照预设第二时间间隔,定时向服务端发送目标数据库实例的连接建立请求。
在这种情况下,可选地,连接建立请求可以用于请求与目标数据库实例建立新的数据库连接,这里提到的“新的数据库连接”是与之前建立的数据库连接,完全不同的数据库连接。
或者,也可以不建立新的数据库连接,而对之前建立的数据库连接进行重新连接(又可以称之为“重连”或“刷新”),具体的,客户端在之前建立的数据库连接上不停地发送连接建立请求(具体为查询请求),如果客户端接收到目标数据库实例对连接建立请求的反馈,则表明目标数据库实例(数据库实例通常具有修复机制)和数据库连接恢复正常,即数据库连接的重连成功。
考虑到客户端资源和数据库资源的占用情况,优先选择使用轻量级的查询请求替代业务请求,进行数据库连接的“刷新”,此时,连接建立请求为轻量级的查询请求。
在一个例子中,该轻量级的查询请求用于请求访问数据库中某个小流量(访问量小)的业务表或配置表,例如,select*from数据库配置表limit1;或者该SQL查询请求为无意义的测试请求,例如,在Oracle中,执行select sysdate from dual测试,如果数据库连接正常,则可得到数据库的系统日期。
相较于使用业务请求进行数据库连接有效性的检测,本说明书实施例中,使用轻量级的查询请求进行数据库连接的“刷新”,可以节约客户端资源和数据库资源。
此外,本说明书实施例中,当连接建立请求为轻量级的查询请求时,如果连接检测请求也为轻量级的查询请求,则可以复用连接检测请求进行数据库连接的“刷新”。
本说明书实施例中,可以根据数据库实例的数据库连接数以及业务量,设置预设第二时间间隔。
在一个例子中,如果数据库连接较少或业务量较小,则增加预设第二时间间隔;如果数据库连接较多或业务量较多,则减少预设第二时间间隔。例如,客户端的业务量较多,目标数据库实例有10个数据库连接,可以设置第二时间间隔为100毫秒。
此外,本说明书实施例中,在设置预设第二时间间隔时,还可以考虑连接建立请求的发送次数是否会超出数据库的资源承载上线,以避免大量的连接建立请求导致数据库再次失败。
在步骤106中,在接收到目标数据库实例对连接建立请求的反馈后,建立与目标数据库实例之间的数据库连接。
本说明书实施例中,在频繁发送目标数据库实例的连接建立请求的过程中,客户端仍然会定时发送目标数据库实例的连接检测请求,即对数据库连接状态有效性的检测仍旧保持进行。如果检测到数据库连接状态异常,则继续按照预设第二时间间隔,定时发送目标数据库实例的连接建立请求;如果检测到数据库连接状态恢复正常,则停止发送目标数据库实例的连接建立请求。
本说明书实施例中,如果连接建立请求用于请求建立新的数据库连接,那么客户端在接收目标数据库实例对连接建立请求的反馈后,建立与目标数据库实例之间新的数据库连接;如果连接建立请求用于“刷新”之前建立的数据库连接,那么客户端在接收目标数据库实例对连接建立请求的反馈后,确定之前建立的数据库连接恢复为可用状态。
为了便于理解,结合图2所示的应用场景图对本说明书实施例的技术方案进行描述,如图2所示,图2所示的应用场景图中包括:客户端220和服务端240,其中,服务端240中配置数据库实例1、数据库实例2和数据库实例3。
客户端220针对数据库实例1、数据库实例2和数据库实例3,均间隔200毫秒定时发送对应的连接检测请求,如果客户端220在预设时长内接收到数据库实例2和3对连接检测请求的反馈,而未接收到数据库实例1对连接检测请求的反馈,则确定数据库实例1的连接异常。
在确定数据库实例1的连接异常后,每间隔100毫秒发送数据库实例1的连接建立请求,同时继续发送数据库实例1、数据库实例2和数据库实例3的连接检测请求。
如果客户端220接收到数据库实例1对连接建立请求的反馈,则确定数据库实例1的连接恢复正常,停止发送数据库实例1的连接建立请求。
由上述实施例可见,该实施例中,客户端可以通过按照第一时间间隔,定时发送目标数据库的连接检测请求,来检测客户端与数据库之间的连接状态,当检测到连接异常后,通过频繁地发送目标数据库的连接建立请求,来恢复与数据库之间的正常连接。可见,本说明书实施例中,通过对每个数据库实例配置相应的连接状态检测机制,能够及时发现连接异常的数据库实例,针对连接异常的数据库实例,通过频繁地向其发送连接建立请求,来尽快恢复与数据库之间的正常连接,使得客户端的业务请求能够得到数据库的反馈,从而降低对业务请求的影响。
图3是本说明书的一个实施例的数据库连接异常处理装置的结构示意图,如图3所示,在一种软件实施方式中,数据库连接异常处理装置300可以包括:第一发送模块301、第二发送模块302和连接建立模块303,其中,
第一发送模块301,用于按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
第二发送模块302,用于在检测到与所述目标数据库实例之间的数据库连接异常的情况下,按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
连接建立模块303,用于在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
由上述实施例可见,该实施例中,客户端可以通过按照第一时间间隔,定时发送目标数据库的连接检测请求,来检测客户端与数据库之间的连接状态,当检测到连接异常后,通过频繁地发送目标数据库的连接建立请求,来恢复与数据库之间的正常连接。可见,本说明书实施例中,通过对每个数据库实例配置相应的连接状态检测机制,能够及时发现连接异常的数据库实例,针对连接异常的数据库实例,通过频繁地向其发送连接建立请求,来尽快恢复与数据库之间的正常连接,使得客户端的业务请求能够得到数据库的反馈,从而降低对业务请求的影响。
可选地,作为一个实施例,数据库连接异常处理装置300,还可以包括:
第一确定模块,用于在发送所述连接检测请求的预设第一时长后,未接收到所述目标数据库实例对所述连接检测请求的反馈的情况下,确定检测到与所述目标数据库实例之间的数据库连接异常。
可选地,作为一个实施例,数据库连接异常处理装置300,还可以包括:
第二确定模块,用于在对发送的N个所述连接检测请求,均未接收到所述目标数据库实例对所述连接检测请求的反馈的情况下,确定检测到与所述目标数据库实例之间的数据库连接异常。
可选地,作为一个实施例,数据库连接异常处理装置300,还可以包括:
连接断开模块,用于在检测到与所述目标数据库实例之间的数据库连接异常的情况下,断开与所述目标数据库实例之间的数据库连接。
可选地,作为一个实施例,数据库连接异常处理装置300,还可以包括:
控制模块,用于在建立与所述目标数据库实例之间的数据库连接之后,停止发送所述目标数据库实例的连接建立请求。
可选地,作为一个实施例,所述连接检测请求可以为轻量级的查询请求。
可选地,作为一个实施例,所述连接建立请求可以为轻量级的查询请求。
图4是本说明书的一个实施例的电子设备的结构示意图,如图4所示,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库连接异常处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
本说明书实施例提供一种数据库连接异常处理方法,可以通过按照第一时间间隔,定时发送目标数据库的连接检测请求,来检测客户端与数据库之间的连接状态,当检测到连接异常后,通过频繁地发送目标数据库的连接建立请求,来恢复与数据库之间的正常连接。可见,本说明书实施例中,通过对每个数据库实例配置相应的连接状态检测机制,能够及时发现连接异常的数据库实例,针对连接异常的数据库实例,通过频繁地向其发送连接建立请求,来尽快恢复与数据库之间的正常连接,使得客户端的业务请求能够得到数据库的反馈,从而降低对业务请求的影响。
可选地,作为一个实施例,检测与所述目标数据库实例之间的数据库连接异常包括:
如果在发送所述连接检测请求的预设第一时长后,未接收到所述目标数据库实例对所述连接检测请求的反馈,则确定检测到与所述目标数据库实例之间的数据库连接异常。
可选地,作为一个实施例,检测与所述目标数据库实例之间的数据库连接异常包括:
如果对发送的N个所述连接检测请求,均未接收到所述目标数据库实例对所述连接检测请求的反馈,则确定检测到与所述目标数据库实例之间的数据库连接异常。
可选地,作为一个实施例,还包括:
如果检测到与所述目标数据库实例之间的数据库连接异常,则断开与所述目标数据库实例之间的数据库连接。
可选地,作为一个实施例,在所述建立与所述目标数据库实例之间的数据库连接的步骤之后,还包括:
停止发送所述目标数据库实例的连接建立请求。
可选地,作为一个实施例,所述连接检测请求为轻量级的查询请求。
可选地,作为一个实施例,所述连接建立请求为轻量级的查询请求。
上述如本说明书图3所示实施例揭示的数据库连接异常处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现数据库连接异常处理装置在图1所示实施例的功能,本说明书实施例在此不再赘述。
本说明书实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (16)

1.一种数据库连接异常处理方法,所述方法包括:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
2.根据权利要求1所述的方法,检测与所述目标数据库实例之间的数据库连接异常包括:
如果在发送所述连接检测请求的预设第一时长后,未接收到所述目标数据库实例对所述连接检测请求的反馈,则确定检测到与所述目标数据库实例之间的数据库连接异常。
3.根据权利要求1所述的方法,检测与所述目标数据库实例之间的数据库连接异常包括:
如果对发送的N个所述连接检测请求,均未接收到所述目标数据库实例对所述连接检测请求的反馈,则确定检测到与所述目标数据库实例之间的数据库连接异常。
4.根据权利要求1所述的方法,还包括:
如果检测到与所述目标数据库实例之间的数据库连接异常,则断开与所述目标数据库实例之间的数据库连接。
5.根据权利要求1所述的方法,在所述建立与所述目标数据库实例之间的数据库连接的步骤之后,还包括:
停止发送所述目标数据库实例的连接建立请求。
6.根据权利要求1所述的方法,所述连接检测请求为轻量级的查询请求。
7.根据权利要求1所述的方法,所述连接建立请求为轻量级的查询请求。
8.一种数据库连接异常处理装置,所述装置包括:
第一发送模块,用于按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
第二发送模块,用于在检测到与所述目标数据库实例之间的数据库连接异常的情况下,按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
连接建立模块,用于在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
9.根据权利要求8所述的装置,所述装置还包括:
第一确定模块,用于在发送所述连接检测请求的预设第一时长后,未接收到所述目标数据库实例对所述连接检测请求的反馈的情况下,确定检测到与所述目标数据库实例之间的数据库连接异常。
10.根据权利要求8所述的装置,所述装置还包括:
第二确定模块,用于在对发送的N个所述连接检测请求,均未接收到所述目标数据库实例对所述连接检测请求的反馈的情况下,确定检测到与所述目标数据库实例之间的数据库连接异常。
11.根据权利要求8所述的装置,所述装置还包括:
连接断开模块,用于在检测到与所述目标数据库实例之间的数据库连接异常的情况下,断开与所述目标数据库实例之间的数据库连接。
12.根据权利要求8所述的装置,所述装置还包括:
控制模块,用于在建立与所述目标数据库实例之间的数据库连接之后,停止发送所述目标数据库实例的连接建立请求。
13.根据权利要求8所述的装置,所述连接检测请求为轻量级的查询请求。
14.根据权利要求8所述的装置,所述连接建立请求为轻量级的查询请求。
15.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
16.一种计算机存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
按照预设第一时间间隔,定时发送目标数据库实例的连接检测请求;
如果检测到与所述目标数据库实例之间的数据库连接异常,则按照预设第二时间间隔,定时发送所述目标数据库实例的连接建立请求,其中,所述预设第二时间间隔小于所述预设第一时间间隔;
在接收到所述目标数据库实例对所述连接建立请求的反馈后,建立与所述目标数据库实例之间的数据库连接。
CN201810820684.8A 2018-07-24 2018-07-24 数据库连接异常处理方法及装置 Pending CN109002373A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810820684.8A CN109002373A (zh) 2018-07-24 2018-07-24 数据库连接异常处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810820684.8A CN109002373A (zh) 2018-07-24 2018-07-24 数据库连接异常处理方法及装置

Publications (1)

Publication Number Publication Date
CN109002373A true CN109002373A (zh) 2018-12-14

Family

ID=64597813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810820684.8A Pending CN109002373A (zh) 2018-07-24 2018-07-24 数据库连接异常处理方法及装置

Country Status (1)

Country Link
CN (1) CN109002373A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767269A (zh) * 2020-06-24 2020-10-13 苏州紫焰网络科技有限公司 数据库实例的健康检测方法、装置、设备及存储介质
CN111930719A (zh) * 2020-08-13 2020-11-13 中国工商银行股份有限公司 一种数据库访问方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708175A (zh) * 2012-05-07 2012-10-03 北京航空航天大学 一种针对数据库连接意外中断的自动重连方法及其装置
US20150189034A1 (en) * 2013-12-31 2015-07-02 Rasesh Kelkar Enhanced Shared Memory Based Communication Driver for Improved Performance and Scalability
CN105528373A (zh) * 2014-10-21 2016-04-27 阿里巴巴集团控股有限公司 数据库故障处理方法、装置、系统及服务器
CN107329858A (zh) * 2017-07-10 2017-11-07 上海哎媲媲网络技术有限公司 一种数据写入Redis失败的快速容错处理方法
CN108108479A (zh) * 2018-01-04 2018-06-01 山东中创软件商用中间件股份有限公司 一种数据库连接检测方法、系统、设备及计算机介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708175A (zh) * 2012-05-07 2012-10-03 北京航空航天大学 一种针对数据库连接意外中断的自动重连方法及其装置
US20150189034A1 (en) * 2013-12-31 2015-07-02 Rasesh Kelkar Enhanced Shared Memory Based Communication Driver for Improved Performance and Scalability
CN105528373A (zh) * 2014-10-21 2016-04-27 阿里巴巴集团控股有限公司 数据库故障处理方法、装置、系统及服务器
CN107329858A (zh) * 2017-07-10 2017-11-07 上海哎媲媲网络技术有限公司 一种数据写入Redis失败的快速容错处理方法
CN108108479A (zh) * 2018-01-04 2018-06-01 山东中创软件商用中间件股份有限公司 一种数据库连接检测方法、系统、设备及计算机介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767269A (zh) * 2020-06-24 2020-10-13 苏州紫焰网络科技有限公司 数据库实例的健康检测方法、装置、设备及存储介质
CN111930719A (zh) * 2020-08-13 2020-11-13 中国工商银行股份有限公司 一种数据库访问方法、装置及系统
CN111930719B (zh) * 2020-08-13 2023-09-19 中国工商银行股份有限公司 一种数据库访问方法、装置及系统

Similar Documents

Publication Publication Date Title
US11068964B2 (en) Method and device for processing service request
EP3418877A1 (en) Data writing and reading method and apparatus, and cloud storage system
US8984328B2 (en) Fault tolerance in a parallel database system
US10374998B2 (en) Method, apparatus and system for customer service information forwarding
US8447757B1 (en) Latency reduction techniques for partitioned processing
CN111917846A (zh) 一种Kafka集群切换方法、装置、系统、电子设备及可读存储介质
US10389614B2 (en) Web site reachability management for content browsing
CN109151028A (zh) 一种分布式存储系统容灾方法及装置
CN105446827A (zh) 一种数据库故障时的数据存储方法和设备
CN105808407A (zh) 管理设备的方法、设备和设备管理控制器
CN107861691B (zh) 一种多控存储系统的负载均衡方法和装置
CN114095567B (zh) 数据访问请求的处理方法、装置、计算机设备及介质
CN107666493B (zh) 一种数据库配置方法及其设备
US20200036812A1 (en) Resource Download Method, Electronic Device, and Apparatus
US20190340050A1 (en) Early diagnosis of hardware, software or configuration problems in data warehouse system utilizing grouping of queries based on query parameters
CN110633046A (zh) 一种分布式系统的存储方法、装置、存储设备及存储介质
CN109002373A (zh) 数据库连接异常处理方法及装置
WO2017118318A1 (zh) 一种数据存储与业务处理的方法及装置
CN111209260A (zh) 基于分布式存储的nfs集群及其提供nfs服务的方法
CN109684093A (zh) 数据处理方法及系统
JP6779307B2 (ja) ページ表示のための方法及び装置
CN108427635A (zh) 快速测试web页面的方法、服务器及计算机可读存储介质
CN111800511B (zh) 同步登录态的处理方法、系统、设备及可读存储介质
CN103500108A (zh) 系统内存访问方法、节点控制器和多处理器系统
CN105205160A (zh) 一种数据写入方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.