[发明专利]数据库高可用实现方法及其装置在审
申请号: | 201110324138.3 | 申请日: | 2011-10-21 |
公开(公告)号: | CN103064860A | 公开(公告)日: | 2013-04-24 |
发明(设计)人: | 熊中哲;吕海波;张瑞 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/46 |
代理公司: | 隆天国际知识产权代理有限公司 72003 | 代理人: | 章侃铱;张浴月 |
地址: | 开曼群岛大开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 可用 实现 方法 及其 装置 | ||
技术领域
本申请涉及信息技术领域,尤其涉及一种数据库高可用实现方法及其装置。
背景技术
近年来,各行各业都利用计算机系统来提供及时可靠的信息和服务;但是,计算机硬件和软件都不可避免地会发生故障。一旦系统发生故障,便需要人工认定以及错误分析、测试和系统恢复。因此,系统故障可能导致系统较长时间的停顿,甚至整个服务的终止、网络的瘫痪,给企业带来难以估计的经济损失。由此可见,对一些行业(例如:网络服务商、金融机构、超市的POS系统服务器等)来说,系统的容错性和不间断性显得尤为重要。因此,必须采取适当的措施来确保计算机系统的不间断运行,即系统的高可用,这里,高可用性(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为是不间断操作的容错技术有所不同。高可用性系统是目前企业防止核心计算机系统因故障停机的最有效手段。例如,当其中某一台服务器出现故障时,可将访问请求转移到其它可以正常工作的服务器上,这就保证了公司和企业的核心业务系统安全、高效的运行。
目前,行业内的高可用性软件主要有IBM的hacmp(高可用性集群多重处理),HP的service guard,Veritas vcs等,从技术上来说,它们监控的层面都是主机;另外,这些传统的高可用工具也不会检测备库针对主库的延时。以hacmp为例,要判断其oracle是否可用,仅仅是查看一下oracle的进程是否存在,然而,这样的判断方式是不准确的,当oracle处于夯住(hang)状态时,hacmp是无法侦测到的。
发明内容
鉴于上述现有技术的缺陷,本申请的主要目的在于提供一种数据库高可用实现方法及其装置,以解决现有技术存在的上述问题。
为实现上述目的,本申请的实施例提供了一种数据库高可用实现方法,应用于包括主库和备库的数据库中,该方法包括以下步骤:S1、设置心跳表子线程来判断所述主库的心跳表是否更新失败,设置备库子线程来判断所述备库是否可用,设置网关子线程来判断所述主库和所述备库分别所在服务器的网关是否可用;S2、设置主线程对所述心跳表子线程、所述备库子线程和所述网关子线程的判断结果进行循环检测,在所述心跳表子线程、所述备库子线程和所述网关子线程的判断结果均为是时继续步骤S3;S3、执行从所述主库到所述备库的切换。
本申请的实施例还提供了一种数据库高可用实现装置,应用于包括主库和备库的数据库中,该装置包括主线程模块及切换模块,还包括:心跳表子线程模块,用于判断所述主库的心跳表是否更新失败;备库子线程模块,用于判断所述备库是否可用;网关子线程模块,用于判断所述主库和所述备库分别所在服务器的网关是否可用;所述主线程模块对所述心跳表子线程模块、所述备库子线程模块和所述网关子线程模块的判断结果进行循环检测,并且在所述心跳表子线程模块、所述备库子线程模块和所述网关子线程模块的判断结果均为是时通知所述切换模块执行从所述主库到所述备库的切换。
由上述技术方案可知,本申请将心跳表的更新的成功与否作为判断数据库是否可用的标准,使得在判断上更加准确;通过对切换条件的灵活配置可以有效地控制主库和备库之间切换的时间。
附图说明
图1为本申请数据库高可用实现方法的实施例流程图;
图2为本申请数据库高可用实现装置的实施例结构框图。
具体实施方式
下面将详细描述本申请的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本申请。
图1为本申请数据库高可用实现方法的实施例流程图。本实施例的数据库高可用实现方法用于实现主用数据库(下文中简称为主库)和备用数据库(下文中简称为备库)之间的切换,如图所示,所述方法包括以下步骤S1、S2和S3。
S1、设置心跳表子线程来判断所述主库的心跳表是否更新失败,设置备库子线程来判断所述备库是否可用,设置网关子线程来判断所述主库和所述备库分别所在服务器的网关是否可用。
之前提到的高可用程序(HA,例如:hacmp、service guard等)主要针对的是主机层面(例如:存储不可用、网络不可用等),它具有通用性,但是对于数据库的高可用又缺乏针对性,例如,它判断主库是否健康的方式只是简单的查看oracle进程是否存在,如果oracle的进程夯住(即进程存在,但数据库无法提供服务),hacmp将不能发起切换,所以,数据库的高可用软件需要有如下功能:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110324138.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于四位湿式直读表的字轮盒
- 下一篇:拉开或拧紧翻转机构的装置