CN104794026B - 一种集群实例多数据源绑定的故障转移方法 - Google Patents

一种集群实例多数据源绑定的故障转移方法 Download PDF

Info

Publication number
CN104794026B
CN104794026B CN201510213308.9A CN201510213308A CN104794026B CN 104794026 B CN104794026 B CN 104794026B CN 201510213308 A CN201510213308 A CN 201510213308A CN 104794026 B CN104794026 B CN 104794026B
Authority
CN
China
Prior art keywords
database
cluster
instance
connection
data source
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
Application number
CN201510213308.9A
Other languages
English (en)
Other versions
CN104794026A (zh
Inventor
程永新
宋辉
陈爱珍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai new torch network information technology Limited by Share Ltd
Original Assignee
SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY Co Ltd filed Critical SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY Co Ltd
Priority to CN201510213308.9A priority Critical patent/CN104794026B/zh
Publication of CN104794026A publication Critical patent/CN104794026A/zh
Application granted granted Critical
Publication of CN104794026B publication Critical patent/CN104794026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种集群实例多数据源绑定的故障转移方法,包括如下步骤:a)将同一应用程序分布部署在多个集群服务器上,并为该应用程序的所有集群实例至少配置连接两个数据库实例;b)定时探测所有集群实例与当前数据库实例之间的网路连接状态;c)如果某一集群实例与当前数据库实例网络断连,则确认该集群实例与下一数据库实例之间的连接是否正常;d)如果连接正常则自动转移连接到下一数据库实例上,并强制集群内所有其他实例转移连接到下一数据库实例上。本发明在发生单集群实例与数据库节点网络故障时,能够让集群所有实例连接在同一个节点上,确保所有实例的数据库操作都能正常提交,避免数据丢失。

Description

