CN104573117B - 基于共享存储实现数据库服务器高可用的方法及*** - Google Patents
基于共享存储实现数据库服务器高可用的方法及*** Download PDFInfo
- Publication number
- CN104573117B CN104573117B CN201510061218.2A CN201510061218A CN104573117B CN 104573117 B CN104573117 B CN 104573117B CN 201510061218 A CN201510061218 A CN 201510061218A CN 104573117 B CN104573117 B CN 104573117B
- Authority
- CN
- China
- Prior art keywords
- database server
- node
- data base
- local data
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 3
- 206010044565 Tremor Diseases 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001360 synchronised Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Abstract
本发明涉及一种基于共享存储实现数据库服务器高可用的方法,其中包括:数据库服务器检测其自身的网络服务质量和本地数据库实例状态;数据库服务器根据自身的网络质量、自身的本地数据库实例状态和其它数据库服务器的本地数据库实例状态判断是否开启自身节点的本地数据库实例;此外,本发明还涉及一种基于共享存储实现数据库服务器高可用的***,该***的各个数据库服务器包括服务检测模块和实例管理模块。采用本发明的基于共享存储实现数据库服务器高可用的方法及***,以实例节点状态自测、节点监督其他节点实例状态以及自我管理进程的方式实现高可用性,没有主备节点之分,也不借助第三方节点,结构简单,易于实现,具有更广泛的应用范围。
Description
技术领域
本发明涉及数据库管理领域,尤其涉及共享存储的数据库管理领域,具体是指一种基于共享存储实现数据库服务器高可用的方法及***。
背景技术
随着大数据和云计算时代的到来,数据库的应用从大型企业不断地延伸到中小企业。传统的针对大型企业的高可用集群软件不仅技术复杂价格昂贵,而且后期维护费用也很高。中小企业的经济和技术实力相对比较薄弱,急需要一种廉价的解决方案来解决项目中的数据库可用性问题。这里的高可用性(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)本发明中的数据库服务器没有主备节点之分,也不借助第三方节点,这种方式大大降低集中式管理节点本身的故障无法实现主备切换或者错乱切换,造成数据库服务抖动甚至中断的可能性。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (5)
1.一种基于共享存储实现数据库服务器高可用的方法,其特征在于,所述的方法包括以下步骤:
(1)数据库服务器检测其自身节点的网络服务质量和本地数据库实例状态;
(2)所述的数据库服务器根据自身节点的网络质量、自身节点的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启自身节点的本地数据库实例;
所述的数据库服务器包括挂接于该数据库服务器的共享存储设备的存储单元;
所述的基于共享存储实现数据库服务器高可用的方法用于控制多台数据库服务器完成数据库实例的启动和关闭;
所述的数据库服务器根据自身节点的网络质量、自身节点的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启自身节点的本地数据库实例,包括以下步骤:
(2.1)所述的数据库服务器判断自身节点的网络质量是否良好,如果是,则继续步骤
(2.2),否则继续步骤(2.5);
(2.2)所述的数据库服务器判断其它数据库节点的本地数据库实例状态是否均为未开启状态,如果是,则继续步骤(2.3),否则继续步骤(2.5);
(2.3)所述的数据库服务器根据自身节点的本地数据库实例状态判断自身节点的本地数据库实例是否已开启,如果是,则返回上述步骤(1),否则继续步骤(2.4);
(2.4)所述的数据库服务器开启自身节点的本地数据库实例,并返回上述步骤(1);
(2.5)所述的数据库服务器关闭自身节点的本地数据库实例。
2.根据权利要求1所述的基于共享存储实现数据库服务器高可用的方法,其特征在于,所述的数据库服务器检测其自身节点的网络服务质量和本地数据库实例状态,具体为:
所述的数据库服务器检测其自身节点与网关之间的心跳网络的通信质量、其自身节点与其它数据库服务器节点之间的心跳网络的通信质量、自身节点的进程状态和自身节点的实例启动状态。
3.一种利用权利要求1所述的基于共享存储实现数据库服务器高可用的方法实现基于共享存储的数据库服务器高可用的***,所述的***包括数个数据库服务器,其特征在于,各个数据库服务器包括:
服务检测模块,用以检测所述的数据库服务器的网络服务质量和本地数据库实例状态;
实例管理模块,用以根据所述的数据库服务器的网络质量、所述的数据库服务器的本地数据库实例状态和其它数据库服务器节点的本地数据库实例状态判断是否开启该数据库服务器的本地数据库实例。
4.根据权利要求3所述的实现基于共享存储的数据库服务器高可用的***,其特征在于,所述的服务检测模块包括网络质量检测单元和本地数据库实例状态检测单元。
5.根据权利要求4所述的实现基于共享存储的数据库服务器高可用的***,其特征在于,所述的实例管理模块包括实例状态判断单元和本地数据库实例启停单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510061218.2A CN104573117B (zh) | 2015-02-05 | 基于共享存储实现数据库服务器高可用的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510061218.2A CN104573117B (zh) | 2015-02-05 | 基于共享存储实现数据库服务器高可用的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104573117A CN104573117A (zh) | 2015-04-29 |
CN104573117B true CN104573117B (zh) | 2019-07-16 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722579A (zh) * | 2012-06-07 | 2012-10-10 | 浪潮电子信息产业股份有限公司 | 一种在集群存储***内部数据库的双向同步方法 |
CN102882909A (zh) * | 2011-07-15 | 2013-01-16 | 易云捷讯科技(北京)有限公司 | 云计算服务监控***及方法 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882909A (zh) * | 2011-07-15 | 2013-01-16 | 易云捷讯科技(北京)有限公司 | 云计算服务监控***及方法 |
CN102722579A (zh) * | 2012-06-07 | 2012-10-10 | 浪潮电子信息产业股份有限公司 | 一种在集群存储***内部数据库的双向同步方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3142011B1 (en) | Anomaly recovery method for virtual machine in distributed environment | |
US9141491B2 (en) | Highly available server system based on cloud computing | |
US9641449B2 (en) | Variable configurations for workload distribution across multiple sites | |
CN108063813B (zh) | 一种集群环境下密码服务网络并行化的方法与*** | |
KR20110044858A (ko) | 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 | |
CN103763155A (zh) | 分布式云存储***多服务心跳监测方法 | |
CN102761528A (zh) | 数据管理***及方法 | |
CN102591717B (zh) | 外接设备和虚拟设备的业务信息处理方法、装置和*** | |
CN104158707A (zh) | 一种检测并处理集群脑裂的方法和装置 | |
Kim et al. | OFMon: OpenFlow monitoring system in ONOS controllers | |
WO2013019339A1 (en) | Hardware failure mitigation | |
CN103812675A (zh) | 一种实现业务交付平台异地容灾切换的方法和*** | |
CN105554074A (zh) | 一种基于rpc通信的nas资源监控***及监控方法 | |
CN108469996A (zh) | 一种基于自动快照的***高可用方法 | |
CN106453504A (zh) | 一种基于nginx服务器集群的监控***及方法 | |
CN103810038A (zh) | 一种ha集群中虚拟机存储文件迁移方法及其装置 | |
CN104573117B (zh) | 基于共享存储实现数据库服务器高可用的方法及*** | |
CN109508323A (zh) | 一种文件存储***及文件存储方法 | |
CN106656584B (zh) | 一种分布式***无效节点判定方法 | |
CN108600156A (zh) | 一种服务器及安全认证方法 | |
CN111698301A (zh) | 一种保证服务延续的服务管理方法、装置及存储介质 | |
CN103731426A (zh) | 基于虚拟网络的入侵告警*** | |
KR101326451B1 (ko) | 복합 장애 조건을 이용하여 시스템 장애를 판단하는 시스템 장애 모니터링 방법 및 서버 | |
CN104573117A (zh) | 基于共享存储实现数据库服务器高可用的方法及*** | |
KR101883251B1 (ko) | 가상 시스템에서 장애 조치를 판단하는 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |