CN116244112A - 一种跨集群云数据库灾备系统及方法 - Google Patents
一种跨集群云数据库灾备系统及方法 Download PDFInfo
- Publication number
- CN116244112A CN116244112A CN202211656549.7A CN202211656549A CN116244112A CN 116244112 A CN116244112 A CN 116244112A CN 202211656549 A CN202211656549 A CN 202211656549A CN 116244112 A CN116244112 A CN 116244112A
- Authority
- CN
- China
- Prior art keywords
- database
- cluster
- database instance
- configuration information
- 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.)
- Pending
Links
Images
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A10/00—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
- Y02A10/40—Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种跨集群云数据库灾备系统及方法,其方法包括:根据第一参数配置信息生成第一数据库实例调用请求;根据第一数据库实例调用请求投放第一数据库实例;接收基于第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据第二参数配置信息生成第二数据库实例调用请求;根据第二数据库实例调用请求投放第二数据库实例;其中,第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。本发明通过云数据库的REST端口以及K8S将本地数据库实例配置到异地数据库实现异地灾备,从而解决异地数据库需人工发放以及数据库数据实时同步的问题。
Description
技术领域
本发明涉及云数据库技术领域,具体涉及一种跨集群云数据库灾备系统及方法。
背景技术
随着信息技术的发展,将数据同步和安全为第一要素的企业都把异地容灾放在了首要位置,而且企业生活生产中最宝贵的是数据,只有历史数据的价值发掘才能推动企业对OA、CRM系统的进步,才能在沉积多年后发挥其巨大的实用价值。
而随着云原生技术的发展,越来越多的业务系统选择使用云数据库作为数据仓库支撑运行,许多业务系统对数据安全提出了新的要求,构建一个业务连续性灾备系统以确保业务系统的运行安全成为云数据库的一个研究重点。
在此基础之上,需要一种方法,能够针对云数据库实现跨集群实现数据库热备,使备用数据库保持为与生产数据库在事务上一致的副本。这些备用数据库按照企业投入成本意愿,可以设定在异地,当生产数据库由于计划中断或意外中断而变得不可用时,可以将任意备用数据库切换到生产角色,从而使与中断相关的停机时间减到最少,并防止任何数据丢失。
发明内容
有鉴于此,有必要提供一种跨集群云数据库灾备系统及方法,能够针对云数据库实现跨集群的数据库热备,从而可以按照企业投入成本意愿,将备用数据库设定在异地且实现数据的实时同步。
为了实现上述目的,一方面,本发明提供了一种跨集群云数据库灾备系统,包括:
本地集群管理模块和异地集群管理模块,所述本地集群管理模块包括第一REST接口及第一K8S集群处理模块,所述异地集群管理模块包括第二REST接口及第二K8S集群处理模块;所述第一REST接口与所述第二REST接口的API接口相同;
所述第一REST接口用于根据第一参数配置信息生成第一数据库实例调用请求并发送给所述第一K8S集群处理模块;
所述第一K8S集群处理模块用于根据所述第一数据库实例调用请求投放第一数据库实例;
所述第一REST接口还用于将所述第一数据库实例和第一参数配置信息发送给所述第二REST接口;
所述第二REST接口用于接收基于所述第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据所述第二参数配置信息生成第二数据库实例调用请求并发送给所述第一K8S集群处理模块;
所述第二K8S集群处理模块用于根据所述第二数据库实例调用请求投放第二数据库实例;
其中,所述第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,所述目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。
在可能的一些实施例中,所述本地集群管理模块还包括第一前端配置模块;
所述第一前端配置模块用于获取本地集群的前端页面输入的配置参数后生成所述第一参数配置信息。
在可能的一些实施例中,所述本地集群管理模块还包括第二前端配置模块;
所述第二前端配置模块用于将与所述第一参数配置信息相同的参数信息及目标数据库配置参数信息进行合并生成所述第二参数配置信息。
在可能的一些实施例中,所述第一K8S集群处理模块包括第一数据库实例创建模块和第一同步模块;
所述第一数据库实例创建模块用于根据所述第一数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第一数据库实例;
所述第一同步模块用于根据所述第一数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第一实时同步工具。
在可能的一些实施例中,所述第二K8S集群处理模块包括第二数据库实例创建模块和第二同步模块;
所述第二数据库实例创建模块用于根据所述第二数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第二数据库实例;
所述第二同步模块用于根据所述第二数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第二实时同步工具。
在可能的一些实施例中,所述第一实时同步工具用于在所述第一数据库实例被创建后,生成所述与第一参数配置信息相同的参数信息,并发送灾备指令给所述第一REST接口;
其中,所述灾备指令包括所述与第一参数配置信息相同的参数信息。
在可能的一些实施例中,所述异地集群管理模块还包括MQ消息生成模块;
所述MQ消息生成模块用于在第二数据库实例被创建后,生成MQ消息,所述MQ消息包括灾备成功消息;
所述第二实时同步工具用于将所述MQ消息传输给所述本地集群的RabbitMQ中;
所述第一实时同步工具用于基于存储在RabbitMQ中的所述MQ消息启动数据同步功能。
在可能的一些实施例中,所述异地集群管理模块还包括数据对比模块;
所述数据对比模块用于在所述本地集群与异地集群建立同步功能后,实时对同步的数据进行比对,并生成比对报告。
在可能的一些实施例中,所述第一参数配置信息包括集群选择项、可用区、数据库规格、数据库类型、数据库版本以及初始化参数信息。
第二方面,本发明还提供了一种跨集群云数据库灾备方法,基于上述的跨集群云数据库灾备系统,其方法包括:
基于所述第一REST接口根据第一参数配置信息生成第一数据库实例调用请求并发送给所述第一K8S集群处理模块;
基于所述第一K8S集群处理模块根据所述第一数据库实例调用请求投放第一数据库实例;
基于所述第一REST接口将所述第一数据库实例和第一参数配置信息发送给所述第二REST接口;
基于所述第二REST接口接收基于所述第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据所述第二参数配置信息生成第二数据库实例调用请求并发送给所述第一K8S集群处理模块;
基于所述第二K8S集群处理模块根据所述第二数据库实例调用请求投放第二数据库实例;
其中,所述第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,所述目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。
采用上述实施例的有益效果是:本发明提供的一种跨集群云数据库灾备系统及方法,其通过云数据库的REST端口以及K8S将本地数据库实例配置到异地数据库实现异地灾备,从而解决异地数据库需人工发放以及数据库数据实时同步的问题,从而能够按照企业投入成本意愿,将备用数据库设定在异地且实现数据的实时同步。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的跨集群云数据库灾备系统一实施例的结构示意图;
图2为本发明提供的跨集群云数据库灾备系统另一实施例的结构示意图;
图3为本发明提供的第一参数配置信息进行配置一实施例的结构示意图;
图4为本发明提供的跨集群云数据库灾备方法一实施例的流程示意图;
图5为本发明提供的跨集群云数据库灾备方法另一实施例的流程示意图;
图6为本发明提供的电子设备一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,示意性的附图并未按实物比例绘制。本发明中使用的流程图示出了根据本发明的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本发明内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器系统和/或微控制器系统中实现这些功能实体。
本发明实施例中所涉及到的“第一”、“第二”等描述仅用于描述目的,而不能理解为指示或者暗示其相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的技术特征可以明示或者隐含的包括至少一个该特征。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明提供了一种跨集群云数据库灾备系统及方法,以下分别进行说明。
在展示实施例前,先对相关名词进行介绍。
JSON:(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
REST:即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
云数据库:云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
Kubernetes:Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
K8S:Kubernetes的缩写简称。
StatefulSet:StatefulSet本质上是Deployment的一种变体,在v1.9版本中已成为GA版本,它为了解决有状态服务的问题,它所管理的Pod拥有固定的Pod名称,启停顺序,在StatefulSet中,Pod名字称为网络标识(hostname),还必须要用到共享存储。
Pod:Pod是k8s系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在k8s上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展Pod对象功能的,比如控制器对象是用来管控Pod对象的,Service或者Ingress资源对象是用来暴露Pod引用对象的,PersistentVolume资源对象是用来为Pod提供存储等等,k8s不会直接处理容器,而是Pod,Pod是由一个或多个container组成。
针对于背景技术所提及的技术问题,本发明提供一种跨集群云数据库灾备系统及方法,能,现具体说明如下。
请参阅图1,图1为本发明提供的跨集群云数据库灾备系统一实施例的结构示意图,该系统包括:本地集群管理模块10和异地集群管理模块20,所述本地集群管理模块包括第一REST接口101及第一K8S集群处理模块102,所述异地集群管理模块20包括第二REST接口201及第二K8S集群处理模块202;所述第一REST接口101与所述第二REST接口201的API接口相同;
所述第一REST接口101用于根据第一参数配置信息生成第一数据库实例调用请求并发送给所述第一K8S集群处理模块102;
所述第一K8S集群处理模块102用于根据所述第一数据库实例调用请求投放第一数据库实例;
所述第一REST接口101还用于将所述第一数据库实例和第一参数配置信息发送给所述第二REST接口201;
所述第二REST接口201用于接收基于所述第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据所述第二参数配置信息生成第二数据库实例调用请求并发送给所述第一K8S集群处理模块202;
所述第二K8S集群处理模块202用于根据所述第二数据库实例调用请求投放第二数据库实例;
其中,所述第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,所述目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。
需要说明的是,本地集群管理模块10可以是云数据库本地集群A内置的管理模块,也可以是外设的管理模块,其用于对本地集群A的云数据库进行管理和调度;同样的,异地集群管理模块20可以是云数据库异地集群B内置的管理模块,也可以是外设的管理模块,其用于对异地集群B的云数据库进行管理和调度。
可以理解的是,本地集群管理模块10与异地集群管理模块20在功能上设定基本相同,且接口保持一致;一般而言,在本地集群A对应的本地集群管理模块10中配置异地集群B对应的异地集群管理模块20的接口地址,来保持接口一致。
进一步的说明的是,为了保持云数据库在投放后保持本地和异地的同步,关键在于如何构建关联关系,基于此,本发明通过在第二参数配置信息加入了用于指定第一数据库实例为第二数据库实例的目标库的参数信息,从而在异地集群进行数据同步时能够根据第一数据库实例和第二数据库实例的映射关系来实现。
与现有技术相比,本发明提供的一种跨集群云数据库灾备系统通过云数据库的REST端口以及K8S将本地数据库实例配置到异地数据库实现异地灾备,从而解决异地数据库需人工发放以及数据库数据实时同步的问题,从而能够按照企业投入成本意愿,将备用数据库设定在异地且实现数据的实时同步。
为了更好的进行异地集群与本地集群的云数据库的数据同步,本发明实施例还提供了进一步改进的方案,请查阅图2,图1为本发明提供的跨集群云数据库灾备系统一实施例的结构示意图。
在本发明的一些实施例中,相比于图1的功能模块,所述本地集群管理模块10还包括第一前端配置模块103;
所述第一前端配置模块103用于获取本地集群的前端页面输入的配置参数后生成所述第一参数配置信息。
在具体的实施例中,所述第一参数配置信息包括集群选择项、可用区、数据库规格、数据库类型、数据库版本以及初始化参数信息。
一般而言,上述第一参数配置信息可以由用户在前端页面上进行输入,如以发放DM8数据库为例,仅需在页面中配置数据库的各种参数即可交由后端REST接口完成发放,其中具体的配置方案请查阅图3,图3为本发明提供的第一参数配置信息进行配置一实施例的结构示意图。
在图3中可见,所属集群选择集群A,数据库引擎选择DM8容器版,服务类型选择单机,存储类型为SSD云盘等等,那么通过选择不同集群和不同的云数据库后,基于配置参数来建立本地集群中所选择的云数据库与异地集群对应的云数据库实现数据的实时同步。
在本发明的一些实施例中,所述本地集群管理模块20还包括第二前端配置模块203;
所述第二前端配置模块203用于将与所述第一参数配置信息相同的参数信息及目标数据库配置参数信息进行合并生成所述第二参数配置信息。
需要说明的是,所述第一参数配置信息相同的参数信息为输入的参数配置指令与第一参数配置信息保持一致,如将数据库引擎均选择DM8容器版等;第二参数配置信息是在第一参数配置信息的基础上增加用于指定第一数据库实例为第二数据库实例的目标库的参数配置信息,以实现云数据库从源库到目标库的关联同步。
在本发明的一些实施例中,所述第一K8S集群处理模块102包括第一数据库实例创建模块1021和第一同步模块1022;
所述第一数据库实例创建模块1021用于根据所述第一数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第一数据库实例;
所述第一同步模块1022用于根据所述第一数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第一实时同步工具。
需要说明的是,本发明实施例基于后端程序API调用K8S API,从而基于kubernetes集群中的Statefulset,且利用pod进行第一数据库实例(即本地云数据库,如DM8容器版)和第一实时同步工具。
进一步的,第一实时同步工具采用的是实时同步软件(DMHS),支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术,不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影响,能以极少的系统开销实现秒级数据实时同步复制。此工具包含两个模块,采集模块和执行模块。
采集模块作用是对数据库实例A的增量数据进行抽取,对数据库实例A增量日志进行捕获并完成解析,结合数据字典信息提取其中数据的变化如插入(INSERT)、删除(DELETE)、修改(UPDATE)和对象操作(DDL),然后将这些操作及数据转换为内部的消息格式投递给网络(NET)模块。
在本发明的一些实施例中,所述第二K8S集群处理模块202包括第二数据库实例创建模块2021和第二同步模块2022;
所述第二数据库实例创建模块2021用于根据所述第二数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第二数据库实例(即异地集群的云数据库实例);
所述第二同步模块2022用于根据所述第二数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第二实时同步工具。
需要说明的是,第一实时同步工具与第二实时同步工具相互之间可以实时同步数据。
在本发明的一些实施例中,所述第一实时同步工具用于在所述第一数据库实例被创建后,生成所述与第一参数配置信息相同的参数信息,并发送灾备指令给所述第一REST接口;
其中,所述灾备指令包括所述与第一参数配置信息相同的参数信息。
可以理解的是,为了实现同步,第一实时同步工具需要事先生成与第一参数配置信息相同的参数信息,并依次通过第一REST接口101、第二REST接口201以及第二数据库实例创建模块2021来实现第二数据库实例的投放。从而实现第一数据库实例与第二数据库实例的关联同步。
为了将第二数据库实例已经投放成功的信息反馈给本地集群,在本发明的一些实施例中,所述异地集群管理模块20还包括MQ消息生成模块204;
所述MQ消息生成模块204用于在第二数据库实例被创建后,生成MQ消息,所述MQ消息包括灾备成功消息;
所述第二实时同步工具用于将所述MQ消息传输给所述本地集群的RabbitMQ中;
所述第一实时同步工具用于基于存储在RabbitMQ中的所述MQ消息启动数据同步功能。
经过上述处理,异地集群B的第二数据库实例可以跟本地集群A的第一数据库实例保持实时同步,实现异地灾备。
在本发明的一些实施例中,所述异地集群管理模块还包括数据对比模块205;所述数据对比模块205用于在所述本地集群与异地集群建立同步功能后,实时对同步的数据进行比对,并生成比对报告。
可以理解的是,数据比对模块205进行第一数据库实例和第二数据库实例的数据比对,确保两边数据完全一致,通过在线方式让客户直观看到数据同步的有效性。
为了更好实施本发明实施例中的跨集群云数据库灾备系统,在跨集群云数据库灾备系统基础之上,对应的,如图4所示,本发明实施例还提供了一种跨集群云数据库灾备方法,该方法包括:
步骤S401、基于所述第一REST接口根据第一参数配置信息生成第一数据库实例调用请求并发送给所述第一K8S集群处理模块;
步骤S402、基于所述第一K8S集群处理模块根据所述第一数据库实例调用请求投放第一数据库实例;
步骤S403、基于所述第一REST接口将所述第一数据库实例和第一参数配置信息发送给所述第二REST接口;
步骤S404、基于所述第二REST接口接收基于所述第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据所述第二参数配置信息生成第二数据库实例调用请求并发送给所述第一K8S集群处理模块;
步骤S405、基于所述第二K8S集群处理模块根据所述第二数据库实例调用请求投放第二数据库实例;
其中,所述第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,所述目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。
为了进一步的阐述本发明实施例提供的跨集群云数据库灾备方法,请查阅图5,图5为本发明提供的跨集群云数据库灾备方法另一实施例的流程示意图。
在具体的实施例中,该方法一般包括如下步骤:
为了构建跨集群的异地容灾云数据库,首先在集群A中进行数据库发放,正常发放数据库实例A并且镜像中带有数据库实时同步工具;同时集群A部署的云数据库系统的后端REST接口会在发放数据库之后,继续调用异地集群B的数据库发放REST接口,发放数据库实例B并在数据库镜像中启动数据实时同步工具并开启执行模块;待数据库实例B发放完成异地集群B推送消息至集群A的RabbitMQ中,集群A的数据库发放REST接口监听MQ消息后得知集群B数据库已经正常发放后进行操作,数据库实例A配置实例同步的信息,启动数据实时同步工具并开启采集模块。至此,异地集群B的数据库实例B可以跟集群A的数据库实例A保持实时同步,实现异地灾备。同时数据比对工具进行数据库实例A和数据库实例B的数据比对,确保两边数据完全一致,通过在线方式让客户直观看到数据同步的有效性。
其中,在具体的数据库实例投放方案中:云数据库后端接收参数后在集群A中正常发放一个数据库实例A,POD中包含数据库和实时同步工具;同时调用集群B的数据库发放的REST接口,参数为如上实例的参数加上"isDest":true(此参数用于指定数据库为数据实时同步工具的目标库),集群B云数据库后端接收参数后在集群B中正常发放一个数据库实例db-instance-B,POD中包含数据库和实时同步工具,同时根据isDest参数执行启动实时同步工具的逻辑,启动执行模块;集群B发放结束后发送通知至集群A的云数据后端,将数据库实例B的数据库端口,实时同步工具等消息传递至集群A;集群A将数据库实例B的相关配置信息写入实时同步工具的配置文件中,然后启动实时同步工具并启动采集模块。至此,集群A的数据库db-instance-A和集群B的数据库db-instance-B发放完毕,同时实时同步工具的源库和目标库的配置完成并启动,利用实时同步工具保持两个数据库的数据实时同步,实现异地容灾。
如图6所示,本发明还相应提供了一种电子设备600。该电子设备600包括处理器601、存储器602及显示器603。图6仅示出了电子设备600的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器602在一些实施例中可以是电子设备600的内部存储单元,例如电子设备600的硬盘或内存。存储器602在另一些实施例中也可以是电子设备600的外部存储设备,例如电子设备600上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,存储器602还可既包括电子设备600的内部储存单元也包括外部存储设备。存储器602用于存储安装电子设备600的应用软件及各类数据。
处理器601在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器602中存储的程序代码或处理数据,例如本发明中的跨集群云数据库灾备系统。
显示器603在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器603用于显示在电子设备600的信息以及用于显示可视化的用户界面。电子设备600的部件601-603通过系统总线相互通信。
在本发明的一些实施例中,当处理器601执行存储器602中的计算机程序时,可实现以下步骤:
基于所述第一REST接口根据第一参数配置信息生成第一数据库实例调用请求并发送给所述第一K8S集群处理模块;
基于所述第一K8S集群处理模块根据所述第一数据库实例调用请求投放第一数据库实例;
基于所述第一REST接口将所述第一数据库实例和第一参数配置信息发送给所述第二REST接口;
基于所述第二REST接口接收基于所述第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据所述第二参数配置信息生成第二数据库实例调用请求并发送给所述第一K8S集群处理模块;
基于所述第二K8S集群处理模块根据所述第二数据库实例调用请求投放第二数据库实例;
其中,所述第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,所述目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。
应当理解的是:处理器601在执行存储器602中的计算机程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面相应方法实施例的描述。
进一步地,本发明实施例对提及的电子设备600的类型不做具体限定,电子设备600可以为手机、平板电脑、个人数字助理(personal digital assistant,PDA)、可穿戴设备、膝上型计算机(laptop)等便携式电子设备。便携式电子设备的示例性实施例包括但不限于搭载IOS、android、microsoft或者其他操作系统的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本发明其他一些实施例中,电子设备600也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。
相应地,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机可读取的程序或指令,程序或指令被处理器执行时,能够实现上述各方法实施例提供的跨集群云数据库灾备系统步骤或功能。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件(如处理器,控制器等)来完成,计算机程序可存储于计算机可读存储介质中。其中,计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
综上,本发明提供的一种跨集群云数据库灾备系统及方法,其通过云数据库的REST端口以及K8S将本地数据库实例配置到异地数据库实现异地灾备,从而解决异地数据库需人工发放以及数据库数据实时同步的问题,从而能够按照企业投入成本意愿,将备用数据库设定在异地且实现数据的实时同步。
以上对本发明所提供的跨集群云数据库灾备系统及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种跨集群云数据库灾备系统,其特征在于,包括:本地集群管理模块和异地集群管理模块,所述本地集群管理模块包括第一REST接口及第一K8S集群处理模块,所述异地集群管理模块包括第二REST接口及第二K8S集群处理模块;所述第一REST接口与所述第二REST接口的API接口相同;
所述第一REST接口用于根据第一参数配置信息生成第一数据库实例调用请求并发送给所述第一K8S集群处理模块;
所述第一K8S集群处理模块用于根据所述第一数据库实例调用请求投放第一数据库实例;
所述第一REST接口还用于将所述第一数据库实例和第一参数配置信息发送给所述第二REST接口;
所述第二REST接口用于接收基于所述第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据所述第二参数配置信息生成第二数据库实例调用请求并发送给所述第一K8S集群处理模块;
所述第二K8S集群处理模块用于根据所述第二数据库实例调用请求投放第二数据库实例;
其中,所述第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,所述目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。
2.根据权利要求1所述的跨集群云数据库灾备系统,其特征在于,所述本地集群管理模块还包括第一前端配置模块;
所述第一前端配置模块用于获取本地集群的前端页面输入的配置参数后生成所述第一参数配置信息。
3.根据权利要求2所述的跨集群云数据库灾备系统,其特征在于,所述本地集群管理模块还包括第二前端配置模块;
所述第二前端配置模块用于将与所述第一参数配置信息相同的参数信息及目标数据库配置参数信息进行合并生成所述第二参数配置信息。
4.根据权利要求3所述的跨集群云数据库灾备系统,其特征在于,所述第一K8S集群处理模块包括第一数据库实例创建模块和第一同步模块;
所述第一数据库实例创建模块用于根据所述第一数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第一数据库实例;
所述第一同步模块用于根据所述第一数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第一实时同步工具。
5.根据权利要求4所述的跨集群云数据库灾备系统,其特征在于,所述第二K8S集群处理模块包括第二数据库实例创建模块和第二同步模块;
所述第二数据库实例创建模块用于根据所述第二数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第二数据库实例;
所述第二同步模块用于根据所述第二数据库实例调用请求在kubernetes集群中创建Statefulset,并基于pod创建所述第二实时同步工具。
6.根据权利要求4所述的跨集群云数据库灾备系统,其特征在于,所述第一实时同步工具用于在所述第一数据库实例被创建后,生成所述与第一参数配置信息相同的参数信息,并发送灾备指令给所述第一REST接口;
其中,所述灾备指令包括所述与第一参数配置信息相同的参数信息。
7.根据权利要求5所述的跨集群云数据库灾备系统,其特征在于,所述异地集群管理模块还包括MQ消息生成模块;
所述MQ消息生成模块用于在第二数据库实例被创建后,生成MQ消息,所述MQ消息包括灾备成功消息;
所述第二实时同步工具用于将所述MQ消息传输给所述本地集群的RabbitMQ中;
所述第一实时同步工具用于基于存储在RabbitMQ中的所述MQ消息启动数据同步功能。
8.根据权利要求7所述的跨集群云数据库灾备系统,其特征在于,所述异地集群管理模块还包括数据对比模块;
所述数据对比模块用于在所述本地集群与异地集群建立同步功能后,实时对同步的数据进行比对,并生成比对报告。
9.根据权利要求1所述的跨集群云数据库灾备系统,其特征在于,所述第一参数配置信息包括集群选择项、可用区、数据库规格、数据库类型、数据库版本以及初始化参数信息。
10.一种跨集群云数据库灾备方法,基于如权利要求1-9任一项所述的跨集群云数据库灾备系统,其特征在于,包括:
基于所述第一REST接口根据第一参数配置信息生成第一数据库实例调用请求并发送给所述第一K8S集群处理模块;
基于所述第一K8S集群处理模块根据所述第一数据库实例调用请求投放第一数据库实例;
基于所述第一REST接口将所述第一数据库实例和第一参数配置信息发送给所述第二REST接口;
基于所述第二REST接口接收基于所述第一数据库实例和第一参数配置信息生成的第二参数配置信息,并根据所述第二参数配置信息生成第二数据库实例调用请求并发送给所述第一K8S集群处理模块;
基于所述第二K8S集群处理模块根据所述第二数据库实例调用请求投放第二数据库实例;
其中,所述第二参数配置信息包括与第一参数配置信息和目标数据库配置参数信息,所述目标数据库配置参数信息用于指定第一数据库实例为第二数据库实例的目标库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211656549.7A CN116244112A (zh) | 2022-12-22 | 2022-12-22 | 一种跨集群云数据库灾备系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211656549.7A CN116244112A (zh) | 2022-12-22 | 2022-12-22 | 一种跨集群云数据库灾备系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116244112A true CN116244112A (zh) | 2023-06-09 |
Family
ID=86632103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211656549.7A Pending CN116244112A (zh) | 2022-12-22 | 2022-12-22 | 一种跨集群云数据库灾备系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116244112A (zh) |
-
2022
- 2022-12-22 CN CN202211656549.7A patent/CN116244112A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220091834A1 (en) | Method, apparatus, electronic device and readable storage medium for deploying application | |
EP3688600B1 (en) | Database with nvdimm as persistent storage | |
CN108513657B (zh) | 数据转换方法及备份服务器 | |
CN112104723B (zh) | 一种多集群的数据处理系统及方法 | |
US9143394B2 (en) | System and method for graph based K-redundant resiliency for IT cloud | |
US9747291B1 (en) | Non-disruptive upgrade configuration translator | |
CN110795503A (zh) | 分布式存储系统的多集群数据同步方法及相关装置 | |
CN105283847A (zh) | 本地存储数据版本控制 | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN108108119B (zh) | 一种可扩展的存储集群事物的配置方法及装置 | |
CN111324667B (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
US11321350B2 (en) | Managing identifiers for multinodal master systems of unknown or changing size | |
US20210311914A1 (en) | Transaction processing method and device, electronic device and readable storage medium | |
EP3859529B1 (en) | Backup management method and system, electronic device and medium | |
JP2023518136A (ja) | ファイル処理方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN111767169A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116244112A (zh) | 一种跨集群云数据库灾备系统及方法 | |
US10089198B1 (en) | Data storage system with active-standby system management | |
CN113312128B (zh) | 一种融合微服务与idv架构的桌面云系统 | |
CN115469807A (zh) | 磁盘功能配置方法、装置、设备及存储介质 | |
US10776134B2 (en) | Management of application properties | |
US11042665B2 (en) | Data connectors in large scale processing clusters | |
CN114490540A (zh) | 数据存储方法、介质、装置和计算设备 | |
CN113761075A (zh) | 切换数据库的方法、装置、设备和计算机可读介质 | |
Tomsic et al. | Scaling geo-replicated databases to the MEC environment |
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 |