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

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

【技术实现步骤摘要】
基于共享存储实现数据库服务器高可用的方法及系统
本专利技术涉及数据库管理领域,尤其涉及共享存储的数据库管理领域,具体是指一种基于共享存储实现数据库服务器高可用的方法及系统。
技术介绍
随着大数据和云计算时代的到来,数据库的应用从大型企业不断地延伸到中小企业。传统的针对大型企业的高可用集群软件不仅技术复杂价格昂贵,而且后期维护费用也很高。中小企业的经济和技术实力相对比较薄弱,急需要一种廉价的解决方案来解决项目中的数据库可用性问题。这里的高可用性(Highailability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为是不间断操作的容错技术有所不同。高可用性系统是目前企业防止核心计算机系统因故障停机的最有效手段。例如,当其中某一台服务器出现故障时,可将访问请求转移到其它可以正常工作的服务器上,这就保证了公司和企业的核心业务系统安全、高效的运行。目前,行业内的高可用性软件主要有IBM(国际商业机器公司)公司的hacmp(高可用性集群多重处理应用程序),HP(惠普)公司的serviceguard(集群服务软件),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所示,首先采集网络节点中该数据库节点的网络通信状态,如果网络状态正常,再检测该数据库节点的本地数据库实例服务状态,以及将该数据库节点的本地数据库实例服务状态与其他数据库实例服务状态进行比较,如果其它的节点中没有一个节点服务是开启本文档来自技高网
...

【技术保护点】
一种基于共享存储实现数据库服务器高可用的方法,其特征在于,所述的方法包括以下步骤:(1)数据库服务器检测其自身节点的网络服务质量和本地数据库实例状态;(2)所述的数据库服务器根据自身节点的网络质量、自身节点的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启自身节点的本地数据库实例。

【技术特征摘要】
1.一种基于共享存储实现数据库服务器高可用的方法,其特征在于,所述的方法包括以下步骤:(1)数据库服务器检测其自身节点的网络服务质量和本地数据库实例状态;(2)所述的数据库服务器根据自身节点的网络质量、自身节点的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启自身节点的本地数据库实例;所述的数据库服务器包括挂接于该数据库服务器的共享存储设备的存储单元;所述的基于共享存储实现数据库服务器高可用的方法用于控制多台数据库服务器完成数据库实例的启动和关闭;所述的数据库服务器根据自身节点的网络质量、自身节点的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启自身节点的本地数据库实例,包括以下步骤:(2.1)所述的数据库服务器判断自身节点的网络质量是否良好,如果是,则继续步骤(2.2),否则继续步骤(2.5);(2.2)所述的数据库服务器判断其它数据库节点的本地数据库实例状态是否均为未开启状态,如果是,则继续步骤(2.3),否则继续步骤(2.5);(2.3)所述的数据库服务器根据自身节点的本地数据库实例状态判断自身节点的本地数据库实例是否已开启,如果是,则返回上述步骤(1),否则继续步骤(2.4);(2.4)所述的数据库服务器开启自身节点的本地数据库实例,并返回上...

【专利技术属性】
技术研发人员:逯利军钱培专张军姜健李克民宋聚平张树民
申请(专利权)人:赛特斯信息科技股份有限公司
类型:发明
国别省市:江苏;32

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

1