一种实现分布式数据库备份的方法与流程

文档序号:15981249发布日期:2018-11-17 00:21阅读:345来源:国知局

本发明涉及分布式技术、路由、mapreduce模型技术领域,尤其涉及一种实现分布式数据库备份的方法。

背景技术

数据大集中之后,企业的经营活动越来越依赖于数据中心与网络等基础设施,如何实现减少甚至消除正常和非正常的故障对业务可用性造成的影响,受到运维团队和决策层所关注的。出于灾备的目的,企业一般都会建设两个或多个数据中心。主数据中心承担用户的核心业务,其他的数据中心主要承担一些非关键业务并同时备份主中心的数据、配置、业务等。正常情况下,主中心和备中心各司其职,发生灾难时,主数据中心宕机、备份数据中心可以快速恢复数据和应用,从而减轻因灾难给用户带来的损失。例如当前移动业务在同一城市建设多个中心,每个中心处理部分地市业务,如果单个中心出现故障不会影响全省业务。

多中心、分布式、多活的应用场景相当广泛,同时带来许多问题。如多中心的数据库,如何对多中心数据库进行监控、备份、执行操作等。对数据库备份如果采用传统方式,需要逐个连接节点上的数据库,然后对数据表、库备份,这样会给工作人员带来很大的工作量。如果对数据要求比较高的情况下,需要对数据库采取定时任务备份操作,实现每天多次备份任务操作,并且对不同节点、不同的内容进行不同策略备份操作,这样人工操作几乎是不可能完成的任务,因此迫切需要一种装置能够简单有效的管理数据库,可以快捷方便的同时对各个节点数据库进行操作,从而提高效率,降低错误。

在分布式mysql系统中,每个数据库是独立或者是相互依赖,如果要对每个数据进行备份需要在每个节点上进行备份操作,同时备份操作有很多种,如果单个表备份、多个表备份、单个库备份、多个库备份、命令操作等。在生产运维中如果每个节点逐个操作不仅耗时,同时容易出错,会严重提高运维成本。

综上所述,如何提供一种对分布式数据库存储根据策略快速备份,并能通过装置同时实现对不同数据库节点实现特定的备份操作,是目前本领域技术人员亟待解决的问题。



技术实现要素:

为了解决以上技术问题,本发明提出了一种实现分布式数据库备份的方法。可以根据特定场景实现数据备份、节点管理、信息采集、系统架空等功能。用来方便提供对集中各个节点进行操作,如对各个节点的数据库进行定时备份操作、命令执行等,能够方便快捷对各个节点完成操作。在实践中通过此装置实现了分布式数据库备份、分布式系统数据集监控和采集等。

本发明的技术方案是:

一种分布式数据库备份的方法和装置,在对分布式存储数据备份实现按照调度策略执行调度备份任务,同时通过代理利用路由器配置路由策略,决定备份数据库、备份内容、备份方法,最终代理向节点发送备份请求,节点上客户端备份软件会根据接收的指令信息进行备份操作,向指定路径备份数据库内容,或者返回数据分析数据。

该方法的步骤如下:

步骤1)客户根据需求通过web管理平台实现调度任务、备份策略、路由策略等,也可以通过rest接口或者数据库直接性配置策略信息。

步骤2)调度器根据调度任务加载数据中的备份策略向代理发送请求包。

步骤2)代理接收到调度器发来的请求包之后,对包内容解析。

步骤3)根据向路由发送请求,获取路由到的节点信息及指令参数,组装备份指令。

步骤4)根据路由到的数据库的数量设定新的请求包向需要备份的数据库节点发送。

步骤5)节点上的客户端收到备份指令之后,执行备份,把备份的内容发送指定路径,执行指令成功之后返回结果。

步骤6)代理接收结果并且对结果进行解析,然后合并结果信息进行返回。

步骤7)调度器根据代理返回进行判断,写入指定文件或者直接记录备份日志。

进一步的,所述的web管理平台是对调度备份策略和调度任务的配置管理,实现对策略和备份策略进行修改、删除、创建等功能。

进一步的,所述的rest接口是修改调度任务对外接口,可以通过此接口对调度任务和备份策略进行创建、修改、删除等操作。

进一步的,所述的代理是实现分布式备份操作。执行备份任务时,代理接收到调度器发送的指令,通过指令信息查询路由,对请求包解析,拆分成多个请求包向不同的备份数据库节点的客户端发送。当客户单备份成功之后,对备份结果进行解析合并,并记录备份结果。代理在整个装置中起到中心枢纽作用。

进一步的,所述的调度器对分布式集群中每个节点的数据备份配置执行策略,配置了执行的备份周期、备份指令、备份内容等信息。调度器会根据配置的执行策略向代理发送备份请求,并且会对请求结果进行记录。调度器会对所有执行的调度任务记录的mysql中。

进一步的,所述的路由是根据路由规则查找出需要执行备份的节点,然后获取节点连接信息如ip、用户、密码等。为了提高代理的处理速度,降低因为访问路由造成性能下降问题,路由进程使用内存数据,即路由内存数据库,路由内存数据在初始化时从mysql数据库加载,修改后可以刷新。

进一步的,所述的客户端作为独立进程部署到分布式系统中各个节点上的装置,对节点进行操作。客户端通过推送功能进行安装,直接向所有节点进行安装。备份执行过程中所有代理发送的指定都是通过客户端进行执行,备份中客户端会直接把备份内容存储到指定目录或者备份结果返回到代理端。

进一步的,所述的备份策略是决定备份任务的执行时间,可指定日期,也可按照周期执行,根据备份需求指定备份具体内容。

进一步的,所述的路由规则是对通过指定中特定的信息查出索要备份的数据库节点信息,对备份指令中特定的信息根据路由出的数据进行修改。

进一步的,所述指令主要是执行备份的脚本或者所需要备份数据库的特定操作,指定可以根据具体业务自行设定。

本发明的有益效果是

调度程序实现备份的多样性,可指定周期和执行命令,便于维护和修改。通过代理能够分布式实现对所有节点数据库备份同时操作,大大提高执行效率,降低备份成本。路由的设计实现备份数据多样性,对指定数据、表、内容进行配置,应用不同的备份场景。节点客户端可以根据业务需求应用到各种环境,如备份、监控、数据集采集、节点管理等。此装置可以安全、高效、低成本的对分布式mysql数据库进行备份。。

附图说明

图1本发明的分布式数据备份的架构图;

图2本发明备份执行请求的流程图。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

所采用的技术方案如图1所示,此架构的功能通过代理服务器对用户发起的请求包进行分流,然后对所有节点返回包进行分析合并,返回给用户。

装置中模块描述如下:

代理:代理是利用mapreduce编程模型思想,利用概念"map(映射)"和"reduce(归约)"思想,在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。在调度进程执行备份任务时,会发送执行备份的指令,这些指定通过代理时会查询路由,根据有路由规则获取需要备份的节点信息,然后请求包在map方法中分解成多个请求包向备份数据库节点发送。当备份成功之后,通过reduce函数对返回结果进行解析合并,然后返回,并记录备份结果。

调度器:主要用于执行备份任务,对分布式集群中每个节点的数据备份配置执行策略,配置了执行的备份周期、备份指令、备份内容等信息。调度器会根据配置的执行策略按时向代理发送备份请求,并且会对请求结果进行记录。调度器的初始化信息加载、调度日志记录基于mysql实现。调度进程提供rest接口服务,用户可以通过rest接口对调度策略进行创建、修改、删除等管理操作。

路由:用户执行请求操作时,代理会根据用户请求数据通过路由表中数据进行匹配,查找出需要执行的节点,然后获取节点连接信息如ip、用户、密码等。只有路由成功之后会向各个中心发送执行指令,如果路由失败,则不会执行操作。路由表数据包括用户和数据库关系,这些数据可以直接根据用户需求进行配置。为了提高代理的处理速度,降低因为访问路由造成性能下降问题,路由进程使用内存数据,路由的数据在初始化时根据数据mysql进行加载,因此路由信息的配置只要通过mysql数据配置,修改之后通过刷新路由内存数据库,即把数据加载到路由数据库中。

数据库:数据库使用mysql,数据库的工作主要两个,一是存储调度进行数据信息,对调度信息进行修改配置,如执行的调度任务、调度策略等。二是设置路由表信息,配置用户、执行和数据库关系,用于更新内存数据库,此表正常情况下很少进行更新,只有分布式数据库节点调整或者增加新的操作才会进行更新。

客户端:作为独立进程部署到分布式系统中各个节点上的装置,对节点进行操作。客户端安装时通过推送功能,直接向所有节点进行安装。备份执行过程中所有代理发送的指定都是通过客户端进行执行,备份中客户端会直接把备份内容存储到指定目录或者备份结果返回到代理端。客户端执行功能可以根据业务具体要求。

用户备份执行流程如下:

客户根据需求配置备份策略,配置过程可以直接通过web管理平台实现,也可以通过直接修改数据库配置表实现。配置内容主要有调度器使用的调度任务、备份策略、路由策略等。

调度器根据调度任务加载数据中的备份策略向代理发送请求包,请求内容包括备份的内容信息、备份指令、备份存储位置等。

代理接收到调度器发来的请求包之后,对包内容解析。

根据包信息向路由发送请求,获取路由到的数据库信息以及执行指令。

根据路由到的数据库的数量设定新的请求包向需要备份的数据库节点发送。

节点上的客户端收到备份指令之后,执行备份,把备份的内容发送指定路径(可以跨机器备份),执行指令成功之后返回结果。

代理接收结果并且对结果进行解析,然后合并结果信息进行返回。

调度器根据代理返回进行判断,写入指定文件或者直接记录备份日志。

通过调度器根据备份策略进行备份执行,备份策略可以通过rest接口或者数据库配置实现;调度器通过一次性发送指令,然后通过代理的mapreduce技术向多个节点同时发送备份指令;通过路由配置指定所关联的数据库和需要执行的脚本信息;路由存放内存,直接可以通过mysql进行初始化并刷新;代理可以对节点客户端返回结果解析处理;各个节点的客户端执行同时接收的指令操作。调度程序实现备份的多样性,可指定周期和命令执行方式,便于维护和修改。通过代理能够分布式实现对所有节点数据库备份同时操作,大大提高执行效率,降低备份成本。路由的设计是先备份数据多样性,可以对指定数据、表、表内容进行配置,可以应用到广泛的环境。节点客户端可以根据业务需求应用到各种环境,如备份、监控、数据集采集、节点管理等。总之此装置可以安全、高效、低成本的对分布式mysql进行备份。

安装装置:

数据库安装,用来存储调度任务、备份策略、路由规则、日志等。

客户端安装,向分布式节点推送的软件,用户执行各种备份指令和任务。

代理安装,独立代理进程,需要备份路由、分布式节点关系。

调度器,执行调度任务。

路由安装,存放路由规则,启动时根据mysql加载。

配置装置:

配置调度器,主要配置根据用户需求配置的调度任务。

配置路由,配置需要备份的数据节点信息的路由规则。

配置备份策略,设定备份的时间、路径、内容等。

备份流程:

启动调度器,加载调度所用参数和备份策略信息。

调度器根据备份执行策略按时执行调度任务,向代理发送命令信息,同时记录调度日志信息。

代理接收命令解析出执行命令参数信息。

代理通过路由查询所有需要备份的节点链接信息和备份操作规则。

代理根据路由信息封装请求包,向路由到的数据库节点发送备份请求。

节点客户端接收到代理信息,执行备份指令,存储备份内容,返回备份结果。

代理收到备份结果进行解析,把结果合并,然后返回到调度器。

调度器对结果进行解析记录。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1