一种集群实例多数据源绑定的故障转移方法
技术领域
本发明涉及一种多数据源故障转移的方法,尤其涉及一种集群实例多数据源绑定的故障转移方法。
背景技术
WebLogic Server为多数据源提供了故障转移算法,以便在数据源故障时(例如,在数据库管理系统崩溃时),系统可继续运行。一个多数据源可被视为一组数据源。多数据源最适用于具有高可用性的数据库系统(如冗余数据库或Oracle Real ApplicationClusters,简称RAC)的节点之间的故障转移或负载平衡。故障转移算法提供了一个用于满足连接请求的数据源的有序列表。通常情况下,每一个对这种类型的多数据源发出的连接请求都由该列表中的第一个数据源提供服务。如果某个数据源连接未能通过测试,并且该连接无法被替换,或者如果该数据源已挂起,则会从该列表中的下一个数据源开始,按顺序查找连接。但是,在某些发生了故障的情况下,当未正在使用多数据源时,发生在某个RAC实例(该实例不是在其上启动了某个事务的实例)上的事务处理(数据更改)将会丢失,而不会发出任何通知或引发任何异常。在下列情况下,某些数据更改将会丢失:
1、server2和RAC1之间的网络连接已丢失,这导致了server2上cp1中的数据库连接故障转移到RAC2。server1上的相同数据源仍然具有与RAC1的连接。
2、在server1上,某个应用程序启动了一个事务并使用来自cp1的连接(与RAC1的连接)进行数据更改。
3、该应用程序调用了server2上的某个EJB,该EJB使用了server2上cp1中的某个数据库连接(与RAC2的连接)进行数据更改。
4、该应用程序在server1上完成了该事务。
结果如下:RAC1上的数据更改被提交。RAC 2上的数据更改被忽略。WebLogicServer事务管理器会调用资源上的准备和提交。在此情况下,由于各数据源具有相同名称,因此,它们被视为同一个资源,这样,就只会在该数据源的一个实例上进行调用。由于各数据源包含与不同RAC实例的连接,因此,一个RAC实例上数据更改会被提交,但其他RAC实例上的更改都会丢失。
针对这种情况,一定要确保提供WebLogic Server实例和Oracle RAC之间的冗余网络硬件可避免网络故障,但是网络故障是不可控的。虽然使用了多数据源和RAC来确保数据库单节点异常时可以故障转移,但是如果出现网络故障,这种故障转移将会失效,并导致数据丢失,影响业务。
发明内容
本发明所要解决的技术问题是提供一种集群实例多数据源绑定的故障转移方法,能够确保集群里的应用实例连接在RAC数据库的同一节点上,避免因网络故障导致集群结构里的实例对同一数据源连接在不同的RAC数据库节点上,最终导致其他RAC实例上的更改都丢失。
本发明为解决上述技术问题而采用的技术方案是提供一种集群实例多数据源绑定的故障转移方法,包括如下步骤:a)将同一应用程序分布部署在多个集群服务器上,并为该应用程序的所有集群实例至少配置连接两个数据库实例;b)定时探测所有集群实例与当前数据库实例之间的网络连接状态;c)如果某一集群实例与当前数据库实例网络断连,则确认该集群实例与下一数据库实例之间的连接是否正常;d)如果连接正常则自动转移连接到下一数据库实例上,并强制集群内所有其他实例转移连接到下一数据库实例上。
上述的集群实例多数据源绑定的故障转移方法,其中,所述步骤a)中的数据库实例为Oracle RAC,所述数据库实例的数目为两个,其中,一个数据库实例作为当前工作数据库节点,另一数据库实例作为备用数据库节点,所述两个数据库实例通过共享存储连接至同一数据库。
上述的集群实例多数据源绑定的故障转移方法,其中,所述步骤b)中定时记录所有集群实例与所有数据库实例之间的网络连接状态,并将状态存入数据库中记录,每一记录包括集群实例、数据源、数据库实例、故障转移标识以及转移成功标识;当出现某一集群实例与当前数据库实例网络断连,所述步骤c)设置故障转移标识为TRUE,并抛出异常信息通知集群内其他实例,当该集群实例转移连接到下一数据库实例后,所述步骤d)设置转移成功标识为TRUE,确认集群中的其他实例进行故障转移。
上述的集群实例多数据源绑定的故障转移方法,其中,所述步骤b)通过判断集群实例所在服务器与数据库实例所在服务器之间的物理连接状态来确认集群实例与数据库实例的连接状态;所述步骤c)通过发送测试SQL语句,测试该集群实例与下一数据库实例之间的连接是否正常,若SQL测试正常则设置转移成功标识为TRUE。
上述的集群实例多数据源绑定的故障转移方法,其中,所述步骤d)通过向集群中的其他实例发送网络故障的假信号,让其他实例主动关闭与当前数据库实例的连接,并全部转移连接到下一数据库实例上;所述步骤d)收到该集群实例与当前数据库实例的断连信息后,接着通过判断物理连接,确认该集群实例已经成功转移连接到下一数据库实例后,再强制断开集群中所有其他实例与当前数据库实例的连接,使得所有集群实例都转移连接到在下一数据库实例上。
本发明对比现有技术有如下的有益效果:本发明提供的集群实例多数据源绑定的故障转移方法,在发生单集群实例与数据库节点网络故障时,能够让集群所有实例连接在同一个节点上,确保所有实例的数据库操作都能正常提交,避免数据丢失。
附图说明
图1为本发明使用的集群实例多数据源连接结构示意图;
图2为集群实例多数据源故障转移数据丢失示意图;
图3为本发明集群实例多数据源绑定的故障转移流程示意图;
图4为本发明集群实例多数据源绑定故障转移示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明使用的集群实例多数据源连接结构示意图。
请参见图1,本发明使用的应用实例集群结构与数据库RAC的连接模式为failover模式。将同一个数据源DS1部署在集群上,集群内所有实例都会在启动时初始化一个已与数据库节点RAC1创建多个连接的连接池CP1。而数据库节点RAC2则作为故障转移的备用节点。
图2为集群实例多数据源故障转移数据丢失示意图。
请继续参见图2,当集群实例server2与数据库节点RAC1产生网络故障时,集群实例server2上的数据库连接池CP1将会自动故障转移到数据库节点RAC2上。而此时,集群实例server1和server3与数据库节点RAC1的网络连接正常,不会转移到RAC2上,依然保持在RAC1上。此时,集群里的实例包含不同数据库节点的连接。应用APP1分别从不同的集群实例上提交数据库操作变更,由于他们都是使用同一个数据源DS1,被视为同一资源,只会在该数据源的一个实例上进行调用,而这个数据源包含不同RAC实例连接,只一个会被提交,其他的丢失。所以集群实例server1,server3上的数据库操作提交正常完成,而集群实例server2上的数据库操作提交丢失。
图3为本发明集群实例多数据源绑定的故障转移流程示意图;图4为本发明集群实例多数据源绑定故障转移示意图。
请参见图3和图4,在单个集群实例与数据库节点发生网络故障转移到第二个节点上,导致集群实例里同一数据源连接在不同的数据库节点上,为了避免这种模式下数据库操作出现丢失的情况,在探测到有一个实例与数据库节点发生网络故障后,将集群里的其他实例的数据库连接绑定转移,实现所有集群实例连接在同一数据库节点上,从而提高failover模式对业务性能的保障。具体步骤如下:
步骤S1:将同一应用程序分布部署在多个集群服务器上,并为该应用程序的所有集群实例至少配置连接两个数据库实例;
步骤S2:定时探测所有集群实例与当前数据库实例之间的网路连接状态;
步骤S3:如果某一集群实例与当前数据库实例网络断连,则确认该集群实例与下一数据库实例之间的连接是否正常;
步骤S4:如果连接正常则自动转移连接到下一数据库实例上,并强制集群内所有其他实例转移连接到下一数据库实例上。
下面给出本发明的具体实施方式:
1)本发明实时探测集群实例与数据库节点的连接状态,并将状态保存在数据库中,在本地存原始配置状态。
集群实例 数据源 数据库 故障转移标识 转移成功标识
server1 DS1 RAC1 FALSE FALSE
server2 DS1 RAC1 FALSE FALSE
server3 DS1 RAC1 FALSE FALSE
2)实时探测集群实例与数据库节点的连接状态,先对比本地原始配置,与本地原始配置一致不更新数据库,与本地原始配置不一致,更新数据库,并设置故障转移标识,发出告警短信通知网络异常。
集群实例 数据源 数据库 故障转移标识 转移成功标识
server1 DS1 RAC1 FALSE FALSE
server2 DS1 RAC2 TRUE FALSE
server3 DS1 RAC1 FALSE FALSE
3)对已故障转移的实例进行转移后的连接状态测试,发送测试SQL语句,确认连接正常,并设置转移成功标识。并发告警短信通知节点转移成功。
集群实例 数据源 数据库 故障转移标识 转移成功标识
server1 DS1 RAC1 FALSE FALSE
server2 DS1 RAC2 TRUE TRUE
server3 DS1 RAC1 FALSE FALSE
4)通过故障转移标识和转移成功标识,确认集群中的其他实例可以做故障转移。向集群中的其他实例发出网络故障的假信号,让其他的实例主动关闭与数据库节点1的连接,全部转移动节点2上,并设置故障转移标识。
集群实例 数据源 数据库 故障转移标识 转移成功标识
server1 DS1 RAC2 TRUE FALSE
server2 DS1 RAC2 TRUE TRUE
server3 DS1 RAC2 TRUE FALSE
5)对绑定故障转移的实例进行转移后的连接状态测试,发送测试SQL语句,确认连接正常,并设置转移成功标识。并发告警短信通知绑定转移成功。
集群实例 数据源 数据库 故障转移标识 转移成功标识
server1 DS1 RAC2 TRUE TRUE
server2 DS1 RAC2 TRUE TRUE
server3 DS1 RAC2 TRUE TRUE
6)最终所有实例都因server2与数据库节点RAC1间的网络故障,全部跟server2绑定一起转移到数据库节点RAC2上,可以有效避免数据库操作丢失,从而提高failover模式对业务性能的保障。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

Claims (4)

1.一种集群实例多数据源绑定的故障转移方法,其特征在于,包括如下步骤:
a)将同一应用程序分布部署在多个集群服务器上,并为该应用程序的所有集群实例至少配置连接两个数据库实例;
b)定时探测所有集群实例与当前数据库实例之间的网络连接状态;
c)如果某一集群实例与当前数据库实例网络断连,则确认该集群实例与下一数据库实例之间的连接是否正常;
d)如果连接正常则自动转移连接到下一数据库实例上,并强制集群内所有其他实例转移连接到下一数据库实例上;
所述步骤b)中定时记录所有集群实例与所有数据库实例之间的网络连接状态,并将状态存入数据库中记录,每一记录包括集群实例、数据源、数据库实例、故障转移标识以及转移成功标识;当出现某一集群实例与当前数据库实例网络断连,所述步骤c)设置故障转移标识为TRUE,并抛出异常信息通知集群内其他实例,当该集群实例转移连接到下一数据库实例后,所述步骤d)设置转移成功标识为TRUE,确认集群中的其他实例进行故障转移。
2.如权利要求1所述的集群实例多数据源绑定的故障转移方法,其特征在于,所述步骤a)中的数据库实例为Oracle RAC,所述数据库实例的数目为两个,其中,一个数据库实例作为当前工作数据库节点,另一数据库实例作为备用数据库节点,所述两个数据库实例通过共享存储连接至同一数据库。
3.如权利要求1所述的集群实例多数据源绑定的故障转移方法,其特征在于,所述步骤b)通过判断集群实例所在服务器与数据库实例所在服务器之间的物理连接状态来确认集群实例与数据库实例的连接状态;所述步骤c)通过发送测试SQL语句,测试该集群实例与下一数据库实例之间的连接是否正常,若SQL测试正常则设置转移成功标识为TRUE。
4.如权利要求1所述的集群实例多数据源绑定的故障转移方法,其特征在于,所述步骤d)通过向集群中的其他实例发送网络故障的假信号,让其他实例主动关闭与当前数据库实例的连接,并全部转移连接到下一数据库实例上;所述步骤d)收到该集群实例与当前数据库实例的断连信息后,接着通过判断物理连接,确认该集群实例已经成功转移连接到下一数据库实例后,再强制断开集群中所有其他实例与当前数据库实例的连接,使得所有集群实例都转移连接到在下一数据库实例上。
CN201510213308.9A 2015-04-29 2015-04-29 一种集群实例多数据源绑定的故障转移方法 Active CN104794026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510213308.9A CN104794026B (zh) 2015-04-29 2015-04-29 一种集群实例多数据源绑定的故障转移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510213308.9A CN104794026B (zh) 2015-04-29 2015-04-29 一种集群实例多数据源绑定的故障转移方法

