CN117215833A - 分布式数据备份方法、系统、设备及存储介质 - Google Patents
分布式数据备份方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN117215833A CN117215833A CN202311182362.2A CN202311182362A CN117215833A CN 117215833 A CN117215833 A CN 117215833A CN 202311182362 A CN202311182362 A CN 202311182362A CN 117215833 A CN117215833 A CN 117215833A
- Authority
- CN
- China
- Prior art keywords
- cluster
- local
- clickhouse
- remote
- backup
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000000977 initiatory effect Effects 0.000 claims abstract description 15
- 230000001360 synchronised effect Effects 0.000 claims description 37
- 230000004083 survival effect Effects 0.000 claims description 14
- 238000013461 design Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 241000283153 Cetacea Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种分布式数据备份方法、系统、设备及存储介质,涉及分布式领域,用于Zookeeper软件,包括:判断本地主集群、本地副集群和异地clickhouse集群是否宕机;若确定仅本地主集群宕机,将本地主集群和本地副集群互换并保存本地副集群的宕机节点;若确定仅本地副集群宕机时保存本地副集群对应的宕机节点;向本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向异地clickhouse集群发送用户数据用于异地备份;判断本地副集群是否恢复存活,在确定本地副集群恢复存活时,根据宕机节点发起数据回滚请求。本申请能够解决ClickHouse集群在进行数据备份时容易出错的问题。
Description
技术领域
本申请涉及分布式领域,尤其涉及一种分布式数据备份方法、系统、设备及存储介质。
背景技术
ClickHouse是一个面向在线分析处理的列式数据库管理系统,具有高性能、高可扩展性和高并发处理能力。它适用于实时分析,日志分析,大数据分析,实时报表和可视化,数据仓库,分布式计算等多种场景。
随着数据规模的不断增长和业务的全球化发展,传统的数据备份和复制方案面临着诸多挑战。ClickHouse集群在传统的基于主从复制的备份方案存在单点故障和数据一致性问题,无法满足高性能和高可用性的需求。
针对上述缺陷,亟需一种分布式数据备份方法、系统、设备及存储介质,能够解决在ClickHouse集群在进行数据备份时容易出错的问题。
发明内容
本申请提供一种分布式数据备份方法、系统、设备及存储介质,用以解决ClickHouse集群在进行数据备份时容易出错的问题。
第一方面,本申请提供一种分布式数据备份方法,用于Zookeeper软件,所述Zookeeper软件部署于第一clickhouse本地集群和第二clickhouse本地集群,在所述第一clickhouse本地集群和所述第二clickhouse本地集群中确定本地主集群和本地副集群;所述Zookeeper软件还与异地clickhouse集群和存储云端配置连接,其中,所述本地主集群用于接收用户数据并通过Zookeeper软件同步写入所述本地副集群;发送所述用户数据至所述异地clickhouse集群进行异地备份;所述存储云端用于接收所述异地clickhouse集群发送的所述用户数据并进行云备份;所述方法包括:
判断所述本地主集群、所述本地副集群和所述异地clickhouse集群是否宕机;
若确定仅所述本地主集群宕机,将所述本地主集群和所述本地副集群互换并保存所述本地副集群的宕机节点;若确定仅所述本地副集群宕机时保存所述本地副集群对应的宕机节点;
向所述本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向所述异地clickhouse集群发送所述用户数据用于异地备份;
判断所述本地副集群是否恢复存活,在确定所述本地副集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
在一种可能的设计中,所述方法还包括:
接收所述本地主集群的用户数据,将所述用户数据同步写入所述本地副集群;
若所述同步写入失败,保存所述本地副集群的宕机节点,向所述本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向所述异地clickhouse集群发送所述用户数据用于异地备份;
判断所述本地副集群是否恢复存活,在确定所述本地副集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
在一种可能的设计中,若确定仅所述异地clickhouse集群宕机,所述方法还包括:
保存所述异地clickhouse集群对应的宕机节点;判断所述异地clickhouse集群是否恢复存活,在确定所述异地clickhouse集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
在一种可能的设计中,所述判断所述本地主集群或所述本地副集群或所述异地clickhouse集群是否宕机,包括:
根据第一预设周期向所述本地主集群或所述本地副集群或所述异地clickhouse集群发送的心跳信号,若在第二预设周期内未收到所述本地主集群/所述本地副集群/所述异地clickhouse集群发送的回复信号,则确认所述本地主集群/所述本地副集群/所述异地clickhouse集群已宕机。
在一种可能的设计中,所述判断所述本地副集群或所述异地clickhouse集群是否恢复存活,包括:
根据第三预设周期向所述本地副集群或所述异地clickhouse集群分别发送各自的心跳信号,若在第四预设周期内收到所述本地副集群或所述异地clickhouse集群发送的回复信号,则确认所述本地副集群或所述异地clickhouse集群恢复存活。
在一种可能的设计中,所述在确定所述本地副集群恢复存活时,所述根据所述宕机节点发起数据回滚请求,包括:
所述在确定所述本地副集群恢复存活时,向所述存储云端发送第一数据回滚请求和所述本地副集群的所述宕机节点;其中,所述第一数据回滚请求用于指示所述存储云端根据所述本地副集群的所述宕机节点对所述本地副集群进行数据回滚备份。
在一种可能的设计中,所述在确定所述异地clickhouse集群恢复存活时,所述根据所述宕机节点发起数据回滚请求,包括:
在确定所述异地clickhouse集群恢复存活时,向所述本地主集群发送第二数据回滚请求和所述异地clickhouse集群的所述宕机节点;其中,所述第二数据回滚请求用于指示所述本地主集群根据所述异地clickhouse集群的所述宕机节点对所述异地clickhouse集群进行数据回滚备份。
第二方面,本申请提供一种分布式数据备份系统,所述系统包括:
第一clickhouse本地集群、第二clickhouse本地集群、异地clickhouse集群和存储云端,所述第一clickhouse本地集群和所述第二clickhouse本地集群中均部署Zookeepr软件,所述Zookeepr软件在所述第一clickhouse本地集群和所述第二clickhouse本地集群中确定本地主集群和本地副集群;所述Zookeepr软件还分别与异地clickhouse集群和存储云端配置连接,所述异地clickhouse集群还与分别所述第一clickhouse本地集群、所述第二clickhouse本地集群和存储云端配置连接;其中
所述Zookeeper软件,用于执行如权利要求1~7任一项所述的方法;
所述本地主集群,用于接收用户数据,将所述用户数据发送至所述Zookeeper软件用于与所述本地副集群进行同步写入;
还用于根据所述异地clickhouse集群的所述宕机节点和回滚请求对所述异地clickhouse集群进行回滚备份;
所述本地副集群,用于作为所述本地主集群的同步备份;还用于向所述Zookeeper软件发送所述本地副集群的宕机节点;
所述异地clickhouse集群,用于作为所述本地主集群的异地备份,还用于将所述用户数据发送至所述存储云端用于云备份;还用于向所述Zookeeper软件发送所述异地clickhouse集群的宕机节点;
所述存储云端,用于对所述异地clickhouse集群发送的所述用户数据进行云备份;还用于根据所述本地副集群的所述宕机节点和回滚请求对所述本地副集群进行回滚备份。
第三方面,本申请提供一种分布式数据备份设备,用于Zookeeper软件,所述Zookeeper软件部署于第一clickhouse本地集群和第二clickhouse本地集群,在所述第一clickhouse本地集群和所述第二clickhouse本地集群中确定本地主集群和本地副集群;所述Zookeeper软件还与异地clickhouse集群和存储云端配置连接,其中,所述本地主集群用于接收用户数据;发送所述用户数据至所述异地clickhouse集群进行异地备份;所述存储云端用于接收所述异地clickhouse集群发送的所述用户数据并进行云备份;所述设备包括:
判断模块,用于判断所述本地主集群和所述本地副集群是否宕机;
确定模块,用于若确定仅所述本地主集群宕机,将所述本地主集群和所述本地副集群互换并保存所述本地副集群的宕机节点;若确定仅所述本地副集群宕机时保存所述本地副集群对应的宕机节点;
发送模块,用于向所述本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向所述异地clickhouse集群发送所述用户数据用于异地备份;
请求模块,判断所述本地副集群是否恢复存活,在确定所述本地副集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
第四方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述一种分布式数据备份方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述用于蓝鲸平台或本地开发端的一种分布式数据备份方法。
本申请提供的一种中分布式数据备份方法、系统、设备及存储介质,包括:通过Zookeeper完成本地主集群和本地副集群的同步写入,并监控本地主集群、本地副集群的运行情况,在其中一个发生宕机时保存宕机节点,将同步写入切换为本地主集群单点写入,在其恢复存活时根据其他集群的备份实现数据回滚。能够实现了如下技术效果:
通过Zookeeper完成本地主集群和本地副集群的同步写入,实现clickhouse集群的本地双活备份和异地备份;监控本地主集群、本地副集群的运行情况,在其中一个发生宕机时保存宕机节点,将同步写入切换为本地主集群单点写入,在其恢复存活时根据其他集群的备份实现数据回滚。采用本方法实现数据备份的容错率高,能够保证第一clickhouse集群、第二clickhouse集群和异地clickhouse集群备份数据的一致性,减少数据备份的出错率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分布式数据备份方法的流程示意图一;
图2为本申请实施例提供的一种分布式数据备份方法的流程示意图二;
图3为本申请实施例提供的一种分布式数据备份方法的流程示意图三;
图4为本申请实施例提供的一种分布式数据备份系统的结构示意图;
图5为本申请实施例提供的一种分布式数据备份设备的结构示意图;
图6为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。
需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。
首先对本申请中的名词进行解释:
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
现有的clickhouse分布式集群,只是针对于一台集群多个节点的分布式,而不是多地部署的分布式,因此在数据安全性上存在着很大的问题,例如当出现集群宕机等情况时,会面临着数据无法访问,甚至丢失的风险。本发明根据提供一种分布式数据备份方法、系统;通过监控第一clickhouse集群、第二clickhouse集群和异地clickhouse集群的运行情况,在其中一个发生宕机时保存宕机节点,在其恢复存活时根据其他集群的备份实现数据回滚。能够完成基于clickhouse集群的同步备份、异步备份;以保证数据的一致性、安全性和可达性。
下面结合附图对本申请实施例提供的一种分布式数据备份方法、系统进行详细地介绍。
图1为本申请实施例提供的一种分布式数据备份方法的流程示意图一;本方法用于Zookeeper软件,其中属于一种分布式数据备份系统的其中一个组成部分,该系统还包括第一clickhouse本地集群、第二clickhouse本地集群、异地clickhouse集群和存储云端,第一clickhouse本地集群和第二clickhouse本地集群中均部署Zookeepr软件,Zookeepr软件在第一clickhouse本地集群和第二clickhouse本地集群中确定本地主集群和本地副集群;Zookeepr软件还分别与异地clickhouse集群和存储云端配置连接,异地clickhouse集群还与分别第一clickhouse本地集群、第二clickhouse本地集群和存储云端配置连接,存储云端用于接收异地clickhouse集群发送的用户数据并进行云备份。如图1所示,该方法包括:
S110、判断本地主集群、本地副集群和异地clickhouse集群是否宕机;
具体的,在步骤S110之前,Zookeepr软件在第一clickhouse本地集群和第二clickhouse本地集群中确定本地主集群和本地副集群,其方法具体包括:
向第一clickhouse本地集群和第二clickhouse本地集群发送令牌信息并接受对应的回复信号,将先收到的回复信号对应的集群作为本地主集群,另一方集群作为本地副集群。
具体的,对本地主集群、本地副集群和异地clickhouse集群进行周期性的监测,以确保本地主集群、本地副集群和异地clickhouse集群正常运行。
S120、若确定仅本地主集群宕机,本地主集群和本地副集群互换并保存本地副集群宕机节点;若确定仅本地副集群宕机时保存本地副集群对应的宕机节点;
具体的,若仅确定本地主集群宕机,将原本地主集群确定为新的本地副集群,将原本地副集群确定为新的本地主集群;之后保存本地副集群宕机节点,即保存的为原本地主集群的宕机节点。
S130、向本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向异地clickhouse集群发送用户数据用于异地备份;
具体的,如果本地主集群和原本地副集群有一方宕机,将未宕机的一方作为本地主集群,由于一方宕机,指示本地主集群从同步写入更改为本地写入。
S140、判断本地副集群是否恢复存活,在确定本地副集群恢复存活时,根据宕机节点发起数据回滚请求。
具体的,当宕机的本地副集群恢复存活时,根据宕机节点发起数据回滚请求,进行回滚备份,以保持多备份方的一致性。
本申请实施例提供的方法,通过Zookeeper完成本地主集群和本地副集群的同步写入,并监控本地主集群、本地副集群的运行情况,在其中一个发生宕机时保存宕机节点,将同步写入切换为本地主集群单点写入,在其恢复存活时根据其他集群的备份实现数据回滚。能够实现以下技术效果:
通过Zookeeper完成本地主集群和本地副集群的同步写入,实现clickhouse集群的本地双活备份和异地备份;监控本地主集群、本地副集群的运行情况,在其中一个发生宕机时保存宕机节点,将同步写入切换为本地主集群单点写入,在其恢复存活时根据其他集群的备份实现数据回滚。采用本方法实现数据备份的容错率高,能够保证第一clickhouse集群、第二clickhouse集群和异地clickhouse集群备份数据的一致性,减少数据备份的出错率。
图2为本申请实施例提供的一种分布式数据备份方法的流程示意图二;如图2所示,用于上述系统中的Zookeeper软件,该方法包括:
S210、判断本地主集群、本地副集群和异地clickhouse集群是否宕机;若确定本地仅主集群宕机,执行步骤S220~S240,若仅确定本地副集群宕机,执行步骤S230~S240、若确定仅异地clickhouse集群宕机,执行S250。
具体的,根据第一预设周期向本地主集群或本地副集群或异地clickhouse集群发送的心跳信号,若在第二预设周期内未收到本地主集群/本地副集群/异地clickhouse集群发送的回复信号,则确认本地主集群/本地副集群/异地clickhouse集群已宕机;
相应的,若在第二预设周期内收到本地主集群/本地副集群/异地clickhouse集群发送的回复信号,则确定本地主集群/本地副集群/异地clickhouse集群未宕机,即正常运行。
具体的,在本地主集群、本地副集群和异地clickhouse集群均正常运行时,由Zookeeper完成本地主集群和本地副集群对于用户数据的同步写入,在同步写入成功后,本地主集群向异地clickhouse集群发送用户数据和异步写入请求已完成异步备份,异步备份成功后异地clickhouse集群向存储云端发送用户数据和云备份请求已完成云端的数据备份;从而实现本地主集群、本地副集群、异地clickhouse集群和存储云端的数据一致性。
具体的,根据判断结果,若确定仅本地主集群宕机,执行步骤S220~S240,若确定仅本地副集群宕机,执行步骤S230~S240、若确定仅异地clickhouse集群宕机,执行S250。
需要注意的是,这里的“若确定仅本地主集群宕机”具体指只有本地主集群宕机,其他本地副集群宕机和异地clickhouse集群未宕机(即存活);同理,“若确定仅本地副集群宕机”具体指只有本地副集群宕机,其他本地主集群和异地clickhouse集群均未宕机;“若确定仅异地clickhouse集群宕机”具体指只有异地clickhouse集群宕机,其他本地主集群和本地副集群均未宕机。
进一步的,若本地副集群、本地主集群和异地clickhouse集群中同时存在两方集群处于宕机状态,向系统后台发送用于指示系统异常的消息。
S220、将本地主集群和本地副集群互换。
具体的,将原本地主集群确定为新的本地副集群,将原本地副集群确定为新的本地主集群;
示例性的,若原本地主集群为第一clickhouse集群,原本地副集群为第二clickhouse集群;经过步骤S220、新的本地主集群为第二clickhouse集群,新的本地副集群为第一clickhouse集群。
具体的,本地主集群用于接收用户数据,还用于向异地clickhouse集群传输数据用于异地备份,在确定仅本地主集群宕机时,将本地主集群和本地副集群互换,保证主本地主集群一直正常运行,以确保整个系统正常运行,不影响数据的接收和备份。
S230、向本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向异地clickhouse集群发送用户数据用于异地备份。
具体的,若S210中的判断结果为本地仅主集群宕机,则经过本地主集群和本地副集群互换(步骤S220),宕机的一方仍然为本地副集群;
具体来说,由于本地副集群宕机,若接收到用户数据,则不能够实现本地主集群和本地副集群的同步写入。故需要向本地主集群发送第一消息,用于指示本地主集群进行单点存储;
进一步的,作为其响应,本地主集群对接收的用户数据进行单点存储后,仍然向异地clickhouse集群发送用户数据和异步写入请求已完成异步备份,异步备份成功后异地clickhouse集群向存储云端发送用户数据和云备份请求已完成云端的数据备份。
S240、在确定本地副集群恢复存活时,向存储云端发送第一数据回滚请求和本地副集群的宕机节点;其中,第一数据回滚请求用于指示存储云端根据本地副集群的宕机节点对本地副集群进行数据回滚备份。
具体的,确定本地副集群恢复存活的方法与S210中的判断方法相似,在本地副集群宕机之后,根据第三预设周期向本地副集群发送的心跳信号,若在第四预设周期内收到本地副集群发送的回复信号,则确认本地副集群恢复存活。
在一些实施例中,第一预设周期和第三预设周期相同,第二预设周期与第四预设周期相同;即根据S210的第一预设周期、第二预设周期持续进行监测,以确定宕机方是否恢复正常;
在另一些实施例中,第一预设周期和第三预设周期不相同,第二预设周期与第四预设周期不相同;为了收到获取宕机方的回复信号,设置第三预设周期小于第一预设周期;或者设置第四预设周期小于第二预设周期。
具体的,通过上述方法,在确定本地副集群恢复存活时,向存储云端发送第一数据回滚请求和本地副集群的宕机节点;其中,第一数据回滚请求用于指示存储云端根据本地副集群的宕机节点对本地副集群进行数据回滚备份;
进一步的,作为其响应,存储云端根据本地副集群的宕机节点对本地副集群进行数据回滚备份。
S250、保存异地clickhouse集群的宕机节点,在确定异地clickhouse集群恢复存活时,向本地主集群发送第二数据回滚请求和异地clickhouse集群的宕机节点;其中,第二数据回滚请求用于指示本地主集群根据异地clickhouse集群的宕机节点对异地clickhouse集群进行数据回滚备份。
具体的,确定异地clickhouse集群恢复存活的方法与S210中的判断方法相似,在异地clickhouse集群宕机之后,根据第三预设周期向本地副集群发送的心跳信号,若在第四预设周期内收到异地clickhouse集群发送的回复信号,则确认异地clickhouse集群恢复存活。
在一些实施例中,第一预设周期和第三预设周期相同,第二预设周期与第四预设周期相同;即根据S210的第一预设周期、第二预设周期持续进行监测,以确定宕机方是否恢复正常;
在另一些实施例中,第一预设周期和第三预设周期不相同,第二预设周期与第四预设周期不相同;为了收到获取宕机方的回复信号,设置第三预设周期小于第一预设周期;或者设置第四预设周期小于第二预设周期。
在根据上述方法确定异地clickhouse集群恢复存活时,向本地主集群发送第二数据回滚请求和异地clickhouse集群的宕机节点;其中,第二数据回滚请求用于指示本地主集群根据异地clickhouse集群的宕机节点对异地clickhouse集群进行数据回滚备份。
进一步的,作为其响应,本地主集群根据异地clickhouse集群的宕机节点对异地clickhouse集群进行数据回滚备份;异地clickhouse集群在数据回滚备份成功之后,将回滚的数据向存储云端传输进行云备份。
本申请实施例提供方法,Zookeeper完成第一clickhouse集群和第二clickhouse集群的同步写入,通过本地主集群、本地副集群和异地clickhouse集群的运行情况,在仅本地主集群宕机时将本地主集群和本地副集群互换并保存本地副集群的宕机节点;在仅本地副集群宕机时保存本地副集群的宕机节点;指示本地主集群进行单点存储;在本地副集群恢复存活宕机后指示云存储设备对本地副集群进行回滚备份。在仅异地clickhouse集群宕机时保存异地clickhouse集群的宕机节点,在异地clickhouse集群恢复存活宕机后指示本地主集群异地clickhouse集群对进行回滚备份。本实施例方法能够实现以下技术效果:
将本地主集群作为用户数据的接收方和异地备份的发起方,在仅本地主集群宕机时,将本地主集群和本地副集群互换,将同步写入切换为本地主集群单点存储,保证用户数据接收通道和异地备份通道稳定运行,完成系统的异地备份和云备份;同时保存本地副集群的宕机节点,在本地副集群恢复存活后指示本地主集群异地clickhouse集群对进行回滚备份,保证多方数据的一致性。
在仅本地副集群宕机时,将同步写入切换为本地主集群单点存储,保证用户数据接收通道和异地备份通道稳定运行,完成系统的异地备份和云备份;同时保存本地副集群的宕机节点,在本地副集群恢复存活后指示本地主集群异地clickhouse集群对进行回滚备份,保证多方数据的一致性。
在仅异地clickhouse集群宕机时保存异地clickhouse集群的宕机节点,在异地clickhouse集群恢复存活后指示本地主集群对异地clickhouse集群根据宕机节点进行回滚备份,在异地clickhouse集群完成异地备份后向存储云端完发起云备份,保证多方数据的一致性。
本方法通过周期性监控本地主集群、本地副集群和异地clickhouse集群的运行情况,在其中一个发生宕机时保存宕机节点,在其恢复存活时根据其他集群的备份实现数据回滚。采用本方法实现数据备份的容错率高,能够保证第一clickhouse集群、第二clickhouse集群和异地clickhouse集群备份数据的一致性,减少数据备份的出错率。
图3为本申请实施例提供的一种分布式数据备份方法的流程示意图三;用于上述系统中的Zookeeper软件,如图3,该方法包括:
S310、接收本地主集群的用户数据,将用户数据同步写入本地副集群;
进一步的,同步写入本地副集群后,收到来自本地副集群用于指示是否写入成功的消息,若同步写入失败,则执行S320。
对应的,若同步写入成功,向本地主集群发送用于指示同步写入成功的第二消息;其中,第二消息还用于指示本地主集群,向异地clickhouse集群发送用户数据用于异地备份;
具体的,作为其响应,本地主集群向异地clickhouse集群发送用户数据用于异地备份,异地clickhouse集群对用户数据进行存储后,将用户数据发送至存储云端,存储云端对用户数据进行云备份。
具体的,作为其响应,本地主集群还向用户端发送用于指示写入成功的消息。
S320、若同步写入失败,保存本地副集群的宕机节点,向本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向异地clickhouse集群发送用户数据用于异地备份。
具体的,若同步写入失败,则可以判断由于本地副集群宕机或者其他原因导致用户数据不能够在本地副集群备份,则保存本地副集群的宕机节点,将同步写入切换为本地主集群单点存储。
S330、在确定本地副集群恢复存活时,向存储云端发送第一数据回滚请求和本地副集群的宕机节点;其中,第一数据回滚请求用于指示存储云端根据本地副集群的宕机节点对本地副集群进行数据回滚备份。
具体的,本步骤的具体方法及其原理与步骤S240类似,在这里不在赘述。
本申请实施例提供方法,通过Zookeeper完成本地主集群和本地副集群的同步写入,在同步写入失败时将同步写入切换为本地主集群单点写入,同时保存本地副集群的宕机节点,在本地副集群恢复存活宕机后指示云存储设备对本地副集群进行回滚备份。能够实现以下技术效果:
通过Zookeeper完成本地主集群和本地副集群的同步写入,实现clickhouse集群的本地双活备份和异地备份;在同步写入失败时,将同步写入切换为本地主集群单点存储,保证用户数据接收通道和异地备份通道稳定运行,完成系统的异地备份和云备份;同时保存本地副集群的宕机节点,在本地副集群恢复存活后指示本地主集群异地clickhouse集群对进行回滚备份,保证多方数据的一致性。
本发明实施例可以根据上述方法示例对电子设备或主控设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图4为本申请实施例提供的一种分布式数据备份系统的结构示意图;如图4所示,系统400包括:第一clickhouse本地集群410、第二clickhouse本地集群420、异地clickhouse集群430和存储云端450,第一clickhouse本地集群410、和第二clickhouse本地集群420中均部署Zookeepr软件440,Zookeepr软件440在第一clickhouse本地集群410和第二clickhouse本地集群420中确定本地主集群和本地副集群;Zookeepr软件440还分别与异地clickhouse集群430和存储云端450配置连接,异地clickhouse集群430还与分别第一clickhouse本地集群410、第二clickhouse本地集群420和存储云端450配置连接,存储云端用于接收异地clickhouse集群发送的用户数据并进行云备份。其中
Zookeeper软件440,用于执行上述一种分布式数据备份方法;
本地主集群,用于接收用户数据,将用户数据发送至Zookeeper软件用于与本地副集群进行同步写入;
还用于根据异地clickhouse集群430的宕机节点和回滚请求对异地clickhouse集群430进行回滚备份;
本地副集群,用于作为本地主集群的同步备份;还用于向Zookeeper软件440发送本地副集群的宕机节点;
异地clickhouse集群430,用于作为本地主集群的异地备份,还用于将用户数据发送至存储云端用于云备份;还用于向Zookeeper软件440发送异地clickhouse集群430的宕机节点;
存储云端,用于对异地clickhouse集群430发送的用户数据进行云备份;还用于根据本地副集群的宕机节点和回滚请求对本地副集群进行回滚备份。
本实施例提供的一种分布式数据备份系统,其实现原理和技术效果与上述一种分布式数据备份方法类似,本实施例此处不再赘述。
图5为本申请实施例提供的一种分布式数据备份设备的结构示意图;如图5,设备50包括:
判断模块510,用于判断本地主集群、本地副集群和异地clickhouse集群是否宕机;
确定模块520,用于若确定仅本地主集群宕机,将本地主集群和本地副集群互换并保存本地副集群的宕机节点;若确定仅本地副集群宕机时保存本地副集群对应的宕机节点;
发送模块520,用于向本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向异地clickhouse集群发送用户数据用于异地备份;
请求模块530,判断本地副集群是否恢复存活,在确定本地副集群恢复存活时,根据宕机节点发起数据回滚请求。
进一步的,确定模块520,还用于:
接收本地副集群的用户数据,将用户数据同步写入本地副集群;
若同步写入失败,保存本地副集群的宕机节点,向本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向异地clickhouse集群发送用户数据用于异地备份;
进一步的,请求模块530,还用于:
判断本地副集群是否恢复存活,在确定本地副集群恢复存活时,根据宕机节点发起数据回滚请求。
进一步的,判断模块510,还用于:若确定仅异地clickhouse集群宕机,保存异地clickhouse集群对应的宕机节点;
进一步的,请求模块530,具体还用于:
判断异地clickhouse集群是否恢复存活,在确定异地clickhouse集群恢复存活时,根据宕机节点发起数据回滚请求。
进一步的,请求模块530,具体还用于:
本地副集群或异地clickhouse集群宕机后,根据第三预设周期向本地副集群或异地clickhouse集群分别发送各自的心跳信号,若在第四预设周期内收到本地副集群或异地clickhouse集群发送的回复信号,则确认本地副集群或异地clickhouse集群恢复存活。
进一步的,请求模块530,具体还用于:
在确定本地副集群恢复存活时,向存储云端发送第一数据回滚请求和本地副集群的宕机节点;其中,第一数据回滚请求用于指示存储云端根据本地副集群的宕机节点对本地副集群进行数据回滚备份。
进一步的,请求模块530,具体还用于:
在确定异地clickhouse集群恢复存活时,向本地主集群发送第二数据回滚请求和异地clickhouse集群的宕机节点;其中,第二数据回滚请求用于指示本地主集群根据异地clickhouse集群的宕机节点对异地clickhouse集群进行数据回滚备份。
本实施例提供的一种分布式数据备份设备,可执行上述分布式数据备份方法,其实现原理和技术效果类似,本实施例此处不再赘述。
在前述的一种分布式数据备份设备的具体实现中,各模块可以被实现为处理器,处理器可以执行存储器中存储的计算机执行指令,使得处理器执行上述一种分布式数据备份方法。
图6为本申请实施例提供的电子设备的结构示意图。如图6所示,该电子设备60包括:至少一个处理器601和存储器602。该电子设备60还包括通信部件603。其中,处理器601、存储器602以及通信部件603通过总线604连接。
在具体实现过程中,至少一个处理器601执行存储器602存储的计算机执行指令,使得至少一个处理器601执行如上电子设备侧所执行的一种分布式数据备份方法。
处理器601的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述针对电子设备以及主控设备所实现的功能,对本发明实施例提供的方案进行了介绍。可以理解的是,电子设备或主控设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上一种分布式数据备份方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于电子设备或主控设备中。
本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种分布式数据备份方法,其特征在于,用于Zookeeper软件,所述Zookeeper软件部署于第一clickhouse本地集群和第二clickhouse本地集群,在所述第一clickhouse本地集群和所述第二clickhouse本地集群中确定本地主集群和本地副集群;所述Zookeeper软件还与异地clickhouse集群和存储云端配置连接,其中,所述本地主集群用于接收用户数据并通过Zookeeper软件同步写入所述本地副集群;发送所述用户数据至所述异地clickhouse集群进行异地备份;所述存储云端用于接收所述异地clickhouse集群发送的所述用户数据并进行云备份;所述方法包括:
判断所述本地主集群、所述本地副集群和所述异地clickhouse集群是否宕机;
若确定仅所述本地主集群宕机,将所述本地主集群和所述本地副集群互换并保存所述本地副集群的宕机节点;若确定仅所述本地副集群宕机时保存所述本地副集群对应的宕机节点;
向所述本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向所述异地clickhouse集群发送所述用户数据用于异地备份;
判断所述本地副集群是否恢复存活,在确定所述本地副集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述本地主集群的用户数据,将所述用户数据同步写入所述本地副集群;
若所述同步写入失败,保存所述本地副集群的宕机节点,向所述本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向所述异地clickhouse集群发送所述用户数据用于异地备份;
判断所述本地副集群是否恢复存活,在确定所述本地副集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
3.根据权利要求1所述的方法,其特征在于,若确定仅所述异地clickhouse集群宕机,所述方法还包括:
保存所述异地clickhouse集群对应的宕机节点;判断所述异地clickhouse集群是否恢复存活,在确定所述异地clickhouse集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
4.根据权利要求1所述的方法,其特征在于,所述判断所述本地主集群或所述本地副集群或所述异地clickhouse集群是否宕机,包括:
根据第一预设周期向所述本地主集群或所述本地副集群或所述异地clickhouse集群发送的心跳信号,若在第二预设周期内未收到所述本地主集群/所述本地副集群/所述异地clickhouse集群发送的回复信号,则确认所述本地主集群/所述本地副集群/所述异地clickhouse集群已宕机。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述判断所述本地副集群或所述异地clickhouse集群是否恢复存活,包括:
根据第三预设周期向所述本地副集群或所述异地clickhouse集群分别发送各自的心跳信号,若在第四预设周期内收到所述本地副集群或所述异地clickhouse集群发送的回复信号,则确认所述本地副集群或所述异地clickhouse集群恢复存活。
6.根据权利要求1或2所述的方法,其特征在于,所述在确定所述本地副集群恢复存活时,所述根据所述宕机节点发起数据回滚请求,包括:
所述在确定所述本地副集群恢复存活时,向所述存储云端发送第一数据回滚请求和所述本地副集群的所述宕机节点;其中,所述第一数据回滚请求用于指示所述存储云端根据所述本地副集群的所述宕机节点对所述本地副集群进行数据回滚备份。
7.根据权利要求3所述的方法,其特征在于,所述在确定所述异地clickhouse集群恢复存活时,所述根据所述宕机节点发起数据回滚请求,包括:
在确定所述异地clickhouse集群恢复存活时,向所述本地主集群发送第二数据回滚请求和所述异地clickhouse集群的所述宕机节点;其中,所述第二数据回滚请求用于指示所述本地主集群根据所述异地clickhouse集群的所述宕机节点对所述异地clickhouse集群进行数据回滚备份。
8.一种分布式数据备份系统,其特征在于,包括:第一clickhouse本地集群、第二clickhouse本地集群、异地clickhouse集群和存储云端,所述第一clickhouse本地集群和所述第二clickhouse本地集群中均部署Zookeepr软件,所述Zookeepr软件在所述第一clickhouse本地集群和所述第二clickhouse本地集群中确定本地主集群和本地副集群;所述Zookeepr软件还分别与异地clickhouse集群和存储云端配置连接,所述异地clickhouse集群还与分别所述第一clickhouse本地集群、所述第二clickhouse本地集群和存储云端配置连接;其中
所述Zookeeper软件,用于执行如权利要求1~7任一项所述的方法;
所述本地主集群,用于接收用户数据,将所述用户数据发送至所述Zookeeper软件用于与所述本地副集群进行同步写入;
还用于根据所述异地clickhouse集群的所述宕机节点和回滚请求对所述异地clickhouse集群进行回滚备份;
所述本地副集群,用于作为所述本地主集群的同步备份;还用于向所述Zookeeper软件发送所述本地副集群的宕机节点;
所述异地clickhouse集群,用于作为所述本地主集群的异地备份,还用于将所述用户数据发送至所述存储云端用于云备份;还用于向所述Zookeeper软件发送所述异地clickhouse集群的宕机节点;
所述存储云端,用于对所述异地clickhouse集群发送的所述用户数据进行云备份;还用于根据所述本地副集群的所述宕机节点和回滚请求对所述本地副集群进行回滚备份。
9.一种分布式数据备份设备,其特征在于,用于Zookeeper软件,所述Zookeeper软件部署于第一clickhouse本地集群和第二clickhouse本地集群,在所述第一clickhouse本地集群和所述第二clickhouse本地集群中确定本地主集群和本地副集群;所述Zookeeper软件还与异地clickhouse集群和存储云端配置连接,其中,所述本地主集群用于接收用户数据;发送所述用户数据至所述异地clickhouse集群进行异地备份;所述存储云端用于接收所述异地clickhouse集群发送的所述用户数据并进行云备份;包括:
判断模块,用于判断所述本地主集群和所述本地副集群是否宕机;
确定模块,用于若确定仅所述本地主集群宕机,将所述本地主集群和所述本地副集群互换并保存所述本地副集群的宕机节点;若确定仅所述本地副集群宕机时保存所述本地副集群对应的宕机节点;
发送模块,用于向所述本地主集群发送第一消息,第一消息用于指示本地主集群进行本地写入并向所述异地clickhouse集群发送所述用户数据用于异地备份;
请求模块,判断所述本地副集群是否恢复存活,在确定所述本地副集群恢复存活时,根据所述宕机节点发起所述数据回滚请求。
10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311182362.2A CN117215833A (zh) | 2023-09-13 | 2023-09-13 | 分布式数据备份方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311182362.2A CN117215833A (zh) | 2023-09-13 | 2023-09-13 | 分布式数据备份方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117215833A true CN117215833A (zh) | 2023-12-12 |
Family
ID=89045702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311182362.2A Pending CN117215833A (zh) | 2023-09-13 | 2023-09-13 | 分布式数据备份方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215833A (zh) |
-
2023
- 2023-09-13 CN CN202311182362.2A patent/CN117215833A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014634B (zh) | 集群选举处理方法、装置、设备及存储介质 | |
CN110431533B (zh) | 故障恢复的方法、设备和系统 | |
CN102891849B (zh) | 业务数据同步方法、恢复方法及装置和网络设备 | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN110389858B (zh) | 存储设备的故障恢复方法和设备 | |
CN109491609B (zh) | 一种缓存数据处理方法、装置、设备及可读存储介质 | |
CN107038192B (zh) | 数据库容灾方法和装置 | |
CN110121694B (zh) | 一种日志管理方法、服务器和数据库系统 | |
WO2023185802A1 (zh) | 数据处理方法及装置 | |
CN110635941A (zh) | 一种数据库节点集群故障迁移方法与装置 | |
CN112948484A (zh) | 分布式数据库系统和数据灾备演练方法 | |
CN113626252A (zh) | 一种基于集群的城市级容灾方法、装置、电子设备及介质 | |
CN110413686B (zh) | 一种数据写入方法、装置、设备及存储介质 | |
CN111404737A (zh) | 一种容灾处理方法以及相关装置 | |
CN117215833A (zh) | 分布式数据备份方法、系统、设备及存储介质 | |
CN115509806A (zh) | 基于row的实时保护异步远程复制方法、装置、设备 | |
CN113064768B (zh) | 在区块链系统中切换分片节点的方法和装置 | |
CN113535430B (zh) | 应用数据读写分离方法、装置、计算机设备和存储介质 | |
CN113703669A (zh) | 一种缓存分区的管理方法、系统、设备及存储介质 | |
CN111752911A (zh) | 一种基于Flume的数据传输方法、系统、终端及存储介质 | |
CN113157494B (zh) | 区块链系统中数据备份的方法及装置 | |
CN112463669B (zh) | 一种存储仲裁管理方法、系统、终端及存储介质 | |
CN113708960B (zh) | 一种Zookeeper集群的部署方法、装置及设备 | |
CN117827544B (zh) | 热备份系统、方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |