一种提升数据库可用性的方法和装置制造方法及图纸

技术编号:17615192 阅读:34 留言:0更新日期:2018-04-04 06:31
本发明专利技术提供一种提升数据库可用性的方法和装置,能够在数据库出现故障时自动检测并且自动执行切换方案,提升了数据库的可用性;同时避免了运维人员实时检查数据库,减少了人力监管成本。本发明专利技术的提升数据库可用性的方法包括:数据库服务器每隔设定的时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端;所述数据库服务器接收到客户端所返回的数据库不可用的检测报告后,建立该数据库的异常检测任务,并将该异常检测任务分配给N个客户端;所述数据库服务器接收到所述N个客户端返回的所述数据库异常的检测报告后,根据所收到的数据库异常检测报告的数量判定该数据库为故障数据库,并将该数据库切换为该数据库的备用数据库。

A method and device to improve the availability of the database

The present invention provides a method and a device to enhance the availability of database, can appear in the database when the fault automatic detection and automatic switching scheme, and enhance the availability of the database; at the same time avoid the real-time inspection of database operation and maintenance personnel, reduce the cost of human supervision. Including the method to improve the availability of database of the invention: the database server every time will set the database availability detection tasks in accordance with the rules set to send has to establish a database connection of the client; the database server receives the client return data library is not available for detection of anomaly detection task after the report, the establishment of the database. And the anomaly detection tasks assigned to the N client; the database server receives the test report of the database of the N client return anomalies, according to the received data base anomaly detection report database for determining the number of the fault database, and the database of the database is switched to the standby database.

【技术实现步骤摘要】
一种提升数据库可用性的方法和装置
本专利技术涉及计算机及其软件
,特别涉及一种提升数据库可用性的方法和装置。
技术介绍
随着互联网日益迅速发展,互联网公司的各种数据呈现爆炸式增长,现在虽然有很多分布式非关系型数据库NoSql解决了数据增长所带来的一部分问题,但是还有一些业务是需要关系型数据库进行支撑的。现有的关系型数据库在分布式部署分布式事物方面较弱,尤其是当数据量大的时候,单机数据库成为性能瓶颈;现在很多公司的产品虽然在使用自己的数据水平切分规则,但只能暂时解决数据库性能问题。现有技术方案中,如果数据库出现故障,被中断的服务需等待数据库问题解决后,才重新向用户提供服务;或者使用主从数据库切换,一般应用连接数据库时使用域名或者虚拟IP,人工执行切换方案时使用从数据库IP与域名或者虚拟IP进行映射,并且为了防止数据丢失,通常先在应用层面限制请求流量,切换后重新开启请求流量;而如果数据库服务器出现故障则需要人为进行干预,而且一旦增加或者减少服务器的数量则需要对大量数据进行迁移,进而造成运维困难。综上所述,现有技术中所存在的缺点主要包括以下几方面:1.数据库出现故障时往往不能被运维人员即时发现,需要人为确定问题然后执行主从数据库切换方案,并且在进行数据库切换时需要多方配合完成,不能即时修复问题。2.由于数据库出现问题的时间不可预知,因而需要运维人员7×24小时值班检查,增加了人力监管的成本。3.由于现有技术方案不是分布式的,在应用和数据库之间还有一层单独的中间件,应用访问数据库是通过中间件进行访问的,所以单个中间件一旦故障则导致服务器不可用,而且所有请求都访问中间件,则会使中间件响应速度变慢导致整体性能下降,从而出现单点故障不可用或者单点性能瓶颈。4.现有的技术方案中,客户端在连接数据库时由开发人根据数据库配置信息进行配置,从而使数据库的重要信息对于开发人员来说是透明的,进而形成安全隐患。
技术实现思路
有鉴于此,本专利技术提供一种提升数据库可用性的方法和装置,能够在数据库出现故障时自动检测并且自动执行切换方案,提升了数据库的可用性;同时避免了运维人员实时检查数据库,减少了人力监管成本。为实现上述目的,根据本专利技术的一个方面,提供了一种提升数据库可用性的方法。本专利技术的提升数据库可用性的方法包括:数据库服务器每隔设定的时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端;所述数据库服务器接收到客户端所返回的数据库不可用的检测报告后,建立该数据库的异常检测任务,并将该异常检测任务分配给N个客户端;所述数据库服务器接收到所述N个客户端返回的所述数据库异常的检测报告后,根据所收到的数据库异常检测报告的数量判定该数据库为故障数据库,并将该数据库切换为该数据库的备用数据库。可选地,根据所收到的数据库异常检测报告的数量判定该数据库为故障数据库的步骤包括:判断所接收到的数据库异常检测报告的数量是否不小于(N+1)/2,并在数量不小于(N+1)/2时,判定该数据库为故障数据库;所述N为不小于3的奇数。可选地,数据库服务器每隔设定的第一时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端的步骤之前还包括:数据库服务器接收客户端所注册的客户端信息,并根据客户端信息确定已建立数据库连接的客户端的数量。可选地,将该数据库切换为该数据库的备用数据库的步骤之后还包括:数据库服务器记录执行日志;所述执行日志包括数据库切换日志和数据库调度日志。可选地,数据库服务器接收客户端所注册的客户端信息的步骤之后还包括:数据库服务器将所述接收到的客户端信息存储于备用服务器中。可选地,数据库服务器将所述接收到的客户端信息存储于备用服务器中的步骤之后还包括:在数据库服务器发生故障的情况下,将备用服务器作为数据库服务器提供服务。可选地,所述备用服务器包括与所述数据库服务器位于同一机房的服务器以及与所述数据库服务器处于不同机房的服务器。根据本专利技术的另一个方面,提供了一种提升数据库可用性的装置。本专利技术的提升数据库可用性的装置,设置于数据库服务器中,包括:任务发送模块,用于每隔设定的时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端;任务分配模块,用于在接收到客户端所返回的数据库不可用的检测报告后,建立该数据库的异常检测任务,并将该异常检测任务分配给N个客户端;判断模块,用于在接收到所述N个客户端返回的所述数据库异常的检测报告后,根据所收到的数据库异常检测报告的数量判定该数据库为故障数据库,并将该数据库切换为该数据库的备用数据库。可选地,所述判断模块还用于:判断所接收到的数据库异常检测报告的数量是否不小于(N+1)/2,并在数量不小于(N+1)/2时,判定该数据库为故障数据库;所述N为不小于3的奇数。可选地,还包括接收模块,用于接收客户端所注册的客户端信息,并根据客户端信息确定已建立数据库连接的客户端的数量。可选地,还包括记录模块,用于记录执行日志;所述执行日志包括数据库切换日志和数据库调度日志。可选地,还包括存储模块,用于将所述接收到的客户端信息存储于备用服务器中。可选地,还包括切换模块,用于在数据库服务器发生故障的情况下,将备用服务器作为数据库服务器提供服务。可选地,所述备用服务器包括与所述数据库服务器位于同一机房的服务器以及与所述数据库服务器处于不同机房的服务器。根据本专利技术的技术方案,能够对数据库进行自动检测,并且在数据库出现故障时自动执行切换方案,从而提升了数据库的可用性;同时也避免了运维人员实时检查数据库,减少了人力监管成本;同时由于增加了备用服务器,不仅避免了数据库服务器的单点问题,也在一定程度上提升了数据库的可用性。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的一种提升数据库可用性的方法的示意图;图2是根据本专利技术实施例的一种提升数据库可用性的装置的示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的一种提升数据库可用性的方法的示意图。如图1所示,本专利技术实施例的方法主要包括如下的步骤S10至步骤S12。步骤S10:数据库服务器每隔设定的时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端。在该步骤中,数据库服务器按照设定的时间间隔将数据库可用性检测任务发送给已经建立数据库连接的客户端;所提到的设定的规则可以根据数据库的数量以及已建立数据库连接的客户端的数量进行规则设定,例如当前数据库的数量为5,已建立数据库连接的数量为5,则可将5个数据库可用性检测任务分别发送给5个客户端。在步骤S10之前,数据库服务器接收客户端所注册的客户端信息,并根据接手到的客户端信息的数量确定已建立数据库连接的客户端的数量。在数据库服务器接收到客户端所注册的客户端信息之后,将该客户端信息同步于备用服务器中;该备用服务器既包括和当前使用的数据库服务器处于同一机房的服务器,也包括和当前使本文档来自技高网
...
一种提升数据库可用性的方法和装置

【技术保护点】
一种提升数据库可用性的方法,其特征在于,包括:数据库服务器每隔设定的时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端;所述数据库服务器接收到客户端所返回的数据库不可用的检测报告后,建立该数据库的异常检测任务,并将该异常检测任务分配给N个客户端;所述数据库服务器接收到所述N个客户端返回的所述数据库异常的检测报告后,根据所收到的数据库异常检测报告的数量判定该数据库为故障数据库,并将该数据库切换为该数据库的备用数据库。

【技术特征摘要】
1.一种提升数据库可用性的方法,其特征在于,包括:数据库服务器每隔设定的时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端;所述数据库服务器接收到客户端所返回的数据库不可用的检测报告后,建立该数据库的异常检测任务,并将该异常检测任务分配给N个客户端;所述数据库服务器接收到所述N个客户端返回的所述数据库异常的检测报告后,根据所收到的数据库异常检测报告的数量判定该数据库为故障数据库,并将该数据库切换为该数据库的备用数据库。2.根据权利要求1所述的方法,其特征在于,根据所收到的数据库异常检测报告的数量判定该数据库为故障数据库的步骤包括:判断所接收到的数据库异常检测报告的数量是否不小于(N+1)/2,并在数量不小于(N+1)/2时,判定该数据库为故障数据库;所述N为不小于3的奇数。3.根据权利要求1所述的方法,其特征在于,数据库服务器每隔设定的第一时长将数据库可用性检测任务按照设定的规则发送给已建立数据库连接的客户端的步骤之前还包括:数据库服务器接收客户端所注册的客户端信息,并根据客户端信息确定已建立数据库连接的客户端的数量。4.根据权利要求1所述的方法,其特征在于,将该数据库切换为该数据库的备用数据库的步骤之后还包括:数据库服务器记录执行日志;所述执行日志包括数据库切换日志和数据库调度日志。5.根据权利要求3所述的方法,其特征在于,数据库服务器接收客户端所注册的客户端信息的步骤之后还包括:数据库服务器将所述接收到的客户端信息存储于备用服务器中。6.根据权利要求5所述方法,其特征在于,数据库服务器将所述接收到的客户端信息存储于备用服务器中的步骤之后还包括:在数据库服务器发生故障的情况下,将备用服务器作为数据库服务器提供服务。7.根据权利要求5...

【专利技术属性】
技术研发人员:张伟
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1