首页> 中国专利> 数据库备份系统及其备份方法和从数据库服务器

数据库备份系统及其备份方法和从数据库服务器

摘要

本发明公开了一种数据库备份系统及其备份方法和从数据库服务器,所述系统包括:主数据库服务器,用于维护数据库;从数据库服务器,用于对所述数据库进行备份,得到备份结果后进行发送;存储节点集群,其基于HDFS技术,包括:存储控制节点和至少一个存储节点,存储控制节点用于接收从数据库服务器发送的备份结果,并负责管理各存储节点对备份结果的分布式存储。由于将备份结果发送到基于HDFS技术的存储节点集群进行备份文件的存储,存储控制节点可以根据各存储节点的存储空间进行存储的统筹安排和调节,以分布式存储的方式将备份结果较为均匀地存储到各存储节点,从而可以提高数据库备份过程中存储空间的利用率。

著录项

  • 公开/公告号CN102880531A

    专利类型发明专利

  • 公开/公告日2013-01-16

    原文格式PDF

  • 申请/专利权人 新浪网技术(中国)有限公司;

    申请/专利号CN201210366439.7

  • 申请日2012-09-27

  • 分类号G06F11/14(20060101);G06F17/30(20060101);

  • 代理机构11321 北京市京大律师事务所;

  • 代理人黄启行;方晓明

  • 地址 100080 北京市海淀区北四环西路58号理想国际大厦20层

  • 入库时间 2024-02-19 17:04:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-05

    专利权的转移 IPC(主分类):G06F11/14 专利号:ZL2012103664397 登记生效日:20230423 变更事项:专利权人 变更前权利人:新浪网技术(中国)有限公司 变更后权利人:新浪技术(中国)有限公司 变更事项:地址 变更前权利人:100080 北京市海淀区北四环西路58号理想国际大厦20层 变更后权利人:100193 北京市海淀区东北旺西路中关村软件园二期(西扩)N-1、N-2地块新浪总部科研楼5层501-502室

    专利申请权、专利权的转移

  • 2014-04-16

    授权

    授权

  • 2013-02-27

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20120927

    实质审查的生效

  • 2013-01-16

    公开

    公开

说明书

技术领域

本发明涉及数据库技术,尤其涉及一种数据库备份系统及其备份方法和 从数据库服务器。

背景技术

随着办公自动化和电子商务的飞速发展,企业对信息系统的依赖性越来 越高,数据库作为信息系统的核心担当着重要的角色。尤其在一些对数据可 靠性要求很高的行业如银行、证券、电信等,如果发生意外停机或数据丢失 其损失会十分惨重。因此,有必要对数据库进行备份。这样,在数据库出现 故障遭到损坏后,可以通过备份的数据库进行恢复。

目前,业界对于大数据量的MySQL数据库的备份通常采用xtrabackup热备 方式来解决;采用这种方式进行备份的数据库备份系统架构,如图1所示,包 括:主数据库服务器、从数据库服务器、多个存储服务器。

主数据库服务器也可称为master数据库服务器,从数据库服务器也可称为 slave数据库服务器。

主数据库服务器用于对数据库进行维护,比如增加、修改、删除数据库 中的元素,如数据表、数据表中的数据等。

从数据库服务器用于使用流模式将主数据库服务器中的数据库备份到存 储服务器中。

通常,主数据库服务器可以是多个,每个主数据库服务器中的数据库也 可以是多个,例如,多个主数据库服务器中的数据库共有100个,从数据库服 务器需要将这100个数据库分别备份到10个存储服务器中;平均每个存储服务 器中存储10个数据库备份。

具体地,在从数据库服务器中存储了备份配置表,备份配置表中对应每 个数据库或数据库实例记录了用于存储该数据库备份的存储服务器的地址或 标识;从数据库服务器根据该备份配置表将100个数据库备份分别存储到各存 储服务器中。

