CN113360319B - 一种数据备份方法和装置 - Google Patents
一种数据备份方法和装置 Download PDFInfo
- Publication number
- CN113360319B CN113360319B CN202110527932.1A CN202110527932A CN113360319B CN 113360319 B CN113360319 B CN 113360319B CN 202110527932 A CN202110527932 A CN 202110527932A CN 113360319 B CN113360319 B CN 113360319B
- Authority
- CN
- China
- Prior art keywords
- data
- message queue
- backup
- format
- distributed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008859 change Effects 0.000 claims abstract description 51
- 238000006243 chemical reaction Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 15
- 230000005856 abnormality Effects 0.000 claims description 12
- 239000012634 fragment Substances 0.000 claims description 5
- 230000006870 function Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000009530 blood pressure measurement Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
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/1458—Management of the backup or restore process
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据备份方法和装置,方法包括:从数据库读取以第一格式记录的数据更新变更,并将数据更新变更解析为第二格式;通过消息队列客户端将第二格式的数据更新变更发送到与消息队列客户端相对应的第一消息队列;由第一消息队列将第二格式的数据更新变更推送给订阅第一消息队列的分布式备份端;在分布式备份端对第二格式的数据更新变更执行订阅转换以生成备份文件;响应于接收到还原指令而在分布式备份端基于备份文件来还原数据文件。本发明能够实时监控数据库的备份还原,提升数据库的应对性能。
Description
技术领域
本发明涉及数据安全领域,更具体地,特别是指一种数据备份方法和 装置。
背景技术
数据对应应用系统来说是非常中的,为了确保数据的安全,需要对数 据库的数据进行备份。MySQL数据库也提供了多种方式的数据备份,每种 备份存在一定的缺陷,需要从主服务器备份到对应的从服务器上,对主服 务的压力是很大的,对主服务器的性能影响很大。现有技术有的通过数据 文件进行备份,这种方式对于InnoDB类型的表备份不起作用;有的使用副 本进行备份,这种方式如果副本出现问题将对备份有影响。另外,对于备 份过程出现的备份异常,上述方法均不能及时了解,导致备份数据出现问 题。
针对现有技术中无法监控和及时处理备份和还原过程的问题,目前尚 无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种数据备份方法和装置, 能够实时监控数据库的备份还原,提升数据库的应对性能。
基于上述目的,本发明实施例的第一方面提供了一种数据备份方法, 包括周期性地执行以下步骤:
从数据库读取以第一格式记录的数据更新变更,并将数据更新变更解 析为第二格式;
通过消息队列客户端将第二格式的数据更新变更发送到与消息队列客 户端相对应的第一消息队列;
由第一消息队列将第二格式的数据更新变更推送给订阅第一消息队列 的分布式备份端;
在分布式备份端对第二格式的数据更新变更执行订阅转换以生成备份 文件;
响应于接收到还原指令而在分布式备份端基于备份文件来还原数据文 件。
在一些实施方式中,从数据库读取以第一格式记录的数据更新变更包 括:
使数据库启用操作日志记录功能,并为操作日志记录功能确定数据日 志位置;
由操作日志记录功能基于数据库中的数据更新而生成数据日志,并基 于数据日志向数据日志位置写入数据更新变更;
访问数据日志位置以获取以第一格式记录的数据更新变更。
在一些实施方式中,第一格式为记录数据日志使用的二进制格式;第 二格式为JSON格式。
在一些实施方式中,通过消息队列客户端将第二格式的数据更新变更 发送到第一消息队列包括:
由消息队列客户端基于第一消息队列的最大消息长度将第二格式的数 据更新变更划分为多个分片;
将多个分片按顺序依次发送到第一消息队列。
在一些实施方式中,由第一消息队列将第二格式的数据更新变更推送 给订阅第一消息队列的分布式备份端包括:
在第一消息队列上创建第一主题并为第一主题设置唯一队列;
在第一主题的唯一队列上将多个分片按顺序依次发送到分布式备份端。
在一些实施方式中,分布式备份端配置为订阅多个不同的第一消息队 列,并且生成多个不同的备份文件,其中多个不同的第一消息队列分别一 一对应于多个不同的消息队列客户端。
在一些实施方式中,方法还包括以下步骤:
响应于分布式备份端在生成备份文件和还原数据文件的过程中检测到 出现异常,而将与异常相关的数据信息发送到第二消息队列;
由第二消息队列将与异常相关的数据信息推送给订阅第二消息队列的 预警系统;
在预警系统基于与异常相关的数据信息发出告警。
在一些实施方式中,由第二消息队列将与异常相关的数据信息推送给 订阅第二消息队列的预警系统包括:
在第二消息队列上创建第二主题并为第二主题设置一个或多个队列;
在第二主题的一个或多个队列上将与异常相关的数据信息发送到管理 人员的终端设备。
在一些实施方式中,在分布式备份端基于备份文件来还原数据文件包 括:基于备份文件执行生成备份文件的逆过程。
本发明实施例的第二方面提供了一种装置,包括:
处理器;
控制器,存储有处理器可运行的程序代码,处理器在运行程序代码时 周期性地执行以下步骤:
从数据库读取以第一格式记录的数据更新变更,并将数据更新变 更解析为第二格式;
通过消息队列客户端将第二格式的数据更新变更发送到与消息队 列客户端相对应的第一消息队列;
由第一消息队列将第二格式的数据更新变更推送给订阅第一消息 队列的分布式备份端;
在分布式备份端对第二格式的数据更新变更执行订阅转换以生成 备份文件;
响应于接收到还原指令而在分布式备份端基于备份文件来还原数 据文件。
本发明具有以下有益技术效果:本发明实施例提供的数据备份方法和 装置,通过从数据库读取以第一格式记录的数据更新变更,并将数据更新 变更解析为第二格式;通过消息队列客户端将第二格式的数据更新变更发 送到与消息队列客户端相对应的第一消息队列;由第一消息队列将第二格 式的数据更新变更推送给订阅第一消息队列的分布式备份端;在分布式备 份端对第二格式的数据更新变更执行订阅转换以生成备份文件;响应于接 收到还原指令而在分布式备份端基于备份文件来还原数据文件的技术方案, 能够实时监控数据库的备份还原,提升数据库的应对性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员 来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。
图1为本发明提供的数据备份方法的流程示意图;
图2为本发明提供的数据备份方法的模块结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实 施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为 了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅 为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不 再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种实时监控数 据库的备份还原,提升数据库的应对性能的数据备份方法的一个实施例。 图1示出的是本发明提供的数据备份方法的流程示意图。
所述的数据备份方法,如图1所示,包括执行以下步骤:
步骤S101,从数据库读取以第一格式记录的数据更新变更,并将数据 更新变更解析为第二格式;
步骤S103,通过消息队列客户端将第二格式的数据更新变更发送到与 消息队列客户端相对应的第一消息队列;
步骤S105,由第一消息队列将第二格式的数据更新变更推送给订阅第 一消息队列的分布式备份端;
步骤S107,在分布式备份端对第二格式的数据更新变更执行订阅转换 以生成备份文件;
步骤S109,响应于接收到还原指令而在分布式备份端基于备份文件来 还原数据文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流 程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一 计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施 例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM) 或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应 的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,从数据库读取以第一格式记录的数据更新变更包 括:
使数据库启用操作日志记录功能,并为操作日志记录功能确定数据日 志位置;
由操作日志记录功能基于数据库中的数据更新而生成数据日志,并基 于数据日志向数据日志位置写入数据更新变更;
访问数据日志位置以获取以第一格式记录的数据更新变更。
在一些实施方式中,第一格式为记录数据日志使用的二进制格式;第 二格式为JSON格式。
在一些实施方式中,通过消息队列客户端将第二格式的数据更新变更 发送到第一消息队列包括:
由消息队列客户端基于第一消息队列的最大消息长度将第二格式的数 据更新变更划分为多个分片;
将多个分片按顺序依次发送到第一消息队列。
在一些实施方式中,由第一消息队列将第二格式的数据更新变更推送 给订阅第一消息队列的分布式备份端包括:
在第一消息队列上创建第一主题并为第一主题设置唯一队列;
在第一主题的唯一队列上将多个分片按顺序依次发送到分布式备份端。
在一些实施方式中,分布式备份端配置为订阅多个不同的第一消息队 列,并且生成多个不同的备份文件,其中多个不同的第一消息队列分别一 一对应于多个不同的消息队列客户端。
在一些实施方式中,方法还包括以下步骤:
响应于分布式备份端在生成备份文件和还原数据文件的过程中检测到 出现异常,而将与异常相关的数据信息发送到第二消息队列;
由第二消息队列将与异常相关的数据信息推送给订阅第二消息队列的 预警系统;
在预警系统基于与异常相关的数据信息发出告警。
在一些实施方式中,由第二消息队列将与异常相关的数据信息推送给 订阅第二消息队列的预警系统包括:
在第二消息队列上创建第二主题并为第二主题设置一个或多个队列;
在第二主题的一个或多个队列上将与异常相关的数据信息发送到管理 人员的终端设备。
在一些实施方式中,在分布式备份端基于备份文件来还原数据文件包 括:基于备份文件执行生成备份文件的逆过程。
下面根据图2所示的具体实施例进一步阐述本发明的具体实施方式。
参见图2,本发明通过利用RocketMQ实现对MySQL数据库的数据的 传输和订阅,同时对备份出现异常的数据实时发布到预警系统。本发明有 四个端两个连接组成,在图2中,第一个是MySQL数据库端,MySQL开启 Binary log(二进制日志)操作日志记录功能,实时将数据更新变更记录下 来。
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发, 属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一, 在WEB应用方面,MySQL是最好的RDBMS(关系数据库管理系统)应用 软件之一。关系数据库将数据保存在不同的表中,而不是将所有数据放在 一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。 MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速 度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开 发都选择MySQL作为网站数据库。对于一般的个人使用者和中小型企业 来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件, 因此可以大大降低总体拥有成本。
Linux作为操作系统,Apache或Nginx作为Web服务器,MySQL作 为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都 是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开 人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP “或“LNMP”组合。
第二是数据转发器端,将MySQL数据日志读入到日志转换器中,读取 的时候需要指定读取的数据日志位置。转换器将日志文件(第一格式)解 析成JSON格式(第二格式)的文件,该转换过程通过日志转换器的中间件 mysql-binlog-connector-java实现,并通过数据生产者输出。
二进制文件直接存储数据的二进制编码,生成比JSON更小的文件尺寸。 编码与解码可以节省一部分空间,进一步减少文件的大小。二进制文件的 文件小、解析快;相对应地,难以直接查看、通用性差。json或xml等文 件可以直接看出内容了。通用性差是因为解析二进制的代码难以公用。
JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于 机器解析和生成,其采用完全独立于语言的文本格式,但是也使用了类似 于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。JSON 中“名称/值”对的集合被理解为对象(object),纪录(record),结构(struct), 字典(dictionary),哈希表(hash table),有键列表(keyedlist),或者关 联数组(associative array);值的有序列表被理解为数组(array)。json一 般以utf-8格式保存成文本。
解析后的数据通过RocketMQ客户端发送到RocketMQ队列中,同时将 发送日志的下一个位置记录下来,方便下一次发送。由于对于消息的长度 有限制,在发送的时候会对数据顺序截取发送。第一个连接是通过 RocketMQ连接数据转换器端和分布式数据备份端。RocketMQ在收到消息 后,按顺序的发送给订阅端。
本发明提供了基于RocketMQ的消息中间件进行数据库备份的方法,通 过该方式还可以进行实时监控备份结果。其中RocketMQ是一款分布式、队 列模型的消息中间件,支持严格的消息顺序,支持Topic与Queue两种模 式,有亿级消息堆积能力和比较友好的分布式特性,同时支持Push和Pull 方式消费消息。
消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提 升开发效率和系统稳定性,具体来说包括削峰填谷(主要解决瞬时写压力 大于应用服务能力导致消息丢失、系统奔溃等问题)、系统解耦(解决不同 重要程度、不同能力级别系统之间依赖导致一死全死)、提升性能(当存在 一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统)、 蓄流压测(线上有些链路不好压测,可以通过堆积一定量消息再放开来压测)。
目前主流的MQ主要是Rocketmq、kafka、Rabbitmq,Rocketmq相比 于Rabbitmq、kafka具有主要优势特性有:支持事务型消息、支持结合 rocketmq的多个系统之间数据最终一致性、支持18个级别的延迟消息、 支持指定次数和时间间隔的失败消息重发、支持consumer端tag过滤,减 少不必要的网络传输、支持重复消费。
RocketMQ的集群部署中,NameServer是无状态节点,节点之间也没 有信息交流,Broker分为Master与Slave,Producer负责产生消息,并且 与NameServer集群中的其中一个节点建立长连接,定时向Master发送心 跳,定期从NameServer获取Topic路由信息,Consumer同样与Nameserver 集群中其中一个节点建立长连接,定期从NameServer获取Topic路由信息, 定时向Master、Slaver发送心跳。
RocketMQ的消费端支持多种不同的数据源接入,可以按Topic对消费 端进行分类,从而完成数据分发的功能,可以支持hbase,hdfs,关系型数 据库,本地系统文件存储;使爬虫只负责不断的按指定的Topic生成数据, 数据就可以源源不断的通过消费端到达不同的数据源进行存储。
第三个是分布式数据备份区,将RocketMQ推送的数据进行有效的订阅 转换,该备份区可以设置多个备份节点,针对不同的数据进行备份。第二 个连接是通过RocketMQ连接分布式备份区和预警系统,在备份的过程如果 出现异常,将备份异常实时发送给RocketMQ。RocketMQ接受到消息后将 消息发送给预警系统。第四个是预警系统,该系统可以通过通信,展示等 其他消息发送给系统管理员,及时进行异常通知。
分布式存储系统是将数据分散存储在多台独立的设备上。传统的网络 存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能 的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。 分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存 储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可 用性和存取效率,还易于扩展。
在大数据环境下,元数据的体量也非常大,元数据的存取性能是整个 分布式文件系统性能的关键。常见的元数据管理可以分为集中式和分布式 元数据管理架构。集中式元数据管理架构采用单一的元数据服务器,实现 简单.但是存在单点故障等问题。分布式元数据管理架构则将元数据分散 在多个结点上.进而解决了元数据服务器的性能瓶颈等问题.并提高了元 数据管理架构的可扩展性,但实现较为复杂,并引入了元数据一致性的问题。另外,还有一种无元数据服务器的分布式架构,通过在线算法组织数 据,不需要专用的元数据服务器。但是该架构对数据一致性的保障很困 难.实现较为复杂。文件目录遍历操作效率低下,并且缺乏文件系统全局 监控管理功能。
在大数据环境下,数据规模和复杂度的增加往往非常迅速,对系统的 扩展性能要求较高。实现存储系统的高可扩展性首先要解决两个方面的重 要问题,包含元数据的分配和数据的透明迁移。元数据的分配主要通过静 态子树划分技术实现,后者则侧重数据迁移算法的优化。此外,大数据存 储体系规模庞大.结点失效率高,因此还需要完成一定的自适应管理功能。 系统必须能够根据数据量和计算的工作量估算所需要的结点个数,并动态地将数据在结点间迁移。以实现负载均衡;同时.结点失效时,数据必须 可以通过副本等机制进行恢复,不能对上层应用产生影响。
构建存储系统时.需要基于成本和性能来考虑,因此存储系统通常采 用多层不同性价比的存储器件组成存储层次结构。大数据的规模大,因此 构建高效合理的存储层次结构,可以在保证系统性能的前提下,降低系统 能耗和构建成本,利用数据访问局部性原理.可以从两个方面对存储层次 结构进行优化。从提高性能的角度,可以通过分析应用特征,识别热点数 据并对其进行缓存或预取,通过高效的缓存预取算法和合理的缓存容量配比,以提高访问性能。从降低成本的角度,采用信息生命周期管理方法, 将访问频率低的冷数据迁移到低速廉价存储设备上,可以在小幅牺牲系统 整体性能的基础上,大幅降低系统的构建成本和能耗。
传统数据存储模型需要支持尽可能多的应用,因此需要具备较好的通 用性。大数据具有大规模、高动态及快速处理等特性,通用的数据存储模 型通常并不是最能提高应用性能的模型.而大数据存储系统对上层应用性 能的关注远远超过对通用性的追求。针对应用和负载来优化存储,就是将 数据存储与应用耦合。简化或扩展分布式文件系统的功能,根据特定应用、 特定负载、特定的计算模型对文件系统进行定制和深度优化,使应用达到最佳性能。这类优化技术在谷歌、Facebook等互联网公司的内部存储系统 上,管理超过千万亿字节级别的大数据,能够达到非常高的性能。
从各端的配置角度来说,为能够实施本发明的技术方案,还需要执行 以下步骤:
在第一个MySQL数据端,由MySQL创建一个具有同步权限的账户, 开启日志记录功能,Binlog要设置成row格式。格式如下:
og-bin=mysql-bin
binlog-format=ROW
在第二个数据转换端,设置数据库读取位置,配置连接MySQL数据库 信息,配置连接RoketMQ客户端信息。
在第一个RocketMQ连接,设置RocketMQ配置,将在服务端设置一个 消息的主题,并将该主题设置成只有一个队列,设置成一个队列保证备份 数据的顺序一致性。
在第三个端数据分布式备份区,建立多个数据库节点,每个节点对应 一个RocketMQ客户端。每个客户端订阅RocketMQ设置的主题,将消息发 送给数据库客户端,通过数据客户端对数据库的操作完成数据的还原备份。 在还原的过程中可以针对感兴趣的数据进行还原。在还原过程如果数据出 现异常,RocketMQ客户端将异常数据,数据库节点信息发送到下一个连接 点。
在第二个RocketMQ连接,在收到异常告警消息后,将消息推送到订阅 的该主题的预警系统。
第四个端预警系统,将在预警系统设置订阅异常消息的主题,设置消 息发的末端设备,实时通知管理人员。
从上述实施例可以看出,本发明实施例提供的数据备份方法,通过从 数据库读取以第一格式记录的数据更新变更,并将数据更新变更解析为第 二格式;通过消息队列客户端将第二格式的数据更新变更发送到与消息队 列客户端相对应的第一消息队列;由第一消息队列将第二格式的数据更新 变更推送给订阅第一消息队列的分布式备份端;在分布式备份端对第二格 式的数据更新变更执行订阅转换以生成备份文件;响应于接收到还原指令 而在分布式备份端基于备份文件来还原数据文件的技术方案,能够实时监 控数据库的备份还原,提升数据库的应对性能。
需要特别指出的是,上述数据备份方法的各个实施例中的各个步骤均 可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于 数据备份方法也应当属于本发明的保护范围,并且不应将本发明的保护范 围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种实时监控数 据库的备份还原,提升数据库的应对性能的数据备份装置的一个实施例。
装置包括:
处理器;
控制器,存储有处理器可运行的程序代码,处理器在运行程序代码时 周期性地执行以下步骤:
从数据库读取以第一格式记录的数据更新变更,并将数据更新变 更解析为第二格式;
通过消息队列客户端将第二格式的数据更新变更发送到与消息队 列客户端相对应的第一消息队列;
由第一消息队列将第二格式的数据更新变更推送给订阅第一消息 队列的分布式备份端;
在分布式备份端对第二格式的数据更新变更执行订阅转换以生成 备份文件;
响应于接收到还原指令而在分布式备份端基于备份文件来还原数 据文件。
从上述实施例可以看出,本发明实施例提供的数据备份装置,从数据 库读取以第一格式记录的数据更新变更,并将数据更新变更解析为第二格 式;通过消息队列客户端将第二格式的数据更新变更发送到与消息队列客 户端相对应的第一消息队列;由第一消息队列将第二格式的数据更新变更 推送给订阅第一消息队列的分布式备份端;在分布式备份端对第二格式的 数据更新变更执行订阅转换以生成备份文件;响应于接收到还原指令而在 分布式备份端基于备份文件来还原数据文件的技术方案,能够实时监控数 据库的备份还原,提升数据库的应对性能。
需要特别指出的是,上述装置的实施例采用了所述数据备份方法的实 施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将 这些模块应用到所述数据备份方法的其他实施例中。当然,由于所述数据 备份方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此, 这些合理的排列组合变换之于所述装置也应当属于本发明的保护范围,并 且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要 求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。 根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以 任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式 描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例 性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例 子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征 之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多 其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的 精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (9)
1.一种数据备份方法,其特征在于,包括周期性地执行以下步骤:
从数据库读取以第一格式记录的数据更新变更,并将所述数据更新变更解析为第二格式;
通过消息队列客户端将所述第二格式的所述数据更新变更发送到与所述消息队列客户端相对应的第一消息队列;
由所述第一消息队列将所述第二格式的所述数据更新变更推送给订阅所述第一消息队列的分布式备份端;
在所述分布式备份端对所述第二格式的所述数据更新变更执行订阅转换以生成备份文件;
响应于接收到还原指令而在所述分布式备份端基于所述备份文件来还原数据文件;
响应于所述分布式备份端在生成所述备份文件和还原所述数据文件的过程中检测到出现异常,而将与异常相关的数据信息发送到第二消息队列;
由所述第二消息队列将与异常相关的所述数据信息推送给订阅所述第二消息队列的预警系统;
在所述预警系统基于与异常相关的所述数据信息发出告警。
2.根据权利要求1所述的方法,其特征在于,从数据库读取以第一格式记录的数据更新变更包括:
使所述数据库启用操作日志记录功能,并为所述操作日志记录功能确定数据日志位置;
由所述操作日志记录功能基于所述数据库中的数据更新而生成数据日志,并基于所述数据日志向所述数据日志位置写入所述数据更新变更;
访问所述数据日志位置以获取以所述第一格式记录的所述数据更新变更。
3.根据权利要求2所述的方法,其特征在于,所述第一格式为记录数据日志使用的二进制格式;所述第二格式为JSON格式。
4.根据权利要求1所述的方法,其特征在于,通过消息队列客户端将所述第二格式的所述数据更新变更发送到与所述消息队列客户端相对应的第一消息队列包括:
由所述消息队列客户端基于所述第一消息队列的最大消息长度将所述第二格式的所述数据更新变更划分为多个分片;
将所述多个分片按顺序依次发送到所述第一消息队列。
5.根据权利要求4所述的方法,其特征在于,由所述第一消息队列将所述第二格式的所述数据更新变更推送给订阅所述第一消息队列的分布式备份端包括:
在所述第一消息队列上创建第一主题并为所述第一主题设置唯一队列;
在所述第一主题的所述唯一队列上将所述多个分片按顺序依次发送到所述分布式备份端。
6.根据权利要求5所述的方法,其特征在于,所述分布式备份端配置为订阅多个不同的所述第一消息队列,并且生成多个不同的所述备份文件,其中多个不同的所述第一消息队列分别一一对应于多个不同的所述消息队列客户端。
7.根据权利要求1所述的方法,其特征在于,由所述第二消息队列将与异常相关的所述数据信息推送给订阅所述第二消息队列的预警系统包括:
在所述第二消息队列上创建第二主题并为所述第二主题设置一个或多个队列;
在所述第二主题的所述一个或多个队列上将所述与异常相关的所述数据信息发送到管理人员的终端设备。
8.根据权利要求1所述的方法,其特征在于,在所述分布式备份端基于所述备份文件来还原数据文件包括:基于所述备份文件执行生成所述备份文件的逆过程。
9.一种数据备份装置,其特征在于,包括:
处理器;
控制器,存储有所述处理器可运行的程序代码,所述处理器在运行所述程序代码时周期性地执行以下步骤:
从数据库读取以第一格式记录的数据更新变更,并将所述数据更新变更解析为第二格式;
通过消息队列客户端将所述第二格式的所述数据更新变更发送到与所述消息队列客户端相对应的第一消息队列;
由所述第一消息队列将所述第二格式的所述数据更新变更推送给订阅所述第一消息队列的分布式备份端;
在所述分布式备份端对所述第二格式的所述数据更新变更执行订阅转换以生成备份文件;
响应于接收到还原指令而在所述分布式备份端基于所述备份文件来还原数据文件;
响应于所述分布式备份端在生成所述备份文件和还原所述数据文件的过程中检测到出现异常,而将与异常相关的数据信息发送到第二消息队列;
由所述第二消息队列将与异常相关的所述数据信息推送给订阅所述第二消息队列的预警系统;
在所述预警系统基于与异常相关的所述数据信息发出告警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110527932.1A CN113360319B (zh) | 2021-05-14 | 2021-05-14 | 一种数据备份方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110527932.1A CN113360319B (zh) | 2021-05-14 | 2021-05-14 | 一种数据备份方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360319A CN113360319A (zh) | 2021-09-07 |
CN113360319B true CN113360319B (zh) | 2022-08-19 |
Family
ID=77526705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110527932.1A Active CN113360319B (zh) | 2021-05-14 | 2021-05-14 | 一种数据备份方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360319B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048601A (zh) * | 2022-05-17 | 2023-05-02 | 荣耀终端有限公司 | 软件版本信息同步方法、系统及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878473A (zh) * | 2017-04-20 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、服务器集群及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9633022B2 (en) * | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
CN106302817A (zh) * | 2016-09-29 | 2017-01-04 | 南京中新赛克科技有限责任公司 | 一种基于分布式消息队列的数据总线实现方法和装置 |
CN106713487B (zh) * | 2017-01-16 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 数据的同步方法和装置 |
CN106874145A (zh) * | 2017-02-15 | 2017-06-20 | 山东浪潮商用系统有限公司 | 一种基于消息队列的异步数据备份方法 |
CN110807067B (zh) * | 2019-09-29 | 2023-12-22 | 北京淇瑀信息科技有限公司 | 关系型数据库和数据仓库的数据同步方法、装置及设备 |
CN111177161B (zh) * | 2019-11-07 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算设备和存储介质 |
-
2021
- 2021-05-14 CN CN202110527932.1A patent/CN113360319B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878473A (zh) * | 2017-04-20 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、服务器集群及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113360319A (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723160B (zh) | 一种多源异构增量数据同步方法及系统 | |
Lakshman et al. | Cassandra: a decentralized structured storage system | |
US8990176B2 (en) | Managing a search index | |
JP6119421B2 (ja) | エンコードされたトリプルを格納するデータベース、制御部、方法及びシステム | |
WO2016187452A1 (en) | Topology aware distributed storage system | |
Narkhede et al. | HMR log analyzer: Analyze web application logs over Hadoop MapReduce | |
Dean | Software engineering advice from building large-scale distributed systems | |
CN112231402A (zh) | 一种异构数据实时同步方法、装置、设备和存储介质 | |
US11288237B2 (en) | Distributed file system with thin arbiter node | |
Ma et al. | Stream‐based live data replication approach of in‐memory cache | |
CN113360319B (zh) | 一种数据备份方法和装置 | |
Huang et al. | Non-structure data storage technology: a discussion | |
Dai et al. | Sedna: A memory based key-value storage system for realtime processing in cloud | |
Schales et al. | FCCE: highly scalable distributed feature collection and correlation engine for low latency big data analytics | |
CN112202862B (zh) | 一种基于kafka的集群数据以及文件的同步方法及装置 | |
Zhou et al. | Sfmapreduce: An optimized mapreduce framework for small files | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
US11757703B1 (en) | Access requests processing and failover handling across multiple fault tolerance zones | |
Ding et al. | Distributed storage of network measurement data on HBase | |
Abughofa et al. | Towards online graph processing with spark streaming | |
CN111597157A (zh) | 一种改进日志处理系统架构的方法 | |
CN111444148A (zh) | 基于MapReduce的数据传输方法和装置 | |
CN113656469B (zh) | 大数据处理方法及装置 | |
Hu et al. | Research on reliability of Hadoop distributed file system | |
Praveen et al. | NoSQL products: IT giants perspectives |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |