CN106407042B - 一种基于开源数据库的跨数据中心容灾解决系统及方法 - Google Patents
一种基于开源数据库的跨数据中心容灾解决系统及方法 Download PDFInfo
- Publication number
- CN106407042B CN106407042B CN201610807135.8A CN201610807135A CN106407042B CN 106407042 B CN106407042 B CN 106407042B CN 201610807135 A CN201610807135 A CN 201610807135A CN 106407042 B CN106407042 B CN 106407042B
- Authority
- CN
- China
- Prior art keywords
- database
- nodeguard
- heartbeat
- zookeeper
- monitoring module
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于开源数据库的跨数据中心容灾解决系统及方法,应用于开源数据库技术领域,本发明基于开源数据库的跨数据中心容灾解决系统及方法,兼顾基于共享存储高可用方案的简便性和基于远程复制方案的跨数据中心容灾的能力,并且保证了容灾前后数据的一致性,为传统公司使用开源数据库提供了一套切实可行的容灾方案。
Description
技术领域
本发明涉及开源数据库技术领域,尤其涉及一种基于开源数据库的跨数据中心容灾解决系统及方法。
背景技术
随着国家对数据库自主可控的要求,以及传统行业对于减少使用商业数据库带来的高额成本的需求,开源数据库如关系型数据库管理系统(MySQL)、对象-关系数据库服务器(PostgreSQL)逐渐成为其未来的选择。但开源数据库的容灾方案并不完善,主要体现在能实现数据零丢失切换的方案大都基于数据中心内部的共享存储实现,一方面共享存储设备的成本相对较高,而且一旦涉及到跨数据中心,这样的方案往往无能为力,如基于红帽子集群套件(RHCS)的数据库容灾解决方案;同时基于数据复制的容灾解决方案虽然可以跨数据中心,但其实现相比共享存储的解决方案往往更加的复杂和难以维护,同时如何做到自动探测,自动切换并且能保证数据的高一致也是一个难以解决的问题。
发明内容
本发明要解决的技术问题是提供一种基于开源数据库的跨数据中心容灾解决系统及方法。
本发明的目的在于提供一种基于开源数据库的跨数据中心容灾解决系统,包括:集群控制中心Chunkkeeper、协调服务集群Zookeeper Cluster、数据库进程监控模块NodeGuard、开源数据库进程模块DB、共享存储模块Shared Storage、网关服务GateWay、数据中心IDC;
所述集群控制中心Chunkkeeper,用于监控集群数据的可用性,在心跳节点异常或心跳节点消失超过一个人为设定的时间阀值的时候发起容灾切换,并控制切换流程;
所述协调服务集群Zookeeper Cluster,用于存储数据信息包括心跳数据信息、资源数据信息,存储数据库的健康状态,解耦所述集群控制中心Chunkkeeper、所述数据库进程监控模块NodeGuard、所述网关服务GateWay三者之间的数据通信;
所述数据库进程监控模块NodeGuard,用来监控数据库的状态,并在所述协调服务集群Zookeeper Cluster中维护一个心跳节点,以及通知所述集群控制中心Chunkkeeper数据库的可用性;
所述开源数据库进程模块DB,用于通过本地磁盘来存储数据,或通过所述共享存储模块Shared Storage来存储数据;
所述共享存储模块Shared Storage,用于共享存储;
所述网关服务GateWay,用于接收结构化查询语言SQL请求,并根据所述协调服务集群Zookeeper Cluster中的路由配置,选择把SQL请求转发给所述开源数据库进程模块DB,所述开源数据库进程模块DB包括DB1或者DB2或者DB3;
所述数据中心IDC,包括IDC1、IDC2、IDC3。
进一步地,所述DB1和DB1-HA是两个数据库进程,在DB1能正常提供服务的情况下,DB1-HA不提供服务;DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程。
进一步地,所述DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程,包括:
当心跳不存在或者心跳上报异常超过一定的阀值时间,发起主备切换流程;
DB1所在的宿主机进行共享资源隔离和VIP回收工作;
如果操作失败,则本次数据中心内部切换失败,上报所述协调服务集群ZookeeperCluster进行跨数据中心切换,操作成功则DB1-HA所在的宿主机进行共享资源的挂载,并使用共享存储中的数据启动数据库进程,如果操作失败,则本次数据中心内部切换失败,上报所述协调服务集群Zookeeper Cluster进行跨数据中心切换,操作成功则DB1-HA获取VIP资源,对外提供服务。
进一步地,所述每个数据库进程DB都有一个数据库进程监控模块NodeGuard节点进行监控守护,数据库进程监控模块NodeGuard节点在协调服务集群Zookeeper中维护一个Zookeeper心跳节点即Zookeeper临时节点,当数据库进程监控模块NodeGuard节点判断DB进程异常包括MySQL进程不可用,会上报Zookeeper心跳节点异常;当数据库进程监控模块NodeGuard节点消失,意味着数据库进程监控模块NodeGuard和数据库进程DB所在的宿主机宕机,同时数据库进程监控模块NodeGuard在协调服务集群Zookeeper中维护的Zookeeper心跳节点也会跟着消失,当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,集群控制中心Chunkkeeper会根据协调服务集群Zookeeper中的心跳信息发起主备切换流程。
进一步地,所述当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,集群控制中心Chunkkeeper会根据协调服务集群Zookeeper中的心跳信息发起主备切换流程,包括:
数据库进程监控模块NodeGuard上报异常心跳到协调服务集群Zookeeper或者心跳丢失超过时间阀值,集群控制中心Chunkkeeper关注到这个事件,并发起切换任务;
如果是数据库进程监控模块NodeGuard上报异常心跳,则集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,任务为令DB1的数据库进程监控模块NodeGuard将数据库进程DB1设置为只读模式,DB1的数据库进程监控模块NodeGuard监控到这个任务,并将数据库进程DB1设置为只读模式,否则跳过上述设置只读模式的步骤,集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,任务令数据库进程监控模块NodeGuard上报DB2和DB3的复制同步点,数据库进程监控模块NodeGuard获取DB2和DB3的同步点后上报给集群控制中心Chunkkeeper;
集群控制中心Chunkkeeper选取同步点较大的数据库假设此数据库为DB2,下发任务给其数据库进程监控模块NodeGuard,令DB2加载中继日志到数据库引擎;
DB2的数据库进程监控模块NodeGuard完成数据库进程DB2加载中继日志到数据库引擎的操作,并上报协调服务集群Zookeeper任务完成;
集群控制中心Chunkkeeper修改GateWay的路由,从原来的转发SQL请求到数据库进程DB1到转发请求到DB2;
网关服务GateWay从协调服务集群Zookeeper获取新的路由配置,并转发新的SQL请求到DB2。
本发明还提出了一种基于开源数据库的跨数据中心容灾解决方法,包括:
数据库进程监控模块NodeGuard上报异常心跳到协调服务集群Zookeeper或者心跳丢失超过时间阀值,集群控制中心Chunkkeeper关注到这个事件,并发起切换任务;
如果是数据库进程监控模块NodeGuard上报异常心跳,则集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,任务为令DB1的数据库进程监控模块NodeGuard将DB1设置为只读模式,DB1的数据库进程监控模块NodeGuard监控到这个任务,并将DB1设置为只读模式,否则跳过上述设置只读模式的步骤,集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,任务令数据库进程监控模块NodeGuard上报DB2和DB3的复制同步点,数据库进程监控模块NodeGuard获取DB2和DB3的同步点后上报给集群控制中心Chunkkeeper;
集群控制中心Chunkkeeper选取同步点较大的数据库假设此数据库为DB2,下发任务给其数据库进程监控模块NodeGuard,令DB2加载中继日志到数据库引擎;
DB2的数据库进程监控模块NodeGuard完成DB2加载中继日志到数据库引擎的操作,并上报协调服务集群Zookeeper任务完成;
集群控制中心Chunkkeeper修改网关服务GateWay的路由,从原来的转发SQL请求到DB1到转发请求到DB2;
网关服务GateWay从协调服务集群Zookeeper获取新的路由配置,并转发新的SQL请求到DB2。
进一步地,所述基于开源数据库的跨数据中心容灾解决方法,还包括:
当心跳不存在或者心跳上报异常超过一定的阀值时间,发起主备切换流程;
DB1所在的宿主机进行共享资源隔离和VIP回收工作;
如果操作失败,则本次数据中心内部切换失败,上报协调服务集群ZookeeperCluster进行跨数据中心切换,操作成功则DB1-HA所在的宿主机进行共享资源的挂载,并使用共享存储中的数据启动数据库进程,如果操作失败,则本次数据中心内部切换失败,上报所述协调服务集群Zookeeper Cluster进行跨数据中心切换,操作成功则DB1-HA获取VIP资源,对外提供服务。
进一步地,所述DB1和DB1-HA是两个数据库进程,在DB1能正常提供服务的情况下,DB1-HA不提供服务;DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程。
进一步地,每个所述数据库进程DB都有一个数据库进程监控模块NodeGuard节点进行监控守护,数据库进程监控模块NodeGuard节点在协调服务集群Zookeeper中维护一个Zookeeper心跳节点即Zookeeper临时节点,当数据库进程监控模块NodeGuard节点判断数据库进程DB异常包括MySQL进程不可用,会上报Zookeeper心跳节点异常;当数据库进程监控模块NodeGuard节点消失,意味着数据库进程监控模块NodeGuard和数据库进程DB所在的宿主机宕机,同时数据库进程监控模块NodeGuard在协调服务集群Zookeeper中维护的心跳节点也会跟着消失,当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,集群控制中心Chunkkeeper会根据协调服务集群Zookeeper中的心跳信息发起主备切换流程。
本发明提供的基于开源数据库的跨数据中心容灾解决系统及方法,兼顾基于共享存储高可用方案的简便性和基于远程复制方案的跨数据中心容灾的能力,并且保证了容灾前后数据的一致性,为传统公司使用开源数据库提供了一套切实可行的容灾方案。
附图说明
图1,为本发明基于开源数据库的跨数据中心容灾解决系统的示意图;
图2,为本发明基于开源数据库的跨数据中心容灾解决方法的示意图;
图3,为本发明基于开源数据库的跨数据中心容灾解决方法又一实施例的示意图。
具体实施方式
本发明提供一种基于开源数据库的跨数据中心容灾解决系统及方法,应用于开源数据库技术领域,本发明基于开源数据库的跨数据中心容灾解决系统及方法,兼顾基于共享存储高可用方案的简便性和基于远程复制方案的跨数据中心容灾的能力,并且保证了容灾前后数据的一致性,为传统公司使用开源数据库提供了一套切实可行的容灾方案。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下为文中部分英文单词的解释:
Zookeeper心跳节点:分布式应用程序协调服务提供的一种服务,能够探测被监测的进程是否存活,也称为Zookeeper心跳服务。
Zookeeper临时节点:分布式应用程序协调服务提供的一种服务,能够探测被监测的服务是否存活,也称为Zookeeper心跳服务。
数据库进程DB:MySQL进程。
Gateway:网关服务。
zookeeper:分布式应用程序协调服务。
zookeeper cluster:分布式应用程序协调服务集群。
本发明提供一种基于开源数据库的跨数据中心容灾解决系统。
请参见图1,图1为本发明基于开源数据库的跨数据中心容灾解决系统的示意图,本发明基于开源数据库的跨数据中心容灾解决系统10,包括:集群控制中心Chunkkeeper101、协调服务集群Zookeeper Cluster102、数据库进程监控模块NodeGuard103、开源数据库进程模块DB104、共享存储模块Shared Storage105、网关服务GateWay106、数据中心IDC107;
集群控制中心Chunkkeeper101,用于监控集群数据的可用性,在必要的时候发起容灾切换,并控制切换流程;
协调服务集群Zookeeper Cluster102,用于存储数据信息包括心跳数据信息、资源数据信息等,存储数数据库的健康状态,解耦集群控制中心Chunkkeeper101、数据库进程监控模块NodeGuard103、网关服务GateWay106三者之间的数据通信;
数据库进程监控模块NodeGuard103,用来监控数据库的状态,并在协调服务集群Zookeeper Cluster102中维护一个心跳节点,以及通知集群控制中心Chunkkeeper101数据库的可用性;
开源数据库进程模块DB104,用于通过本地磁盘来存储数据,或通过共享存储模块Shared Storage105来存储数据;
共享存储模块Shared Storage105,用于共享存储;
网关服务GateWay106,用于接收结构化查询语言(SQL)请求,并根据协调服务集群Zookeeper Cluster102中的路由配置,选择把SQL请求转发给开源数据库进程模块DB104,该开源数据库进程模块DB104包括DB1或者DB2或者DB3;
数据中心IDC107,包括IDC1、IDC2、IDC3。
其中,DB1和DB1-HA是两个数据库进程,在DB1能正常提供服务的情况下,DB1-HA不提供服务;DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程。
其中,DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程,包括:
当心跳不存在或者心跳上报异常超过一定的阀值时间,发起主备切换流程;
DB1所在的宿主机进行共享资源隔离和VIP回收工作;
如果操作失败,则本次数据中心内部切换失败,上报协调服务集群ZookeeperCluster102进行跨数据中心切换,操作成功则DB1-HA所在的宿主机进行共享资源的挂载,并使用共享存储中的数据启动数据库进程,如果操作失败,则本次数据中心内部切换失败,上报协调服务集群Zookeeper Cluster102进行跨数据中心切换,操作成功则DB1-HA获取VIP资源,对外提供服务。
其中,每个数据库进程DB都有一个NodeGuard节点进行监控守护,NodeGuard节点在Zookeeper集群中维护一个Zookeeper心跳节点即Zookeeper临时节点,当NodeGuard节点判断DB进程异常包括MySQL进程不可用,会上报Zookeeper心跳节点异常;当NodeGuard节点消失,意味着NodeGuard和DB进程所在的宿主机宕机,同时NodeGuard在Zookeeper中维护的心跳节点也会跟着消失,当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,Chunkkeeper会根据Zookeeper中的心跳信息发起主备切换流程。
其中,当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,Chunkkeeper会根据Zookeeper中的心跳信息发起主备切换流程,包括:
NodeGuard上报异常心跳到Zookeeper集群或者心跳丢失超过时间阀值,Chunkkeeper关注到这个事件,并发起切换任务;
如果是NodeGuard上报异常心跳,则Chunkkeeper下发任务到Zookeeper,任务为令DB1的NodeGuard将DB1设置为只读模式,DB1的NodeGuardWatch到这个任务,并将DB1设置为只读模式,否则跳过上述设置只读模式的步骤,Chunkkeeper下发任务到Zookeeper,任务令NodeGuard上报DB2和DB3的复制同步点,NodeGuard获取DB2和DB3的同步点后上报给Chunkkeeper;
Chunkkeeper选取同步点较大的数据库假设此数据库为DB2,下发任务给其NodeGuard,令DB2加载中继日志到数据库引擎;
DB2的NodeGuard完成DB2加载中继日志到数据库引擎的操作,并上报Zookeeper任务完成;
Chunkkeeper修改GateWay的路由,从原来的转发SQL请求到DB1到转发请求到DB2;
GateWay从Zookeeper获取新的路由配置,并转发新的SQL请求到DB2。
本发明还提供一种基于开源数据库的跨数据中心容灾解决方法。
请参见图2,图2为本发明基于开源数据库的跨数据中心容灾解决方法的示意图,本发明基于开源数据库的跨数据中心容灾解决方法,包括:
S21、NodeGuard上报异常心跳到Zookeeper集群或者心跳丢失超过时间阀值,Chunkkeeper关注到这个事件,并发起切换任务;
S22、如果是NodeGuard上报异常心跳,则Chunkkeeper下发任务到Zookeeper,任务为令DB1的NodeGuard将DB1设置为只读模式,DB1的NodeGuardWatch到这个任务,并将DB1设置为只读模式,否则跳过上述设置只读模式的步骤,Chunkkeeper下发任务到Zookeeper,任务令NodeGuard上报DB2和DB3的复制同步点,NodeGuard获取DB2和DB3的同步点后上报给Chunkkeeper;
S23、Chunkkeeper选取同步点较大的数据库假设此数据库为DB2,下发任务给其NodeGuard,令DB2加载中继日志到数据库引擎;
S24、DB2的NodeGuard完成DB2加载中继日志到数据库引擎的操作,并上报Zookeeper任务完成;
S25、Chunkkeeper修改GateWay的路由,从原来的转发SQL请求到DB1到转发请求到DB2;
S26、GateWay从Zookeeper获取新的路由配置,并转发新的SQL请求到DB2。
其中,请参见图3,图3为本发明基于开源数据库的跨数据中心容灾解决方法又一实施例的示意图,本发明基于开源数据库的跨数据中心容灾解决方法,还包括:
S31、当心跳不存在或者心跳上报异常超过一定的阀值时间,发起主备切换流程;
S32、DB1所在的宿主机进行共享资源隔离和VIP回收工作;
S33、如果操作失败,则本次数据中心内部切换失败,上报协调服务集群ZookeeperCluster102进行跨数据中心切换,操作成功则DB1-HA所在的宿主机进行共享资源的挂载,并使用共享存储中的数据启动数据库进程,如果操作失败,则本次数据中心内部切换失败,上报协调服务集群Zookeeper Cluster102进行跨数据中心切换,操作成功则DB1-HA获取VIP资源,对外提供服务。
其中,DB1和DB1-HA是两个数据库进程,在DB1能正常提供服务的情况下,DB1-HA不提供服务;DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程。
其中,每个数据库进程DB都有一个NodeGuard节点进行监控守护,NodeGuard节点在Zookeeper集群中维护一个Zookeeper心跳节点即Zookeeper临时节点,当NodeGuard节点判断DB进程异常包括MySQL进程不可用,会上报Zookeeper心跳节点异常;当NodeGuard节点消失,意味着NodeGuard和DB进程所在的宿主机宕机,同时NodeGuard在Zookeeper中维护的心跳节点也会跟着消失,当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,Chunkkeeper会根据Zookeeper中的心跳信息发起主备切换流程。
本发明基于开源数据库的跨数据中心容灾解决系统及方法,兼顾基于共享存储高可用方案的简便性和基于远程复制方案的跨数据中心容灾的能力,并且保证了容灾前后数据的一致性,为传统公司使用开源数据库提供了一套切实可行的容灾方案。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。而且,术语“包含”、“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系统要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个、、、、、、”限定的要素,并不排除在包括所述要素的过程、方法、物品、设备或者装置中还存在另外的相同要素。
对于本发明基于开源数据库的跨数据中心容灾解决系统及方法,实现的形式是多种多样的。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于开源数据库的跨数据中心容灾解决系统,其特征在于,包括:集群控制中心Chunkkeeper、协调服务集群Zookeeper Cluster、数据库进程监控模块NodeGuard、开源数据库进程模块DB、共享存储模块Shared Storage、网关服务GateWay、数据中心IDC;
所述集群控制中心Chunkkeeper,用于监控集群数据的可用性,在心跳节点异常或心跳节点消失超过一个人为设定的时间阀值的时候发起容灾切换,并控制切换流程;
所述协调服务集群Zookeeper Cluster,用于存储数据信息包括心跳数据信息、资源数据信息,存储数据库的健康状态,解耦所述集群控制中心Chunkkeeper、所述数据库进程监控模块NodeGuard、所述网关服务GateWay三者之间的数据通信;
所述数据库进程监控模块NodeGuard,用来监控数据库的状态,并在所述协调服务集群Zookeeper Cluster中维护一个心跳节点,以及通知所述集群控制中心Chunkkeeper数据库的可用性;
所述开源数据库进程模块DB,用于通过本地磁盘来存储数据,或通过所述共享存储模块Shared Storage来存储数据;
所述共享存储模块Shared Storage,用于共享存储;
所述网关服务GateWay,用于接收结构化查询语言SQL请求,并根据所述协调服务集群Zookeeper Cluster中的路由配置,选择把SQL请求转发给所述开源数据库进程模块DB,所述开源数据库进程模块DB包括DB1或者DB2或者DB3;
所述数据中心IDC,包括IDC1、IDC2、IDC3;
当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,集群控制中心Chunkkeeper会根据协调服务集群Zookeeper中的心跳信息发起主备切换流程,包括:
数据库进程监控模块NodeGuard上报异常心跳到协调服务集群Zookeeper或者心跳丢失超过时间阀值,集群控制中心Chunkkeeper关注到这个事件,并发起切换任务;
如果是数据库进程监控模块NodeGuard上报异常心跳,则集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,任务为令DB1的数据库进程监控模块NodeGuard将数据库进程DB1设置为只读模式,DB1的数据库进程监控模块NodeGuard监控到这个任务,并将数据库进程DB1设置为只读模式,否则跳过上述设置只读模式的步骤,集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,任务令数据库进程监控模块NodeGuard上报DB2和DB3的复制同步点,数据库进程监控模块NodeGuard获取DB2和DB3的同步点后上报给集群控制中心Chunkkeeper;
集群控制中心Chunkkeeper选取同步点较大的数据库假设此数据库为DB2,下发任务给其数据库进程监控模块NodeGuard,令DB2加载中继日志到数据库引擎;
DB2的数据库进程监控模块NodeGuard完成数据库进程DB2加载中继日志到数据库引擎的操作,并上报协调服务集群Zookeeper任务完成;
集群控制中心Chunkkeeper修改GateWay的路由,从原来的转发SQL请求到数据库进程DB1到转发请求到DB2;
网关服务GateWay从协调服务集群Zookeeper获取新的路由配置,并转发新的SQL请求到DB2。
2.如权利要求1所述的基于开源数据库的跨数据中心容灾解决系统,其特征在于,所述DB1和DB1-HA是两个数据库进程,在DB1能正常提供服务的情况下,DB1-HA不提供服务;DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程。
3.如权利要求2所述的基于开源数据库的跨数据中心容灾解决系统,其特征在于,所述DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程,包括:
当心跳不存在或者心跳上报异常超过一定的阀值时间,发起主备切换流程;
DB1所在的宿主机进行共享资源隔离和VIP回收工作;
如果操作失败,则本次数据中心内部切换失败,上报所述协调服务集群ZookeeperCluster进行跨数据中心切换,操作成功则DB1-HA所在的宿主机进行共享资源的挂载,并使用共享存储中的数据启动数据库进程,如果操作失败,则本次数据中心内部切换失败,上报所述协调服务集群Zookeeper Cluster进行跨数据中心切换,操作成功则DB1-HA获取VIP资源,对外提供服务。
4.如权利要求1所述的基于开源数据库的跨数据中心容灾解决系统,其特征在于,每个数据库进程DB都有一个数据库进程监控模块NodeGuard节点进行监控守护,数据库进程监控模块NodeGuard节点在协调服务集群Zookeeper中维护一个Zookeeper心跳节点即Zookeeper临时节点,当数据库进程监控模块NodeGuard节点判断DB进程异常包括MySQL进程不可用,会上报Zookeeper心跳节点异常;当数据库进程监控模块NodeGuard节点消失,意味着数据库进程监控模块NodeGuard和数据库进程DB所在的宿主机宕机,同时数据库进程监控模块NodeGuard在协调服务集群Zookeeper中维护的Zookeeper心跳节点也会跟着消失,当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,集群控制中心Chunkkeeper会根据协调服务集群Zookeeper中的心跳信息发起主备切换流程。
5.一种基于开源数据库的跨数据中心容灾解决方法,其特征在于,包括:
数据库进程监控模块NodeGuard上报异常心跳到协调服务集群Zookeeper或者心跳丢失超过时间阀值,集群控制中心Chunkkeeper关注到这个事件,并发起切换任务;
如果是数据库进程监控模块NodeGuard上报异常心跳,则集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,开源数据库进程模块DB包括DB1或者DB2或者DB3,任务为令DB1的数据库进程监控模块NodeGuard将DB1设置为只读模式,DB1的数据库进程监控模块NodeGuard监控到这个任务,并将DB1设置为只读模式,否则跳过上述设置只读模式的步骤,集群控制中心Chunkkeeper下发任务到协调服务集群Zookeeper,任务令数据库进程监控模块NodeGuard上报DB2和DB3的复制同步点,数据库进程监控模块NodeGuard获取DB2和DB3的同步点后上报给集群控制中心Chunkkeeper;
集群控制中心Chunkkeeper选取同步点较大的数据库假设此数据库为DB2,下发任务给其数据库进程监控模块NodeGuard,令DB2加载中继日志到数据库引擎;
DB2的数据库进程监控模块NodeGuard完成DB2加载中继日志到数据库引擎的操作,并上报协调服务集群Zookeeper任务完成;
集群控制中心Chunkkeeper修改网关服务GateWay的路由,从原来的转发SQL请求到DB1到转发请求到DB2;
网关服务GateWay从协调服务集群Zookeeper获取新的路由配置,并转发新的SQL请求到DB2。
6.如权利要求5所述的基于开源数据库的跨数据中心容灾解决方法,其特征在于,所述基于开源数据库的跨数据中心容灾解决方法,还包括:
当心跳不存在或者心跳上报异常超过一定的阀值时间,发起主备切换流程;
DB1所在的宿主机进行共享资源隔离和VIP回收工作;
如果操作失败,则本次数据中心内部切换失败,上报协调服务集群Zookeeper Cluster进行跨数据中心切换,操作成功则DB1-HA所在的宿主机进行共享资源的挂载,并使用共享存储中的数据启动数据库进程,如果操作失败,则本次数据中心内部切换失败,上报所述协调服务集群Zookeeper Cluster进行跨数据中心切换,操作成功则DB1-HA获取VIP资源,对外提供服务。
7.如权利要求5或6所述的基于开源数据库的跨数据中心容灾解决方法,其特征在于,所述DB1和DB1-HA是两个数据库进程,在DB1能正常提供服务的情况下,DB1-HA不提供服务;DB1和DB1-HA的监控模块会上报心跳,当DB1的上报心跳异常,或者没有上报心跳达到一定时间阀值后,会发起主备切换流程。
8.如权利要求5或6所述的基于开源数据库的跨数据中心容灾解决方法,其特征在于,每个数据库进程DB都有一个数据库进程监控模块NodeGuard节点进行监控守护,数据库进程监控模块NodeGuard节点在协调服务集群Zookeeper中维护一个Zookeeper心跳节点即Zookeeper临时节点,当数据库进程监控模块NodeGuard节点判断数据库进程DB异常包括MySQL进程不可用,会上报Zookeeper心跳节点异常;当数据库进程监控模块NodeGuard节点消失,意味着数据库进程监控模块NodeGuard和数据库进程DB所在的宿主机宕机,同时数据库进程监控模块NodeGuard在协调服务集群Zookeeper中维护的心跳节点也会跟着消失,当心跳节点异常或者心跳节点消失超过一个人为设定的时间阀值后,集群控制中心Chunkkeeper会根据协调服务集群Zookeeper中的心跳信息发起主备切换流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807135.8A CN106407042B (zh) | 2016-09-06 | 2016-09-06 | 一种基于开源数据库的跨数据中心容灾解决系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807135.8A CN106407042B (zh) | 2016-09-06 | 2016-09-06 | 一种基于开源数据库的跨数据中心容灾解决系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106407042A CN106407042A (zh) | 2017-02-15 |
CN106407042B true CN106407042B (zh) | 2019-04-23 |
Family
ID=57999784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610807135.8A Active CN106407042B (zh) | 2016-09-06 | 2016-09-06 | 一种基于开源数据库的跨数据中心容灾解决系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106407042B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729129B (zh) | 2017-10-31 | 2021-10-26 | 华为技术有限公司 | 存储集群系统的配置修改方法、存储集群及计算机系统 |
CN107870763A (zh) * | 2017-11-27 | 2018-04-03 | 深圳市华成峰科技有限公司 | 用于创建海量数据实时分拣系统的方法及其装置 |
CN108959604B (zh) * | 2018-07-13 | 2020-11-10 | 浙江彩虹鱼科技有限公司 | 维护数据库集群的方法、装置及计算机可读存储介质 |
CN109672551B (zh) * | 2018-09-25 | 2022-02-01 | 平安科技(深圳)有限公司 | 跨数据中心应用发布方法、设备、存储介质及装置 |
CN111338767B (zh) * | 2018-12-18 | 2023-09-29 | 无锡雅座在线科技股份有限公司 | PostgreSQL主从数据库自动切换系统及方法 |
CN109839912B (zh) * | 2019-02-26 | 2024-09-17 | 宝信软件(武汉)有限公司 | 汽车生产线数据管理系统以及方法 |
CN111865632B (zh) * | 2019-04-28 | 2024-08-02 | 阿里巴巴集团控股有限公司 | 分布式数据存储集群的切换方法及切换指令发送方法和装置 |
CN115967611B (zh) * | 2021-10-13 | 2024-07-16 | 中移物联网有限公司 | 跨域的切换处理方法、装置、设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064860A (zh) * | 2011-10-21 | 2013-04-24 | 阿里巴巴集团控股有限公司 | 数据库高可用实现方法及其装置 |
US9098453B2 (en) * | 2013-07-11 | 2015-08-04 | International Business Machines Corporation | Speculative recovery using storage snapshot in a clustered database |
CN105471622B (zh) * | 2015-11-12 | 2019-03-01 | 武汉噢易云计算股份有限公司 | 一种基于Galera的控制节点主备切换的高可用方法及系统 |
CN105468727A (zh) * | 2015-11-20 | 2016-04-06 | 国家电网公司 | 基于zookeeper实现MySQL强一致性复制方法 |
-
2016
- 2016-09-06 CN CN201610807135.8A patent/CN106407042B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106407042A (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407042B (zh) | 一种基于开源数据库的跨数据中心容灾解决系统及方法 | |
US10713135B2 (en) | Data disaster recovery method, device and system | |
US11360854B2 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
US20150278030A1 (en) | Distributed Database Synchronization Method and System | |
CN107465721B (zh) | 基于双活架构的全局负载均衡方法和系统及调度服务器 | |
CN105471960A (zh) | 一种私有云与公有云的信息交互系统及方法 | |
KR101670343B1 (ko) | 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템 | |
CN101414946B (zh) | 一种远程数据备份方法及介质服务器 | |
CN105069160A (zh) | 一种基于自主可控数据库的高可用性方法及构架 | |
CN102467508A (zh) | 提供数据库服务的方法及数据库系统 | |
CN103607293B (zh) | 一种流量保护方法及设备 | |
CN105630913A (zh) | 一种基于Redis管道通信的消息传递方法及系统 | |
CN108551397A (zh) | 网桥装置及应用以及多plc主站与多plc从站的通信控制方法 | |
CN104618127A (zh) | 主备存储节点切换方法和系统 | |
CN110175089A (zh) | 一种具有读写分离功能的双活灾备系统 | |
CN106919473A (zh) | 一种数据灾备系统及业务处理方法 | |
CN106156318A (zh) | 一种实现多节点数据库高可用的系统及方法 | |
CN104486387B (zh) | 一种数据同步处理方法及系统 | |
CN111800484A (zh) | 机动边缘信息服务系统的服务抗毁接替方法 | |
CN109361777A (zh) | 分布式集群节点状态的同步方法、同步系统及相关装置 | |
CN111865632A (zh) | 分布式数据存储集群的切换方法及切换指令发送方法和装置 | |
CN109859068B (zh) | 一种基于资源池技术的电网数据实时同步系统 | |
CN110674192A (zh) | 一种Redis高可用VIP漂移方法、终端及存储介质 | |
CN102185717A (zh) | 业务处理设备、方法及系统 | |
CN109165122B (zh) | 一种提升基于区块链技术实现的应用系统同城多园区部署灾备能力的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Room 701, building 11, Shenzhen Software Park (phase 2), No. 1, Keji Middle Road, Maling community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: SHENZHEN HUACHENGFENG DATA TECHNOLOGY Co.,Ltd. Address before: 518000 Guangdong city of Shenzhen province Nanshan District South Road seven No. 16 Deveson building six floor Patentee before: SHENZHEN HUACHENGFENG DATA TECHNOLOGY Co.,Ltd. |