Publications (2)

Publication Number Publication Date
CN104794026A CN104794026A (zh) 2015-07-22
CN104794026B true CN104794026B (zh) 2017-09-15

Family

ID=53558836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510213308.9A Active CN104794026B (zh) 2015-04-29 2015-04-29 一种集群实例多数据源绑定的故障转移方法

Country Status (1)

Country Link
CN (1) CN104794026B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279279B (zh) * 2015-11-16 2019-01-25 天津南大通用数据技术股份有限公司 从低速数据源加载压缩数据文件的方法及装置
CN106095571B (zh) * 2016-06-07 2019-06-04 中国建设银行股份有限公司 多rac集群系统、数据访问方法及装置
CN107566475B (zh) * 2017-08-28 2020-08-04 北京天元创新科技有限公司 一种会话故障转移方法及装置
CN107342905A (zh) * 2017-08-28 2017-11-10 郑州云海信息技术有限公司 一种集群存储系统故障转移的节点调度方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101447989A (zh) * 2007-11-28 2009-06-03 阿尔卡特朗讯公司 用于改进的高可用性组件实现的系统和方法
CN103124967A (zh) * 2010-09-15 2013-05-29 甲骨文国际公司 用于将应用服务器连接到集群的数据库的系统和方法
CN103917972A (zh) * 2011-06-27 2014-07-09 甲骨文国际公司 用于在集群数据库环境中提供会话亲和性和改善的连通性的系统和方法
CN104503965A (zh) * 2014-10-16 2015-04-08 杭州斯凯网络科技有限公司 PostgreSQL高弹性的高可用及负载均衡实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226398A (ja) * 2006-02-22 2007-09-06 Hitachi Ltd データベース接続管理方法及び計算機システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101447989A (zh) * 2007-11-28 2009-06-03 阿尔卡特朗讯公司 用于改进的高可用性组件实现的系统和方法
CN103124967A (zh) * 2010-09-15 2013-05-29 甲骨文国际公司 用于将应用服务器连接到集群的数据库的系统和方法
CN103917972A (zh) * 2011-06-27 2014-07-09 甲骨文国际公司 用于在集群数据库环境中提供会话亲和性和改善的连通性的系统和方法
CN104503965A (zh) * 2014-10-16 2015-04-08 杭州斯凯网络科技有限公司 PostgreSQL高弹性的高可用及负载均衡实现方法