然而,本发明的发明人发现,随着时间的推移,基于不同业务的数据库, 或者同一业务的不同数据库的数据量增长并不均匀;有的数据库数据量增长 非常迅猛,有的数据库的数据量增长缓慢;或者,某个时期段中,某个数据 库的数据量增长很大,其它数据库的数据量增长很小;在另一个时期段中, 数据库的数据量增长又发生了改变;这样,导致各存储服务器中的存储量与 流量不均衡:可能会出现有的存储服务器的存储量已经超过90%、接近100%, 有的存储服务器的存储量才达到20%;为高效利用存储服务器的存储空间,维 护人员则不得不通过手动调整、配置备份配置表的方式来使得各存储服务器 的存储量趋于均匀。

由此可以看出,由于现有技术的数据库备份方法中在各存储服务器中进 行分散式存储备份时,存储量与流量不均衡,导致数据库备份过程中存储空 间利用效率低、浪费存储空间;因此,现有技术存在高效利用备份存储空间 的问题。

发明内容

本发明的实施例提供了一种数据库备份系统及其备份方法和从数据库服 务器,用以在数据库备份过程中更为高效地利用存储空间。

根据本发明的一个方面,提供了一种数据库备份系统,包括:

主数据库服务器,用于维护数据库;

从数据库服务器,用于对所述主数据库服务器中的数据库进行备份,得 到备份结果后进行发送;

存储节点集群,其为基于分布式文件系统HDFS技术的节点集群,包括: 存储控制节点和至少一个存储节点,所述存储控制节点用于接收所述从数据 库服务器发送的备份结果,并负责管理各存储节点对所述备份结果的分布式 存储。

其中,所述从数据库服务器具体包括:

备份模块,用于对主数据库服务器中的数据库进行备份得到备份结果;

发送模块,用于将所述备份模块得到的备份结果发送到所述存储节点集 群。

所述备份模块具体包括:

备份文件集单元,用于将所述主数据库服务器中的数据库进行备份后得 到的备份文件集作为所述备份结果;

或者,所述备份模块具体包括:

流模式备份单元,用于对所述主数据库服务器中的数据库进行流模式备 份,并将备份的数据进行输出;

压缩单元,用于将所述流模式备份单元输出的备份的数据进行压缩,并 将最终得到的压缩文件作为所述备份结果。

根据本发明的另一个方面,还提供了一种数据库备份方法,包括:

从数据库服务器对主数据库服务器中的数据库进行备份得到备份结果, 将所述备份结果发送到基于分布式文件系统HDFS技术的存储节点集群;

所述存储节点集群中的存储控制节点在接收所述从数据库服务器发送的 备份结果后,负责管理所述存储节点集群中的各存储节点对所述备份结果的 分布式存储。

较佳地,所述从数据库服务器对主数据库服务器中的数据库进行备份得 到备份结果具体包括:

所述从数据库服务器对主数据库服务器中的数据库进行备份后得到的备 份文件集作为所述备份结果;或者,

所述从数据库服务器对主数据库服务器中的数据库进行流模式备份后再 进行压缩,将得到的压缩文件作为所述备份结果。

较佳地,所述从数据库服务器对主数据库服务器中的数据库进行备份具 体包括:

所述从数据库服务器对所述数据库中的数据,以及所述数据库的配置文 件进行备份。

进一步,所述存储控制节点在接收所述从数据库服务器发送的备份结果 后,还包括:

所述存储控制节点将所述备份结果进行复制,得到至少一份所述备份结 果的副本;并且还负责管理所述存储节点集群中的各存储节点对所述备份结 果的副本的分布式存储。

根据本发明的另一个方面,还提供了一种从数据库服务器,包括:

备份模块,用于对主数据库服务器中的数据库进行备份得到备份结果;

发送模块,用于将所述备份模块得到的备份结果发送到基于分布式文件 系统HDFS技术的存储节点集群;所述存储节点集群中的存储控制节点在接 收所述从数据库服务器发送的备份结果后,负责管理所述存储节点集群中的 各存储节点对所述备份结果的分布式存储。

其中,所述备份模块具体包括:

备份文件集单元,用于将所述主数据库服务器中的数据库进行备份后得 到的备份文件集作为所述备份结果;

或者,所述备份模块具体包括:

流模式备份单元,用于对所述主数据库服务器中的数据库进行流模式备 份,并将备份的数据进行输出;

压缩单元,用于将所述流模式备份单元输出的备份的数据进行压缩,并 将最终得到的压缩文件作为所述备份结果。

进一步,所述服务器还包括:

备份管理模块,用于接收用户输入的设置参数,根据设置参数控制所述 备份模块;

备份进度展示模块,用于从所述备份模块获取进度的相关参数,根据所 述相关参数显示出所述备份模块中的备份进度。

本发明实施例的从数据库服务器由于在对主数据库服务器中数据库进行 备份后,将备份结果发送到基于HDFS技术的存储节点集群进行备份文件的 存储,而基于HDFS技术的存储节点集群中的存储控制节点可以根据存储节 点集群中的各存储节点的存储空间进行存储的统筹安排和调节,以分布式存 储的方式将备份结果较为均匀地存储到各存储节点,从而避免出现有的存储 节点的存储空间紧张,有的存储节点的存储空间得不到利用的现象,避免浪 费存储节点的存储空间,提高数据库备份过程中存储空间的利用率,解决了 分散式备份、存储过程中存储空间利用效率不高、浪费存储空间的问题。

进一步,由于在数据库备份过程中,还对数据库的配置文件也进行了备 份,从而在进行数据库进行恢复还原时,不用重新设置数据库参数,直接用 之前备份的配置文件进行数据库参数的设置。

进一步,由于采用流模式备份、压缩的方案,得到的备份结果为压缩文 件,大大节约了用于存储数据库的备份文件的存储空间。

进一步,存储节点集群中的存储控制节点将备份结果进行复制得到的副 本也存储到存储节点集群,从而提高了备份的可靠性。

附图说明

图1为现有技术的数据库备份系统示意图;

图2为本发明实施例的数据库备份系统示意图;

图3为本发明实施例的数据库备份方法流程图;

图4为本发明实施例的从数据库服务器的内部结构框图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中 列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的 理解,即便没有这些特定的细节也可以实现本发明的这些方面。

本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体, 例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模 块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程 序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序 和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/ 或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算 机之间。

下面结合附图详细说明本发明实施例的技术方案。本发明实施例提供的 数据库备份系统,如图2所示,包括:主数据库服务器201、从数据库服务器 202,以及存储节点集群203。

其中,主数据库服务器201用于维护数据库;例如,主数据库服务器201 中可以对数据库进行编辑、修改、增加、删除数据库元素,包括修改、增加、 删除数据表,或者数据表中的字段,或者数据表中的数据。主数据库服务器 201中维护的数据库可以是多个。

从数据库服务器202用于对主数据库服务器201中的数据库进行备份, 得到备份结果,将备份结果发送到存储节点集群203进行存储,实现对主数 据库服务器201中的数据库的备份。

具体地,从数据库服务器202可以是对主数据库服务器201中的数据库 进行备份后,得到备份文件集;将备份文件集作为备份结果发送到存储节点 集群203进行存储;从数据库服务器202对主数据库服务器201中的数据库 进行备份后得到的备份文件集中可以包括多个数据库的文件,比如数据表、 索引、视图、数据库的配置文件等,而且还可包括这些文件的路径结构。这 样,备份后得到的备份文件集具体可以文件夹的形式进行保存,在该文件夹 中保存了各级子文件夹,以及各级子文件夹中的文件。具体地,从数据库服 务器202可以利用innobackupex脚本对主数据库服务器201中的数据库进行 流模式备份;由于利用innobackupex脚本进行流模式备份的技术为本领域技 术人员所熟知,此处不再详细介绍。

或者,从数据库服务器202对主数据库服务器201中的数据库进行备份、 压缩后,得到压缩文件,将压缩文件作为备份结果发送到存储节点集群203 进行备份存储。具体地,从数据库服务器202对主数据库服务器中的数据库 进行流模式备份后再进行压缩,将得到的压缩文件作为所述备份结果发送到 存储节点集群203进行备份存储。

存储节点集群203中包括存储控制节点211和至少一个存储节点212;存 储节点集群203为基于HDFS(Hadoop Distributed File System,分布式文件系 统)的分布式结构。这里简单介绍一下HDFS:HDFS是一个主从结构的体系, 一个HDFS集群是由一个管理文件的命名空间和调节客户端访问文件的主服 务器和多个数据节点组成,主服务器管理各数据节点的存储。HDFS的内部机 制是主服务器将一个文件分割成一个或多个的块,这些块存储在一组数据节 点中,从而可以合理利用、调配各数据节点的存储空间。HDFS内部的所有 通信都基于标准的TCP/IP协议。

从数据库服务器202通过HDFS技术,将备份文件集,或者压缩文件存 储到存储节点集群203中实现数据库的备份。对于从数据库服务器202而言, 存储节点集群203就像一个传统的分级文件系统,并不需要了解存储节点集 群203中各存储节点212的存储情况。从数据库服务器202可以通过广域网 或局域网来访问存储节点集群203,进行文件的存储与读取。在存储节点集群 203中,存储控制节点211用以负责管理文件系统名称空间和控制外部客户机 的访问。存储控制节点211负责管理各存储节点212的存储:

存储控制节点211在接收到从数据库服务器202发送的备份结果后,负 责管理各存储节点对所述备份结果的分布式存储:存储控制节点211决定将 备份结果具体存储到存储节点集群203中的哪个存储节点212或者哪组存储 节点212,以合理利用、调配各存储节点212的存储空间。

存储控制节点211通过HDFS技术可以避免出现有的存储节点212的存 储空间紧张,有的存储节点212的存储空间得不到利用的现象,使得各存储 节点212存储量与流量较为均匀,在数据库备份的过程中更为高效地利用存 储空间,从而解决了分散式备份、存储过程中存储空间利用效率不高、浪费 存储空间的问题。

本发明实施例提供的一种具体的数据库备份方法流程图,如图3所示, 包括如下步骤:

S301:从数据库服务器202对主数据库服务器中的数据库进行流模式备 份。

具体地,从数据库服务器202以流模式的方式从主数据库服务器获取数 据库中的数据,进一步还可以获取数据库的配置文件;从数据库服务器202 将获取的数据和配置文件进行流模式的备份。该步骤可以通过执行脚本文件 中的相关代码实现,通过可以通过执行innobackupex脚本中的相关代码实现。 对数据库的配置文件的备份,有利于进行数据库的还原。例如,innobackupex 脚本中实现流模式备份的代码如下:

innobackupex                                                --tmpdir=/tmp --defaults-file=/data1/mysql3697/my3697.cnf.bakuse--slave-info  --no-timestamp --parallel=1 --throttle=800 --socket=/tmp/mysql3697.sock        --user=mysqlha --pass=123456--stream=tar./2>>/data1/mysql3697/bak.log

S302:从数据库服务器202在流模式备份后进行压缩操作。

从数据库服务器202以流模式的方式备份主数据库服务器获取数据库中 的数据和配置文件后还进行压缩操作,最终得到压缩文件作为备份结果。压 缩操作也可通过脚本文件中的代码实现:

innobackupex                                                --tmpdir=/tmp --defaults-file=/data1/mysql3697/my3697.cnf.bakuse--slave-info  --no-timestamp --parallel=1  --throttle=800  --socket=/tmp/mysql3697.sock      --user=mysqlha --pass=123456--stream=tar./2>>/data1/mysql3697/bak.log|pbzip2-p4|sudo-u hadoop/usr/local/hadoop/bin/hadoop    fs   -put       - hdfs://marduk21:9000/dbbackup/mysql3697_`date+%m%d_%H%M%S`.tar.bz2

S303:从数据库服务器202将备份结果发送到存储节点集群。

存储节点集群中的存储控制节点在接收到从数据库服务器202发送的备 份结果后,负责管理各存储节点对所述备份结果的分布式存储。

进一步,存储节点集群中的存储控制节点还可在接收到从数据库服务器 202发送的备份结果后,将所述备份结果进行复制,得到至少一份所述备份结 果的副本;并且还负责管理所述存储节点集群中的各存储节点对所述备份结 果的副本的分布式存储。

具体地,存储控制节点根据预先设置的备份总数对该备份结果进行复制, 得到备份结果的副本。例如,设置的备份总数为3,则存储控制节点对备份结 果进行复制,得到该备份结果的2个副本;存储控制节点负责管理各存储节 点对所述备份结果及其副本的分布式存储,即存储控制节点将备份结果以及 副本以分布式方式存储到各存储节点。

在将备份结果存储到存储节点集群后,如果主数据库服务器出现了故障, 导致其中的数据库无法正常运行,其中的数据无法访问、获取,或者丢失, 那么,可以通过服务器或客户端访问存储节点集群的存储控制节点,从存储 控制节点下载备份结果;而存储控制节点由于管理各存储节点,可以将分散 存储于各存储节点上的备份结果汇总后返回给服务器或客户端;服务器或客 户端在接收到备份结果后进行解压,从而实现数据库的恢复。而上述步骤S301 中,由于对数据库的配置文件也进行了备份,那么,在进行数据库的恢复过 程中,可以根据以前备份的配置文件对新恢复的数据库进行参数配置,更方 便维护人员对数据库的恢复。

本发明实施例提供的一种从数据库服务器,其内部结构如图4所示,包 括:备份模块401和发送模块402。

其中,备份模块401用于对主数据库服务器中的数据库进行备份得到备 份结果;

发送模块402用于将备份模块401得到的备份结果发送到基于分布式文 件系统HDFS技术的存储节点集群;所述存储节点集群中的存储控制节点在 接收所述从数据库服务器发送的备份结果后,负责管理所述存储节点集群中 的各存储节点对所述备份结果的分布式存储。

其中,备份模块401具体可以包括:备份文件集单元(图中未标),用于 将所述主数据库服务器中的数据库进行备份后得到的备份文件集作为所述备 份结果。

或者,所述备份模块具体可以包括:流模式备份单元411、压缩单元412。

流模式备份单元411用于对所述主数据库服务器中的数据库进行流模式 备份,并将备份的数据输出到压缩单元412;

压缩单元412用于将流模式备份单元411输出的备份的数据进行压缩, 并输出最终得到的压缩文件作为所述备份结果进行输出。

进一步,从数据库服务器中还可包括:备份管理模块403和备份进度展 示模块404。

备份管理模块403用于接收用户输入的设置参数,根据设置参数控制所 述备份模块;例如,输入的设置参数可以包括:备份方式、时间、模式、周 期、目标、保留周期,并且是否支持年/季/月/周备份等参数。

备份进度展示模块404用于从备份模块403获取进度的相关参数,根据 所述相关参数显示出所述备份模块中的备份进度。例如,备份进度展示模块 404从备份模块403获取流模式备份过程中,已备份的文件占所有需要备份的 文件的百分比;根据该获取的参数以进度条的方式显示备份进度。

本发明实施例的从数据库服务器由于在对主数据库服务器中数据库进行 备份后,将备份结果发送到基于HDFS技术的存储节点集群进行备份文件的 存储,而基于HDFS技术的存储节点集群中的存储控制节点可以根据存储节 点集群中的各存储节点的存储空间进行存储的统筹安排和调节,以分布式存 储的方式将备份结果较为均匀地存储到各存储节点,从而避免出现有的存储 节点的存储空间紧张,有的存储节点的存储空间得不到利用的现象,避免浪 费存储节点的存储空间,提高数据库备份过程中存储空间的利用率,解决了 分散式备份、存储过程中存储空间利用效率不高、浪费存储空间的问题。

进一步,由于在数据库备份过程中,还对数据库的配置文件也进行了备 份,从而在进行数据库进行恢复还原时,不用重新设置数据库参数,直接用 之前备份的配置文件进行数据库参数的设置。

进一步,由于采用流模式备份、压缩的方案,得到的备份结果为压缩文 件,大大节约了用于存储数据库的备份文件的存储空间。

进一步,存储节点集群中的存储控制节点将备份结果进行复制得到的副 本也存储到存储节点集群,从而提高了备份的可靠性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 取存储介质中,如:ROM/RAM、磁碟、光盘等。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号