首页> 中国专利> 基于共享存储实现数据库服务器高可用的方法及系统

基于共享存储实现数据库服务器高可用的方法及系统

摘要

本发明涉及一种基于共享存储实现数据库服务器高可用的方法,其中包括:数据库服务器检测其自身的网络服务质量和地数据库实例状态;数据库服务器根据自身的网络质量、自身的地数据库实例状态和其它数据库服务器的地数据库实例状态判断是否开启自身节点的地数据库实例;此外,发明还涉及一种基于共享存储实现数据库服务器高可用的系统,该系统的各个数据库服务器包括服务检测模块和实例管理模块。采用发明的基于共享存储实现数据库服务器高可用的方法及系统,以实例节点状态自测、节点监督其他节点实例状态以及自我管理进程的方式实现高可用性,没有主备节点之分,也不借助第三方节点,结构简单,易于实现,具有更广泛的应用范围。

著录项

  • 公开/公告号CN104573117A

    专利类型发明专利

  • 公开/公告日2015-04-29

    原文格式PDF

  • 申请/专利权人 赛特斯信息科技股份有限公司;

    申请/专利号CN201510061218.2

  • 申请日2015-02-05

  • 分类号G06F17/30(20060101);

  • 代理机构31002 上海智信专利代理有限公司;

  • 代理人王洁;郑暄

  • 地址 210042 江苏省南京市玄武区玄武大道699-22号18幢

  • 入库时间 2023-12-18 08:25:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-16

    授权

    授权

  • 2015-05-27

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20150205

    实质审查的生效

  • 2015-04-29

    公开

    公开

说明书

技术领域

本发明涉及数据库管理领域,尤其涉及共享存储的数据库管理领域,具体是指一种基于共享存储实现数据库服务器高可用的方法及系统。

背景技术

随着大数据和云计算时代的到来,数据库的应用从大型企业不断地延伸到中小企业。传统的针对大型企业的高可用集群软件不仅技术复杂价格昂贵,而且后期维护费用也很高。中小企业的经济和技术实力相对比较薄弱,急需要一种廉价的解决方案来解决项目中的数据库可用性问题。这里的高可用性(High ailability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为是不间断操作的容错技术有所不同。高可用性系统是目前企业防止核心计算机系统因故障停机的最有效手段。例如,当其中某一台服务器出现故障时,可将访问请求转移到其它可以正常工作的服务器上,这就保证了公司和企业的核心业务系统安全、高效的运行。

目前,行业内的高可用性软件主要有IBM(国际商业机器公司)公司的hacmp(高可用性集群多重处理应用程序),HP(惠普)公司的service guard(集群服务软件),Veritas公司的vcs(高可用性群集软件)等,从技术上来说,它们监控的层面都是主机,针对数据库服务的状态侦测很少。以hacmp为例,要判断其oracle是否可用,仅仅是查看一下oracle的进程是否存在,然而,这样的判断方式是不准确的,当oracle数据库处于夯住(hang)状态时,hacmp是无法侦测到的。

发明内容

本发明的目的是克服了上述现有技术的缺点,提供了一种通过数据库服务器节点自行检测网络可用性和数据库实例状态,再与对方节点中的数据库实例状态进行比较,最终判断是否开启或者关闭本节点上的数据库实例,数个数据库服务器之间没有主备之分,易于实施和维护的基于共享存储实现数据库服务器高可用的方法及系统。

为了实现上述目的,本发明的基于共享存储实现数据库服务器高可用的方法及系统具有如下构成:

该基于共享存储实现数据库服务器高可用的方法,其主要特点是,所述的方法包括以下步骤:

(1)数据库服务器检测其自身节点的网络服务质量和本地数据库实例状态;

(2)所述的数据库服务器根据自身节点的网络质量、自身节点的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启自身节点的本地数据库实例。

进一步地,所述的数据库服务器根据自身节点的网络质量、自身节点的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启自身节点的本地数据库实例,包括以下步骤:

(2.1)所述的数据库服务器判断自身节点的网络质量是否良好,如果是,则继续步骤(2.2),否则继续步骤(2.5);

(2.2)所述的数据库服务器判断其它数据库节点的本地数据库实例状态是否均为未开启状态,如果是,则继续步骤(2.3),否则继续步骤(2.5);

(2.3)所述的数据库服务器根据自身节点的本地数据库实例状态判断自身节点的本地数据库实例是否已开启,如果是,则返回上述步骤(1),否则继续步骤(2.4);

(2.4)所述的数据库服务器开启自身节点的本地数据库实例,并返回上述步骤(1);

(2.5)所述的数据库服务器关闭自身节点的本地数据库实例。

进一步地,所述的数据库服务器检测其自身节点的网络服务质量和本地数据库实例状态,具体为:

所述的数据库服务器检测其自身节点与网关之间的心跳网络的通信质量、其自身节点与其它数据库服务器节点之间的心跳网络的通信质量、自身节点的进程状态和自身节点的实例启动状态。

此外,本发明还提供一种基于共享存储实现数据库服务器高可用的系统,所述的系统包括数个数据库服务器,其主要特点是,各个数据库服务器包括:

服务检测模块,用以检测所述的数据库服务器的网络服务质量和本地数据库实例状态;

实例管理模块,用以根据所述的数据库服务器的网络质量、所述的数据库服务器的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启该数据库服务器的本地数据库实例。

进一步地,所述的服务检测模块包括网络质量检测单元和本地数据库实例状态检测单元,所述的实例管理模块包括实例状态判断单元和本地数据库实例启停单元。

采用了本发明的基于共享存储实现数据库服务器高可用的方法及系统,通过数据库服务器节点自行检测网络可用性和数据库实例状态,再与对方节点中的数据库实例状态进行比较,最终判断是否开启或者关闭本节点上的数据库实例,从而解决数据库软件平台和服务中断导致业务长时间停顿的问题,提供实时全面的高可用服务,故障切换时间短,前端的应用程序不必同步进行修改,仅通过脚本即可实现上述技术方案,提供一种快速、可靠、易于实施和维护、故障快速恢复的数据库服务高可性综合解决方案,其主要具有以下积极效益:

1)本发明以实例节点状态自测、节点监督其他节点实例状态以及自我管理进程的方式实现高可用性,明显区别于其他高可用的集中式管理方式;

2)本发明中的数据库服务器没有主备节点之分,也不借助第三方节点,这种方式大大降低集中式管理节点本身的故障无法实现主备切换或者错乱切换,造成数据库服务抖动甚至中断的可能性。

附图说明

图1为本发明的基于共享存储实现数据库服务器高可用的方法的流程图。

图2为本发明的基于共享存储实现数据库服务器高可用的系统的结构框图。

图3为本发明的基于共享存储实现数据库服务器高可用的方法的判定规则流程图。

图4为本发明的一个具体实施例的物理架构图。

具体实施方式

为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。

在一种实施方式中,本发明的基于共享存储实现数据库服务器高可用的方法及系统用于实现控制多台数据库服务器完成数据库实例的启动和关闭,如图1和2所示,该系统包括服务检测模块(包括网络质量检测单元和本地数据库实例状态检测单元)和实例管理模块(包括实例状态判断单元和本地数据库实例启停单元),该所述方法包括如下步骤:

S1、数据库服务器中的服务检测模块启动,检测该数据库服务器的网络服务质量(包括该数据库服务器与网关之间、该数据库服务器与其它数据库服务器之间的心跳网络的通信质量)和检测本地数据库实例状态(包括自身的进程状态和实例启动状态等);

S2、该数据库服务器启动数据库实例管理模块,根据网络质量、其它数据库服务器节点和该数据库服务节点之间的实例状态综合判断是否启停该数据库服务器的本地数据库实例。

其中,启停本地数据库实例的判断规则如图3所示,当网络质量良好且其它所有节点数据库服务均未开启时,启动本地数据库服务,否则关闭本地数据库服务。

在实际应用中,判断一个数据库服务器是否能够提供服务的标准是:

1、数据库实例的主机的网络服务是否通畅;

2、数据库实例服务是否正常。

在一个实施例中,可以通过shell脚本实现服务检测模块(以下简称S1)和实例管理模块(以下简称S2)的功能,如脚本名称S1.sh、S2.sh。在每个节点上运行S1、S2脚本。按照上述标准实现的检测流程如图3所示,首先采集网络节点中该数据库节点的网络通信状态,如果网络状态正常,再检测该数据库节点的本地数据库实例服务状态,以及将该数据库节点的本地数据库实例服务状态与其他数据库实例服务状态进行比较,如果其它的节点中没有一个节点服务是开启的,则通知S2启动本节点上本地实例服务,否则不做任何操作;如果网络状态不正常,则通知S2中的本地数据库实例启停单元关闭本地实例服务。

更具体地,以oracle数据库为例,根据图4中的物理架构部署oracle数据库,包括以下步骤:

1.将一台共享存储中的存储单元挂接到两台数据库服务器对应目录上;

2.将oracle软件安装在/oracle目录中,数据库文件安装在/oradata目录中;

3.启动S1.sh、S2.sh

由上述方案可知,本实施例的数据库装置相对于现有技术的集群系统具有结构简单、配置灵活等特点,通过各个模块之间的巧妙结合能够很容易地实现数据库服务器的高可用性。

采用了本发明的基于共享存储实现数据库服务器高可用的方法及系统,通过数据库服务器节点自行检测网络可用性和数据库实例状态,再与对方节点中的数据库实例状态进行比较,最终判断是否开启或者关闭本节点上的数据库实例,从而解决数据库软件平台和服务中断导致业务长时间停顿的问题,提供实时全面的高可用服务,故障切换时间短,前端的应用程序不必同步进行修改,仅通过脚本即可实现上述技术方案,提供一种快速、可靠、易于实施和维护、故障快速恢复的数据库服务高可性综合解决方案,其主要具有以下积极效益:

1)本发明以实例节点状态自测、节点监督其他节点实例状态以及自我管理进程的方式实现高可用性,明显区别于其他高可用的集中式管理方式;

2)本发明中的数据库服务器没有主备节点之分,也不借助第三方节点,这种方式大大降低集中式管理节点本身的故障无法实现主备切换或者错乱切换,造成数据库服务抖动甚至中断的可能性。

在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。5 -->

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号