Also Published As

Publication number Publication date
CN104794026A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
CN109729129A (zh) 存储集群的配置修改方法、存储集群及计算机系统
US7139925B2 (en) System and method for dynamic cluster adjustment to node failures in a distributed data system
US7035858B2 (en) System and method dynamic cluster membership in a distributed data system
US7024483B2 (en) System and method for topology manager employing finite state automata for dynamic cluster formation
JP6382454B2 (ja) 分散ストレージ及びレプリケーションシステム、並びに方法
US20030005350A1 (en) Failover management system
CN104794026B (zh) 一种集群实例多数据源绑定的故障转移方法
CN104769919A (zh) 对复制型数据库的访问进行负载平衡
CN109474465A (zh) 一种基于服务器集群的可动态流转的高可用性的实现方法和系统
CN105429799B (zh) 服务器备份方法及装置
CN112003716A (zh) 一种数据中心双活实现方法
CN104468151A (zh) 一种集群切换时保持tcp会话的系统和方法
CN104717077A (zh) 一种管理数据中心的方法、装置及系统
CN107368485A (zh) 一种数据库的管理方法及数据库系统
CN111800484A (zh) 机动边缘信息服务系统的服务抗毁接替方法
JP5697672B2 (ja) 動的ネットワークでの改善されたサーバ冗長性の方法
WO2021115043A1 (zh) 分布式数据库系统和数据灾备演练方法
WO2015196692A1 (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN114598593B (zh) 消息处理方法、系统、计算设备及计算机存储介质
CN109218386A (zh) 一种管理Hadoop命名空间的高可用方法
WO2021052416A1 (zh) 容灾方法、装置、局点和存储介质
CN107291575B (zh) 一种数据中心故障时的处理方法和设备
CN114328033A (zh) 保持高可用设备组业务配置一致性的方法及装置
CN104301240B (zh) 数据传输方法及系统
JPH1084377A (ja) 複数サーバの相互バックアップ方法及びルーチング方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 201701 room 1, zone 113, zone 1, building 588, No. 7548, Lane R, outer Pine Road, Qingpu District, Shanghai

Patentee after: Shanghai new torch network information technology Limited by Share Ltd

Address before: 200063 Shanghai, Zhongshan North Road, No. 2000, building, building No. 3, B

Patentee before: SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY CO., LTD.

CP03 Change of name, title or address