基于agent的数据库智能备份系统的制作方法

文档序号:11406963阅读:235来源:国知局
基于agent的数据库智能备份系统的制造方法与工艺

本发明属于数据库备份技术领域,主要应用于互联网行业关系数据库和内存数据库类型的数据库自动化备份。



背景技术:

对于互联网公司而言,数据库备份越来越重要,目前,常用的数据库备份方案,大多是调用开源的备份工具,进行简单的封装,这些方案存在如下缺点:

(1)需要较多的人工干预:由于备份系统设计不够智能,很多环节需要人工干预,增加维护成本。

(2)安全性较低:无法智能选择存储节点,增大数据丢失风险,存储利用率较低。

(3)管理性较差:由于设计上的缺陷,导致无法全面管理备份信息,降低了备份可用性。

(4)无法自动恢复数据:在恢复数据时候,需要复杂的流程和人工处理,自动化程度很低

(5)可用性无法保证:由于没有可行的数据校验机制,无法保证备份数据可用,降低了备份数据可用性。

(6)无法自动选择备份节点:需要手动或者固定选择某个备份节点,无法做到智能选择,灵活性低,增大备份出现问题的风险,降低备份可行性。

(7)功能单一:一般是只支持某个数据库的备份,不记录备份信息,也不支持多个数据库备份,无法进行全方位管理备份。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种基于agent的数据库智能备份系统,基于agent思想实现数据库备份智能化,该系统可以支持大规模关系数据库和内存数据库的自动备份和还原。

本发明的目的是通过以下技术方案来实现的:一种基于agent的数据库智能备份系统,该系统包括元信息节点、管理节点、存储节点和备份节点四部分;

元信息节点存储所有数据库集群的ip、端口和数据库角色信息,以端口作为唯一标识,数据库角色分为主节点和从节点,从节点实时同步主节点数据;这些信息可以来自人工录入,也可以从数据库节点自动获取;

管理节点是对系统进行管理的服务器,包括存储节点管理模块、备份策略管理模块、备份清理模块和agent管理模块;管理节点自动获取元信息节点的数据,调用存储节点管理模块更新存储节点详细信息,调用备份策略管理模块生成或者更新备份策略,分发定时任务和备份脚本到备份节点,所述定时任务包括备份开始时间、备份指令;所述备份脚本是封装了数据库备份相关的操作的脚本文件,需要传入的参数是端口,表示备份该端口的数据库;所述备份指令是调用备份脚本的一条命令;定期调用备份清理模块清理过期备份和失败备份;定期调用agent管理模块检查agent存活状态;

备份节点是执行定时任务的数据库服务器,是数据库节点的从节点,包括任务调度模块和备份执行模块;接收管理节点的定时任务后,在指定的时间调用任务调度模块和备份执行模块执行数据库备份;

存储节点是存储数据库备份文件的数据库服务器或者存储设备,包括备份校验模块;在指定时间调用备份校验模块对备份数据进行校验。

进一步地,所述管理节点还包括失败备份告警模块,管理节点定期调用失败备份告警模块检查失败备份并发出告警。失败备份告警模块调用备份策略信息和备份路由表信息,定期检查备份是否成功,如果存在失败备份,则通知管理人员处理;否则,不做任何处理。

进一步地,该系统还包括布置在管理节点或存储节点上的自动恢复数据模块,自动恢复数据模块获取备份文件,恢复所需数据。自动恢复数据模块为本系统的优选项,还原数据库节点是在指定的节点上恢复备份数据,需要传入数据库端口和日期,根据数据库端口和日期,调用备份路由表信息,获取对应的备份文件,传输备份文件到还原数据库节点,然后启动数据库服务。如果指定日期不存在相应的备份文件,那么报错退出;如果不指定日期,那么获取最近的备份文件;如果没有可用的备份文件,那么报错退出。

进一步地,所述管理节点分发定时任务和备份脚本到备份节点具体为:在所有的数据库节点部署agent客户端,在管理节点部署agent服务端;agent服务端调用自身接口分发指定的定时任务和备份脚本到对应的备份节点。

进一步地,所述存储节点管理模块中存储:存储基本信息和存储详细信息。

所述存储基本信息包括:存储节点ip、数据目录、机房标识、可接受备份的机房标识;所述机房标识是指存储节点所在的机房名称;所述可接受备份的机房标识表示哪些机房的备份节点可以使用该存储节点;存储基本信息需要人工录入,由于数据量很小,工作量可以忽略;如果需要横向扩展存储节点,只需要录入新的存储节点的存储基本信息即可。

