本发明专利技术公开了一种多数据库的连接方法及装置,包括:启动时,加载配置中的全部数据库连接池,以及,在所有数据库连接池中,设置主用数据库对应的连接池为当前使用连接池,设置剩余的备用数据库对应的连接池为备用连接池;接到调用者发起的数据库资源请求时,判断主用数据库是否能够连接,如果是,则进行连接,如果否,则进行数据库切换,在备用数据库中选择一个数据库进行连接;使调用者获得连接。本发明专利技术可以实现当数据库群中的某数据库无法正常响应时,自动选择其他的有效数据库作为数据库的连接提供者,以提高应用系统的可靠性,提高了系统的稳定性,避免了数据库停用。
【技术实现步骤摘要】
本专利技术涉及数据库连接
,特别是涉及一种多数据库的连接方法及装置。
技术介绍
在使用多数据库作为数据提供者的情况下,普通数据库连接池只能同时使用一个数据库作为连接提供者,如果当前数据库出现异常,需要停止应用直至数据库恢复。现有的解决方案中,有通过设置主用数据库和备用数据库来解决上述问题的方案,备用数据库的主要作用是用于数据备份,虽然能够保证数据的不丢失,但是在主用数据库出现问题时,却很难保证系统继续正常运行。如果系统要在短期内恢复访问,需要手动修改数据库配置,调 用备用数据库,并重启服务。当主用数据库恢复正常以后,还要再次修改配置恢复对主用数据库的访问,整个过程会造成整个系统的不稳定甚至停用。
技术实现思路
本专利技术要解决的技术问题是提供一种多数据库的连接方法及装置,用以解决现有技术中数据库出现问题时造成的系统不稳定甚至停用的问题。为解决上述技术问题,一方面,本专利技术提供一种多数据库的连接方法,包括启动时,加载配置中的全部数据库连接池,以及,在所有数据库连接池中,设置主用数据库对应的连接池为当前使用连接池,设置剩余的备用数据库对应的连接池为备用连接池;接到调用者发起的数据库资源请求时,判断主用数据库是否能够连接,如果是,则进行连接,如果否,则进行数据库切换,在备用数据库中选择一个数据库进行连接;使调用者获得连接。进一步,启动时,还启动数据状态监视器,用于对主用数据库的健康参数进行监测,获取主用数据库的健康参数。进一步,判断数据库是否能够连接,具体包括以下步骤首先判断主用数据库是否已经停止,如果是,则判定主用数据库无法连接;如果否,其次判断主用数据库对应的当前使用连接池是否已经连接满,如果是,则判定主用数据库无法连接;如果否,最后判断主用数据库的健康参数是否达到预先设定的健康参数阈值,如果是,则判定主用数据库无法连接;如果否,则判定主用数据库可以连接。进一步,在调用者发起数据库资源请求之后,对进入获取连接的线程进行计数,当计数器达到预先设定的计数阈值,调用者还没有获得连接时,判定主用数据库无法连接。进一步,在调用者获得连接之后,还包括数据状态监视器对当前连接的数据库的健康参数进行监测,获取当前连接数据库的健康参数,并判断是否达到预先设定的健康参数阈值,如果是,则修改当前连接的数据库状态为不可连接,进行数据库切换;如果否,则保持连接。进一步,数据状态监视器对当前连接的数据库的健康参数进行监测,具体包括判断当前连接的数据库执行读写操作是否出现异常,如果是,则对当前连接的数据库的健康参数减I ;如果否,则对当前连接的数据库的健康参数加2 ;当前连接的数据库出现坏连接,则对当前连接的数据库的健康参数加4。另一方面,本专利技术还提供一种多数据库的连接装置,包括启动配置模块,用于启动时,加载配置中的全部数据库连接池,以及,在所有数据库连接池中,设置主用数据库对应的连接池为当前使用连接池,设置剩余的备用数据库对应的连接池为备用连接池;连接切换模块,用于接到调用者发起的数据库资源请求时,判断主用数据库是否能够连接,如果是,则进行连接,如果否,则进行数据库切换,在备用数据库中选择一个数据库进行连接;使调用者获得连接。进一步,所述装置还包括 数据状态监视器,用于启动后对主用数据库的健康参数进行监测,获取主用数据库的健康参数;所述连接切换模块首先判断主用数据库是否已经停止,如果是,则判定主用数据库无法连接;如果否,其次判断主用数据库对应的当前使用连接池是否已经连接满,如果是,则判定主用数据库无法连接;如果否,最后判断主用数据库的健康参数是否达到预先设定的健康参数阈值,如果是,则判定主用数据库无法连接;如果否,则判定主用数据库可以连接;所述连接切换模块在调用者发起数据库资源请求之后,对进入获取连接的线程进行计数,当计数器达到预先设定的计数阈值,调用者还没有获得连接时,判定主用数据库无法连接。进一步,所述数据状态监视器还用于对当前连接的数据库的健康参数进行监测,获取当前连接数据库的健康参数,并判断是否达到预先设定的健康参数阈值,如果是,则修改当前连接的数据库状态为不可连接,进行数据库切换;如果否,则保持连接。进一步,所述数据状态监视器判断当前连接的数据库执行读写操作是否出现异常,如果是,则对当前连接的数据库的健康参数减I ;如果否,则对当前连接的数据库的健康参数加2 ;当前连接的数据库出现坏连接,则对当前连接的数据库的健康参数加4。本专利技术有益效果如下本专利技术可以实现当数据库群中的某数据库无法正常响应时,自动选择其他的有效数据库作为数据库的连接提供者,以提高应用系统的可靠性,提高了系统的稳定性,避免了数据库停用。附图说明图I是本专利技术实施例中一种多数据库的连接方法的流程图;图2是本专利技术实施例中一种多数据库的连接装置的结构示意图。具体实施例方式以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。如图I所示,本专利技术实施例涉及一种多数据库的连接方法,包括步骤S101,系统启动时,加载配置中的全部数据库连接池,S卩,将系统中的所有数据库在启动时都加载进来。另外,还需要在所有数据库连接池中,设置主用数据库对应的连接池为当前使用连接池,设置剩余的备用数据库对应的连接池为备用连接池。本步骤中,在系统启动时,还启动数据状态监视器,用于对主用数据库的健康参数进行监测,获取主用数据库的健康参数。步骤S102,系统接到调用者发起的数据库资源请求时,判断主用数据库是否能够连接,如果是,则进行连接,如果否,则进行数据库切换,在备用数据库中选择一个数据库进行连接;调用者获得连接。本步骤中,判断数据库是否能够连接,具体包括以下步骤·首先判断主用数据库是否已经停止,如果是,则判定主用数据库无法连接;如果否,其次判断主用数据库对应的当前使用连接池是否已经连接满,如果是,则判定主用数据库无法连接;如果否,最后判断主用数据库的健康参数是否达到预先设定的健康参数阈值,如果是,则判定主用数据库无法连接;如果否,则判定主用数据库可以连接。在备用数据库中选择一个数据库进行连接,可以在备用数据库中随机选择一个数据库进行连接,也可以根据预先设定的优先级或选取顺序进行选择。另外,在调用者发起数据库资源请求之后,对进入获取连接的线程进行计数,当计数器达到预先设定的计数阈值,调用者依然没有获得连接时,则直接返回空值,表示主用数据库无法正常提供连接。这样做的好处在于当存在η个数据库时,所造成的影响仅为I/η,降低了因为数据库故障造成的不利影响。对于当前连接的数据库是备用数据库时,调用者对当前连接的数据库只能进行只读操作,如果当前进行的操作不是只读操作,则无法连接备用数据库。当主用数据库出现问题时,其他备用数据库可以正常提供服务,不影响正常访问,为恢复主用数据库争取时间。当主用数据库的负载过大时,可以由其他备用数据库提供查询服务,这样可以减小主用数据库的负载压力,当主用数据库压力下降时,当前连接的数据库自动恢复为主用数据库。步骤S103,在调用者获得连接之后,数据状态监视器对当前连接的数据库的健康参数进行监测,获取当前连接数据库的健康参数,并判断是否达到预先设定的健康参数阈值,如果是,则修改当前连接的数据库状态为不可连接,进行本文档来自技高网...
【技术保护点】
一种多数据库的连接方法,其特征在于,包括:启动时,加载配置中的全部数据库连接池,以及,在所有数据库连接池中,设置主用数据库对应的连接池为当前使用连接池,设置剩余的备用数据库对应的连接池为备用连接池;接到调用者发起的数据库资源请求时,判断主用数据库是否能够连接,如果是,则进行连接,如果否,则进行数据库切换,在备用数据库中选择一个数据库进行连接;使调用者获得连接。
【技术特征摘要】
1.一种多数据库的连接方法,其特征在于,包括 启动时,加载配置中的全部数据库连接池,以及,在所有数据库连接池中,设置主用数据库对应的连接池为当前使用连接池,设置剩余的备用数据库对应的连接池为备用连接池; 接到调用者发起的数据库资源请求时,判断主用数据库是否能够连接,如果是,则进行连接,如果否,则进行数据库切换,在备用数据库中选择一个数据库进行连接;使调用者获得连接。2.如权利要求I所述的多数据库的连接方法,其特征在于,启动时,还启动数据状态监视器,用于对主用数据库的健康参数进行监测,获取主用数据库的健康参数。3.如权利要求2所述的多数据库的连接方法,其特征在于,判断数据库是否能够连接,具体包括以下步骤 首先判断主用数据库是否已经停止,如果是,则判定主用数据库无法连接;如果否,其次判断主用数据库对应的当前使用连接池是否已经连接满,如果是,则判定主用数据库无法连接;如果否,最后判断主用数据库的健康参数是否达到预先设定的健康参数阈值,如果是,则判定主用数据库无法连接;如果否,则判定主用数据库可以连接。4.如权利要求I或3所述的多数据库的连接方法,其特征在于,在调用者发起数据库资源请求之后,对进入获取连接的线程进行计数,当计数器达到预先设定的计数阈值,调用者还没有获得连接时,判定主用数据库无法连接。5.如权利要求3所述的多数据库的连接方法,其特征在于,在调用者获得连接之后,还包括 数据状态监视器对当前连接的数据库的健康参数进行监测,获取当前连接数据库的健康参数,并判断是否达到预先设定的健康参数阈值,如果是,则修改当前连接的数据库状态为不可连接,进行数据库切换;如果否,则保持连接。6.如权利要求5所述的多数据库的连接方法,其特征在于,数据状态监视器对当前连接的数据库的健康参数进行监测,具体包括 判断当前连接的数据库执行读写操作是否出现异常,如果是,则对当前连接的数据库的健康参数减I ;如果否,则对当前连接的数据库的健康参数加2 ;...
【专利技术属性】
技术研发人员:任军,柳忠伟,
申请(专利权)人:五八有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。