所述存储详细信息包括:存储节点ip和数据目录、机房标识、可用空间大小;

管理节点根据存储基本信息得到所有的存储节点,采用agent方式获取存储节点的可用空间大小,更新存储详细信息。

进一步地,所述备份策略管理模块生成或者更新备份策略具体为:

调用存储节点管理模块,实时更新和获取存储节点的存储详细信息,然后扫描备份白名单,如果某个数据库端口位于白名单,不需要备份;否则根据数据库的类型选择对应的备份策略模板,生成和更新备份策略;如果该数据库端口不存在备份策略,那么生成新的备份策略;如果已经存在备份策略,那么更新其对应的存储节点的ip和数据目录。同时,针对废弃或者需要调整的备份策略,将其记录到备份废弃信息表里,备份废弃信息表包括:备份节点ip和端口、备份类型、存储节点ip和数据目录、任务状态、触发策略、保留时间等信息。备份白名单是指不需要备份的数据库节点端口,需要人工录入,由于数据量很小,忽略维护成本。

所述备份策略包括如下信息:备份节点ip和端口、存储节点ip和数据目录、备份开始时间、保留时间、触发策略;所述备份开始时间是指系统自动设定的备份操作的启动时间。所述触发策略是指每周备份的天数。所述备份策略模板是指根据数据库类型,对备份策略设置默认值。所述任务状态是指备份定时任务的状态,包括开启和关闭。

进一步地,所述任务调度模块采用agent方式,调用备份策略管理模块,根据备份策略,分发定时任务到指定的备份节点上,然后调用备份执行模块。如果该备份节点已经存在定时任务,则直接调用备份执行模块。

进一步地,所述agent管理模块检查agent服务端,如果不存在,则调用agent自身的管理工具,启动agent服务端,若启动失败,通知数据库管理人员处理。该模块扫描所有备份节点,如果不存在agent客户端,那么通知数据库管理人员处理。agent列表是在agent服务端保存了agent客户端节点的列表,存在于该列表,表示该节点可以接收agent服务端的指令。调用备份策略管理模块,如果备份节点不在agent列表里,那么该模块自动将该备份节点添加到agent列表,如果添加操作失败,那么通知管理人员处理。同时,扫描备份废弃信息表里状态为开启的备份节点,调用agent删除备份节点上的备份任务,同时更新任务状态为关闭。

进一步地,所述备份执行模块是真正执行备份操作的模块,通过调用数据库备份工具,执行数据库备份操作。根据备份策略信息,传输备份文件到相应的存储节点数据目录。同时,记录备份相关信息到备份路由表和备份统计表里。备份路由表信息包括:备份节点ip和端口,存储节点ip和数据目录,备份类型,日期和状态等信息;备份统计表信息包括:备份节点ip和端口,存储节点ip和数据目录,备份文件大小和压缩文件大小,备份时间戳和状态以及校验信息。

进一步地,所述备份校验模块:在备份执行模块中,对备份节点上备份文件采用md5sum进行校验,记录到备份统计表里,该模块根据备份统计表信息,对存储节点上的备份文件进行一次md5sum校验,记录到备份统计表里,比对前后两次校验值,如果一致,那么表示备份文件可用;否则表示备份文件不可用,更新备份路由表和备份统计表中对应的状态为失败。针对备份文件数据量巨大的情况,可以采用随机抽查某个备份文件校验。该模块保证了备份文件的有效性。

进一步地,所述备份清理模块扫描备份路由表,定期清理如下备份文件:1)过期备份文件:扫描备份策略信息的保留时间和备份路由表信息,调用agent删除存储节点上超过保留时间的备份文件。2)失败备份:扫描备份路由表中状态为失败的信息,调用agent,删除存储节点上这些备份文件。3)黑名单文件:黑名单文件是指存储节点上的备份文件,在备份路由表里没有记录,认为这些备份属于无效备份,需要删除。扫描存储节点上所有备份文件,调用agent,删除这些备份文件。定期执行备份清理模块,可以清理无用备份,节省大量存储空间。

本发明的有益效果是:

(1)自动化备份数据:几乎不需要人工干预,备份过程实现自动化。

(2)充分利用存储节点,提高数据安全性:可以轻松横向扩展存储节点,并且可以均衡利用存储空间,平均分布备份存储,大大提升备份数据安全性。

(3)自动容错机制:如果备份出现故障,在一定程度上,可以自行处理问题,不需要人工干预。

(4)可行的校验机制:针对备份文件,进行可行的校验机制,充分保证备份文件是可用的。

(5)完善的管理机制:记录备份详细信息,可以追溯历史上任何一次备份情况,很好的管理所有的备份文件。

(6)自动恢复数据:可以实现一键操作,还原备份数据。

附图说明

图1是本发明备份系统总体架构图;

图2是本发明备份系统各个模块流程图;

具体实施方式

下面结合附图和具体实施例对本发明作进一步详细说明。

图1是本发明备份系统总体架构图,管理节点是核心,首先调用元信息节点,获取到存储节点的ip和数据目录以及数据库节点的ip和端口以及角色信息,根据存储节点的ip和数据目录,采用agent方式获取到其可用空间大小,从而更新存储节点详细信息,然后从数据库节点的信息里,自动选择备份节点,然后根据备份策略模板,生成或者更新备份策略,然后分发定时任务和备份脚本到备份节点;备份节点在指定时间点触发数据库备份;存储节点定期校验备份文件,保证备份文件可用。另外,管理节点定期清理过期和失败备份文件,每天执行失败备份告警操作,及时发现和告警失败的备份。

图2是本发明备份系统各个模块流程图,备份策略模块在产生和更新备份策略时候,会调用存储节点管理模块,获取实时存储节点信息,便于正确选择合适的存储节点;同时,调用agent管理模块,保证agent可用;然后调用任务调度模块,分发备份任务到备份节点。在指定的时间点,备份执行模块自动触发,备份结束后,调用备份校验模块,对备份文件进行校验。为了保证备份有效性,定期运行失败备份检查模块,及时发现失败备份和处理相关问题。以上是本发明设计的主要流程。下面详细介绍各模块的实现过程:

元信息节点存储所有数据库集群的ip、端口和数据库角色信息,以端口作为唯一标识,数据库角色分为主节点和从节点,从节点实时同步主节点数据;这些信息可以来自人工录入,也可以从数据库节点自动获取;

管理节点是对系统进行管理的服务器,包括存储节点管理模块、备份策略管理模块、备份清理模块和agent管理模块;管理节点自动获取元信息节点的数据,调用存储节点管理模块更新存储节点详细信息,调用备份策略管理模块生成或者更新备份策略,分发定时任务和备份脚本到备份节点,所述定时任务包括备份开始时间、备份指令;所述备份脚本是封装了数据库备份相关的操作的脚本文件,需要传入的参数是端口,表示备份该端口的数据库;所述备份指令是调用备份脚本的一条命令;定期调用备份清理模块清理过期备份和失败备份;定期调用agent管理模块检查agent存活状态;

备份节点是执行定时任务的数据库服务器,是数据库节点的从节点,包括任务调度模块和备份执行模块;接收管理节点的定时任务后,在指定的时间调用任务调度模块和备份执行模块执行数据库备份;

存储节点是存储数据库备份文件的数据库服务器或者存储设备,包括备份校验模块;在指定时间调用备份校验模块对备份数据进行校验。

进一步地,所述管理节点还包括失败备份告警模块,管理节点定期调用失败备份告警模块检查失败备份并发出告警。失败备份告警模块调用备份策略信息和备份路由表信息,定期检查备份是否成功,如果存在失败备份,则通知管理人员处理;否则,不做任何处理。

进一步地,该系统还包括布置在管理节点或存储节点上的自动恢复数据模块,自动恢复数据模块获取备份文件,恢复所需数据。自动恢复数据模块为本系统的优选项,还原数据库节点是在指定的节点上恢复备份数据,需要传入数据库端口和日期,根据数据库端口和日期,调用备份路由表信息,获取对应的备份文件,传输备份文件到还原数据库节点,然后启动数据库服务。如果指定日期不存在相应的备份文件,那么报错退出;如果不指定日期,那么获取最近的备份文件;如果没有可用的备份文件,那么报错退出。

进一步地,所述管理节点分发定时任务和备份脚本到备份节点具体为:在所有的数据库节点部署agent客户端,在管理节点部署agent服务端;agent服务端调用自身接口分发指定的定时任务和备份脚本到对应的备份节点。

进一步地,所述存储节点管理模块中存储:存储基本信息和存储详细信息。

所述存储基本信息包括:存储节点ip、数据目录、机房标识、可接受备份的机房标识;所述机房标识是指存储节点所在的机房名称;所述可接受备份的机房标识表示哪些机房的备份节点可以使用该存储节点;存储基本信息需要人工录入,由于数据量很小,工作量可以忽略;如果需要横向扩展存储节点,只需要录入新的存储节点的存储基本信息即可。

所述存储详细信息包括:存储节点ip和数据目录、机房标识、可用空间大小;

管理节点根据存储基本信息得到所有的存储节点,采用agent方式获取存储节点的可用空间大小,更新存储详细信息(根据存储基本信息获取相应的存储节点空间使用情况,不需要人工处理,从而保证备份系统准确选择可用空间最大的存储节点,充分利用所有存储节点的存储空间)。

进一步地,所述备份策略管理模块生成或者更新备份策略具体为:

调用存储节点管理模块,实时更新和获取存储节点的存储详细信息,然后扫描备份白名单,如果某个数据库端口位于白名单,不需要备份;否则根据数据库的类型选择对应的备份策略模板,生成和更新备份策略;如果该数据库端口不存在备份策略,那么生成新的备份策略;如果已经存在备份策略,那么更新其对应的存储节点的ip和数据目录。同时,针对废弃或者需要调整的备份策略,将其记录到备份废弃信息表里,备份废弃信息表包括:备份节点ip和端口、备份类型、存储节点ip和数据目录、任务状态、触发策略、保留时间等信息。备份白名单是指不需要备份的数据库节点端口,需要人工录入,由于数据量很小,忽略维护成本。

所述备份策略包括如下信息:备份节点ip和端口、存储节点ip和数据目录、备份开始时间、保留时间、触发策略;所述备份开始时间是指系统自动设定的备份操作的启动时间。所述触发策略是指每周备份的天数。所述备份策略模板是指根据数据库类型,对备份策略设置默认值。所述任务状态是指备份定时任务的状态,包括开启和关闭。

进一步地,所述任务调度模块采用agent方式,调用备份策略管理模块,根据备份策略,分发定时任务到指定的备份节点上,然后调用备份执行模块。如果该备份节点已经存在定时任务,则直接调用备份执行模块。

进一步地,所述agent管理模块检查agent服务端,如果不存在,则调用agent自身的管理工具,启动agent服务端,若启动失败,通知数据库管理人员处理。该模块扫描所有备份节点,如果不存在agent客户端,那么通知数据库管理人员处理。agent列表是在agent服务端保存了agent客户端节点的列表,存在于该列表,表示该节点可以接收agent服务端的指令。调用备份策略管理模块,如果备份节点不在agent列表里,那么该模块自动将该备份节点添加到agent列表,如果添加操作失败,那么通知管理人员处理。同时,扫描备份废弃信息表里状态为开启的备份节点,调用agent删除备份节点上的备份任务,同时更新任务状态为关闭。

进一步地,所述备份执行模块是真正执行备份操作的模块,通过调用数据库备份工具,执行数据库备份操作。根据备份策略信息,传输备份文件到相应的存储节点数据目录。同时,记录备份相关信息到备份路由表和备份统计表里。备份路由表信息包括:备份节点ip和端口,存储节点ip和数据目录,备份类型,日期和状态等信息;备份统计表信息包括:备份节点ip和端口,存储节点ip和数据目录,备份文件大小和压缩文件大小,备份时间戳和状态以及校验信息。

进一步地,所述备份校验模块:在备份执行模块中,对备份节点上备份文件采用md5sum进行校验,记录到备份统计表里,该模块根据备份统计表信息,对存储节点上的备份文件进行一次md5sum校验,记录到备份统计表里,比对前后两次校验值,如果一致,那么表示备份文件可用;否则表示备份文件不可用,更新备份路由表和备份统计表中对应的状态为失败。针对备份文件数据量巨大的情况,可以采用随机抽查某个备份文件校验。该模块保证了备份文件的有效性。

进一步地,所述备份清理模块扫描备份路由表,定期清理如下备份文件:1)过期备份文件:扫描备份策略信息的保留时间和备份路由表信息,调用agent删除存储节点上超过保留时间的备份文件。2)失败备份:扫描备份路由表中状态为失败的信息,调用agent,删除存储节点上这些备份文件。3)黑名单文件:黑名单文件是指存储节点上的备份文件,在备份路由表里没有记录,认为这些备份属于无效备份,需要删除。扫描存储节点上所有备份文件,调用agent,删除这些备份文件。定期执行备份清理模块,可以清理无用备份,节省大量存储空间。

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