数据库异地备份系统及方法

文档序号:6482848阅读:272来源:国知局
专利名称:数据库异地备份系统及方法
技术领域
本发明涉及一种数据库全量备份系统,尤其涉及一种数据库异地备份系统及其方 法。
背景技术
数据丢失对大小企业来说都是个恶梦,业务数据与企业日常业务运作唇齿相依, 损失这些数据,即使是暂时性,亦会威胁到企业辛苦赚来的竞争优势,更可能摧毁你公司的 声誉,或可能引致昂贵的诉讼和索偿费用。在震惊世界的美国“9 · 11”恐怖事件发生后,许多人将目光投向金融界巨头摩根 士丹利公司。这家金融机构在世贸大厦租有25层,惨剧发生时有2000多名员工正在楼内 办公,公司受到重创。可是正当大家扼腕痛惜时,该公司宣布,全球营业部第二天可以照常 工作。其主要原因是它在新泽西州建立了灾备中心,并保留着数据备份,从而保障公司全球 业务的不间断运行。灾备的重要性和巨大价值由此可见一斑。所谓数据灾备,就是指建立一个异地的数据系统,该系统是本地关键应用数据的 一个可用复制。在本地数据及整个应用系统出现灾难时,系统至少在本地或者异地保存有 一份可用的关键业务的数据。该数据可以是与本地生产数据的完全实时复制,也可以比本 地数据略微落后,但一定是可用的。采用的主要技术是数据复制,数据传输以及数据存储等 技术。传统的灾备体系(数据备份系统),其体系庞大,结构复杂,且对设备的要求较为 严苛,因而费用昂贵。同时,这些传统的灾备体系均根据各自的数据库设置方式设有专门的 控制系统,且难以与其他现有系统兼容。随着越来越多的传统企业开始考虑使用开源产品降低成本,数据库方面尤其以 MySQL突出,而利用MySQL在企业级的数据库灾备体系中的应用还未能得到充分开发。提到备份,众所周知的利用MySQL所提供的一些工具能够完成简单的备份,但在 涉及到企业级的数据库的灾备体系的建设的问题,却没有任何现有的较为成功的实践先 例。因此,对于利用MySQL的基础,建设企业级数据库备份体系,存在了如下的需求■当你只有几台数据库的时候你只需要一个备份命令或者一个备份工具就可以 完成,■当你有百台左右的数据库时候,你会不得不写脚本来自动帮你完成,■当你有更多数据库,你会发现每天维护这个备份列表,开启和关闭,调整某些备 份将会成为一个瓶颈,此时你需要一个web系统能更简易的系统完成这些日常维护工作,■当业务体系越来越复杂的时候,不同存储引擎,不同的逻辑,不同的备份保留间 隔等各式各样的需求都会使得我们不断在备份系统上扩充功能■当同时维护MySQL和Oracle的备份工作时,此时你需要一个平台能容纳不同的 数据库备份需求,■当这些底层的备份细节都实现后,如何保障本地,本市的灾难发生后依然有备
4份的数据可恢复,这就涉及到如何把本地备份的数据保留倒同城异地,异城,甚至是银行保
存,一整套策略■最后解决灾难的最终依据是灾难后的数据恢复,所以如何制定数据恢复,灾难 演习的策略,并记录经验,上述这些都是普通数据库运行和维护人员在实践过程中所能够普遍遇到的问题, 而将这些普遍的需求进行整合,并有针对性地加以解决,一步步升华,这样从简单的命令行 备份到最终得到一套完整的灾备体系。以上这些从最底层的备份实现细节,到满足各种备 份需求的功能,到容灾恢复策略,一起就构成了灾备体系

发明内容
本发明的目的在于提供一种稳定、可靠且兼容度高的数据库异地备份系统和方 法,其主要利用现有的MySQL数据库管理系统,并且兼容于Oracle数据库管理系统,通过架 设网络平台,采用同城异地、异城异地多种异地备份模式共存,并通过在线、离线存储设备 的联合运用,以及对各种数据平台之间数据传输的合理配置及综合管理来实现。本发明所提供的数据库异地备份系统所采取的技术方案如下本发明提供了一种数据库异地备份系统,包括同城数据库11,第一异城数据库 12,第二异城数据库13,离线磁带机20,财务/银行保管系统30,本地电信机房41,本地网 通机房42 ;所述的本地电信机房41以及本地网通机房42与同城数据库11连接,备份本地数 据;所述的同城数据库11,第一异城数据库12,第二异城数据库13依次连接,互相备 份异地数据;所述的同城数据库11,第一异城数据库12,第二异城数据库13均与离线磁带机20 连接,定期备份离线数据;所述的同城数据库11,第一异城数据库12,第二异城数据库13均包括有各自的脚 本模块10,各脚本模块10之间互相连接,传输备份进行过程所需的参数、变量。上述的数据库异地备份系统,其中,每个脚本模块10连接有一个管理端,通过管 理端的输入装置,手动设定备份系统的指令。上述的数据库异地备份系统,其中,所述的同城数据库11通过网络将备份数据传 输至第一异城数据库12 ;第一异城数据库12通过网络将备份数据传输至第一异城数据库 13 ;第二异城数据库13通过网络将备份数据传输至同城数据库11,形成循环异地数据备份 体系。上述的数据库异地备份系统,其中,所述离线数据存储于离线磁带机20的离线磁 带中,所述离线磁带存放于所述财务/银行保管系统中。上述的数据库异地备份系统,其中,所述的本地电信机房41与本地网通机房42均 与同城数据库11分别设立在不同地点。本发明还提供了一种数据库异地备份系统的备份方法,其中,在异城异地的数据 库机房之间,每周传输一次前一天的数据至另一个异城异地数据库机房;异城异地数据库机房也在其所在的城市实现本地备份,传输备份数据值数据库机房所在城市的本地备份机房。本发明还提供了一种数据库异地备份系统的备份方法,其中,所述本地电信机房 41及本地网通机房42,与所述同城数据库11进行本地备份,且备份采用交叉备份策略,控 制连续的两次备份分别备份在不同的本地机房上。本发明还提供了一种数据库异地备份系统的备份方法,其中,本地备份的周期为 每小时进行一次增量备份,每隔一天进行一次全量备份。本发明还提供了一种数据库异地备份系统的备份方法,其中,包括如下步骤步骤500,开始步骤;步骤501,设定公共变量,包括主机列表,清楚日期,备份日期;步骤502,运行备份地址脚本;步骤503,设定备份地址;步骤507,开始清除过期备份进程。本发明还提供了一种数据库异地备份系统的备份方法,其中,当步骤502中判断 备份地址脚本中备份地址2不存在时,设定备份地址2为目标备份地址,并清除备份地址1 的文件;当备份地址2存在时,选择备份地址1为目标备份地址并清除备份地址2的文件。本发明的数据库异地备份系统及方法能够提供一种宏观的数据灾备体系的架设 方法,且其具有较强的适应性能,可以广泛应用于各种数据库备份系统中。尤其是通过同城 异地、异城异地、离线磁带等多种异地备份手段,建立多层分级的备份系统,能够有效的提 高整个数据库系统的容灾强度,即使在发生各种灾害事件的情况下,也能保障数据库可以 恢复到一定时间之前的状态,保障了数据的安全性和稳定性。


图1为本发明的数据库异地备份系统的结构模块图;图2为本发明的数据库异地备份系统的主要流程图;图3为本发明的数据库备份系统的MySQL备份流程图;图4为本发明的数据库备份系统的Oracle备份流程图;图5为本发明的数据库异地备份系统的详细流程图;图6为本发明的数据库异地备份系统的连接模块图。
具体实施例方式如图1所示,为本发明的数据库备份系统的一种优选的网络架构模块图。本发明 的数据库备份系统包括同城数据库11,异城数据库12,异城数据库13,离线磁带机20,财务 /银行保管系统30,本地机房41 (本地电信机房),本地机房42 (本地网通机房)。其中,同 城数据库11与本地备份机房41和本地备份机房42相互网络连接,将数据库上的备份数据 传输至本地备份机房,即完成本地备份流程。本地备份可以定制备份周期间隔,例如设定每 隔半小时、1小时或2小时等进行增量备份,每天或者每隔一天进行全量备份,将备份数据 储存在本地机房上。所述备份采用交叉备份策略,即例如,第一次数据备份在本地备份机房 41上,则第二次数据备份在另一个本地备份机房42上,第三次再备份至本地备份机房41 上,如此循环交叉,以最大限度地利用备份机房的存储能力。
6
由于本地服务器的数据交换频繁,其需存储的数据量随着时间推移会不断增长,因此需要采取上述的本地备份流程,将同城本地数据库机房11上的备份数据传输至一个 同城的本地备份机房41或42,优选的该数据库机房11与本地备份机房41、42架设在不同 的地方,即所谓的“同城异地”,主要是为了便于放置数据库机房与本地备份机房不受同样 的外在条件影响,如网络故障、供电故障、通讯电缆损坏等各种天灾人祸,从而提高了备份 机房的容灾强度,不会因为本地数据库机房的故障而导致所有备份机房的数据受到损害而 失去了备份的价值。此外,在异城异地的数据库机房之间,也需要进行异地备份,例如将同城数据库 机房11的备份数据,设定一定周期,传输至异城异地数据库机房12。同样,异城异地数据库 机房12也能够在其所在的城市实现本地备份,传输备份数据值数据库机房12所在城市的 本地备份机房(图中未示出),其结构运行模式与同城数据库机房11和本地服务器41,42 之间相类似。所述的备份周期,应大于本地全量备份的周期,如每周1次或2次实施异地备 份。同时,异城异地数据库机房12也可设置按照一定周期向另一个异城异地数据库机房13 进行备份数据传输,从而动态地形成了数据异地备份。同理,已成异地数据库机房13也可 将其备份数据再传送至同城异地数据库机房11,构成一个循环。同时,各个数据库机房11,12,13,按照一定的周期,将其备份数据集中传输给离线 磁带机20进行离线备份。该周期需大于异地备份周期,可设定为每2周或每隔1个月进行 一次离线备份。离线备份后的数据存储于离线磁带上,所述离线磁带可托付财务/银行保 管系统存放。在上述的架构中,各数据库机房的数量并不限定于三个,可根据实际情况架设在 多个城市的数据库机房之间,如五个或者更多。且本地服务器在图1中仅根据现有的两种 主要的网络供应商分为本地电信机房41和本地网通机房42,但在实际应用中还可以针对 每个供应商提供更多的本地机房,并且在提供网络资源共享的企业级的数据库中,每个机 房所提供的主机的数量较多,常常达到几十台甚至上百台,并且根据实际情况与各种网络 供应商均设置有特定的服务器以供其使用。如图2所示,为本发明的数据库备份系统所采用的备份步骤的详细流程图,包括 如下各个步骤步骤100,备份流程开始。步骤101,初始参数设定,包括MySQL备份参数及Oracle备份参数。步骤102,备份控制文件生成备份进程。步骤103,生成备份控制文件共有参数。步骤104,查询备份控制文件的共有参数是否存在。如不存在,即共有参数生成失 败,则进入步骤160,备份流程结束;如存在,则进入下一步骤105。步骤105,查询MySQL及Oracle备份命令是否存在。若不存在,即所述参数初始化 失败或有其他故障,则进入步骤160 ;若存在,则执行备份命令,并进入下一步骤106。步骤106,去除备份文件中的空格。步骤107,读取一行控制文件记录。步骤108,生成备份参数。步骤109,获取远程主机名。如未能成功获取,则进入步骤160 ;获取成功后进入步骤 110。步骤110,获取该远程主机机器的当前ROLE (任务)。步骤120,执行ROLE (任务)。随后分别进入MySQL进程和Oracle进程。步骤121,MySQL进程第一步,获取MySQL备份参数。步骤122,导入MySQL备份脚本。步骤123,执行MySQL备份脚本。步骤131,Oracle进程第一步,获取Oracle备份参数。步骤132,导入Oracle备份脚本。步骤133,执行Oracle备份脚本。步骤140,当MySQL和Oracle进程都完成后,读取下一行配置信息。步骤150,判断是否为最后一行。如为最后一行,则进入步骤160 ;如不是最后一 行,则回到步骤107并继续执行后续操作。步骤160,备份流程结束。如图3所示,为本发明的数据库备份系统的MySQL备份流程图,其具体包括如下步 骤步骤200,MySQL备份流程开始。步骤201,初始参数设定。步骤202,遍历服务器上的实例。步骤203,根据SOCK(端口)到监控机取得备份信息,可包括相应的第一备份地址 和第二备份地址。步骤204,判断第二备份地址是否设定。假如已设定,则进入步骤205 ;否则,进入 步骤208。步骤205,由于第二备份地址已设定,对比上次备份地址与第一备份地址是否一 致。如不一致,则进入步骤206 ;如一致,则进入步骤207。步骤206,经判断上次备份地址与第一备份地址不一致,则将此次备份地址仍设为 第一备份地址,然后进入步骤209。步骤207,经判断上次备份地址与第一备份地址一致,则将此次备份地址设为第二 备份地址,然后进入步骤209。步骤208,经判断第二备份地址未设定,则将备份地址设为第一备份地址。步骤209,生成此次备份信息。步骤210,备份目录是否存在。若备份目录不存在,则进入步骤211 ;若备份目录存 在,则进入步骤213。步骤211,创建备份目录。若备份目录创建失败,进入步骤212 ;否则,进入步骤 213。步骤212,备份目录创建失败,输出错误信息,停止此次备份,进入步骤240。步骤213,判断执行MySQL备份管理命令,如MySQL,MySQLadmin以及MySQLdump 等工具。如无法执行则进入步骤214 ;否则,进入步骤215。步骤214,由于判断MySQL备份管理命令无法执行,输出错误信息停止此次备份, 并进入步骤240。
8
步骤215,当MySQL管理命令执行后,选择备份方式、备份数据库、目的地址、放置 目录等信息,可由备份管理系统直接指定默认信息或者通过外部输入信息确定。步骤216,判断是否备份所有数据库。根据实际输入情况,判断进入何种备份模式, 当输入一databases命令时,进入步骤217 ;当输入-A命令时,进入步骤218。
步骤217,根据选定的数据库,进行各个数据库的数据备份。随后进入步骤220。步骤218,对所有数据库进行备份,之后进入步骤220。步骤220,选择具体备份方式。同时列出各分支供选择,包括步骤221-226供6中 具体备份方式可平等选择。步骤221,S_INN0DB_DUMP 模式,为采用 INNODB 工具及 MySQL SlaveInnoDB DUMP 策略的备份流程。完成备份后进入步骤230。步骤222,M_INN0DB_DUMP 模式,为采用 INNODB 工具及 MySQL MasterInnoDB DUMP 策略,完成备份后进入步骤230。步骤223,T_STRUCTURE_DUMP 模式,为采用 MySQL STRUCTUREDUMP 策略的备份流 程。完成备份后进入步骤230。步骤224,S_MYISAM_TAR 模式,为采用 MYISAM 工具及 MySQL SlaveMyISAM TAR 策 略的备份流程。完成备份后进入步骤230。步骤225,S_MYISAM_DUMP 模式,为采用 MYISAM 工具及 MySQL SlaveMyISAM DUMP 策略的备份流程。完成备份后进入步骤230。步骤226,M_ARCHIVE_TAR模式,为采用 MySQL Master ARCHIVE TAR策略的备份流 程。完成备份后进入步骤230。步骤230,判断是否存在未遍历的S0CK,若存在,则返回步骤203继续操作;若不存 在,则进入步骤240。步骤240,流程结束。如图4所示,为本发明的数据库备份系统的Oracle备份流程图,具体包括如下步
马聚ο步骤300,Oracle备份流程开始。对应于Oracle备份命令。步骤301,获取环境变量。步骤302,判断第二备份地址是否存在。若存在,则进入步骤303 ;若不存在,进入 步骤307。步骤303,当判断第二备份地址存在,则将上次备份地址与第一备份地址进行比 较。当上次备份地址等于第一备份地址时,进入步骤304 ;当上次备份地址不等于第一备份 地址时,进入步骤305。步骤304,由于上次备份地址与第一备份地址相等且第二备份地址存在,根据交叉 备份的原则,将备份存至第二备份地址。随后进入步骤306。步骤305,由于上次备份地址与第一次备份地址不同,则将备份存入第一备份地 址。随后进入步骤306。步骤306,将此次备份地址存为“上次备份地址”,供后续循环比较之用。进入步骤 307。步骤307,当第二备份地址不存在或者已根据第二备份地址完成备份之后,即执行获取变量步骤。步骤308,判断远程备份目录是否存在。若不存在,则进入步骤309 ;若存在,则进 入步骤312。步骤309,由于远程备份目录不存在,则创建所述远程备份目录。进入步骤310。步骤310,判断目录创建是否正常。若异常,则进入步骤311 ;若正常,则进入步骤 312。步骤311,当判断目录创建异常,则输出错误信息,并进入步骤330。步骤312,输入参数,包括备份方式、备份数据库、目的地址,放置目录等,并检查参 数有效性。若输入参数无效,则进入步骤313。若输入参数有效,则进入步骤314。步骤313,由于输入参数检查无效,故输出错误信息后,进入步骤330。步骤314,输入参数有效,则根据输入参数开始进行备份,生成备份文件。步骤315,传输所述的备份文件。步骤316,传输情况判断。若传输情况发生异常,则进入步骤317 ;若传输情况正 常,则继续进入步骤318。步骤317,当判断传输情况异常,产生错误报告信息,并输出该错误信息。随后进入 步骤330。步骤318,检查备份文件是否存在。若备份文件不存在,则进入步骤319 ;若备份文 件存在,继续进入步骤320。步骤319,备份文件不存在,则生成相应错误报告信息,并传输该错误信息。随后进 入步骤330。步骤320,计算备份大小。步骤321,显示计算出的备份大小,并选择采用何种方式进行备份。若选择“自动” 备份,则进入步骤322 ;若选择“手动”备份,则进入步骤323。步骤322,执行自动备份操作,更新自动备份信息。进入步骤324。步骤323,进入手动备份操作等待过程,根据相应的后续命令执行操作。更新自动 备份信息。进入步骤324。步骤324,完成备份,清楚备份文件。步骤325,备份过程结束。如图5所示,为本发明的数据库异地备份系统的详细流程图,其具体包括如下步 骤步骤500,开始步骤,执行异城异地备份指令。步骤501,设定公共变量,包括主机列表,清楚日期,备份日期。步骤502,运行备份地址脚本。判断备份地址2文件是否存在,如备份地址2文件 不存在,则进入步骤503 ;如备份地址2文件存在,则进入步骤505。步骤503,设定备份地址2为目标备份地址。步骤504,清除备份地址1文件。步骤505,清除备份地址2文件。步骤506,设定备份地址1为目标备份地址。步骤507,开始清除过期备份进程。
如图6所述,为本发明的数据库异地备份系统的连接模块说明图,其中包括了同 城数据库11,异城数据库12,异城数据库13,其中还包括有异城异地数据库备份脚本模块 10。该脚本模块设定在相应的异地数据库中,且通过执行异地备份系统的详细步骤,来实现 数据库系统的异地自动备份。各异地数据库12,13以及同城数据库11的之间通过通讯网 络连接,以传输备份数据。而各脚本模块10之间相互连接并传输备份地址或具体备份脚本 命令等信息,在备份实际过程开始前,先进行前期连接,以确认具体备份进程。脚本模块还与一管理端连接(图中未示出),可以通过管理端输入的指令来实现 手动备份。当需要设定条件进行备份时,则可通过管理端预设的参数和变量来控制和调节 整个备份进程的备份方式、选择目标地址、备份文件大小、日期以及备份时间,以及自动备 份和有条件的备份。
上述,仅为本发明的优选的实施方式,并不用于限定本发明的保护范围,根据本领 域的技术常识,结合本领域现有的技术,对上述内容所做的显而易见的修改和变化,其也应 当落入本发明的保护范围。
权利要求
一种数据库异地备份系统,其特征在于,包括同城数据库(11),第一异城数据库(12),第二异城数据库(13),离线磁带机(20),财务/银行保管系统(30),本地电信机房(41),本地网通机房(42);所述的本地电信机房(41)以及本地网通机房(42)与同城数据库(11)连接,备份本地数据;所述的同城数据库(11),第一异城数据库(12),第二异城数据库(13)依次连接,互相备份异地数据;所述的同城数据库(11),第一异城数据库(12),第二异城数据库(13)均与离线磁带机(20)连接,定期备份离线数据;所述的同城数据库(11),第一异城数据库(12),第二异城数据库(13)均包括有各自的脚本模块(10),各脚本模块(10)之间互相连接,传输备份进行过程所需的参数、变量。
2.如权利要求1所述的数据库异地备份系统,其特征在于,每个脚本模块(10)连接有 一个管理端,通过管理端的输入装置,手动设定备份系统的指令。
3.如权利要求1所述的数据库异地备份系统,其特征在于,所述的同城数据库(11)通 过网络将备份数据传输至第一异城数据库(12);第一异城数据库(12)通过网络将备份数 据传输至第一异城数据库(13);第二异城数据库(13)通过网络将备份数据传输至同城数 据库(11),形成循环异地数据备份体系。
4.如权利要求1所述的数据库异地备份系统,其特征在于,所述离线数据存储于离线 磁带机(20)的离线磁带中,所述离线磁带存放于所述财务/银行保管系统中。
5.如权利要求1所述的数据库异地备份系统,其特征在于,所述的本地电信机房(41) 与本地网通机房(42)均与同城数据库(11)分别设立在不同地点。
6.如权利要求1-5中任意一项所述的数据库异地备份系统的备份方法,其特征在于, 在异城异地的数据库机房之间,每周传输一次前一天的数据至另一个异城异地数据库机 房;异城异地数据库机房也在其所在的城市实现本地备份,传输备份数据值数据库机房所 在城市的本地备份机房。
7.如权利要求6所述的备份方法,其特征在于,所述本地电信机房(41)及本地网通机 房(42),与所述同城数据库(11)进行本地备份,且备份采用交叉备份策略,控制连续的两 次备份分别备份在不同的本地机房上。
8.如权利要求7所述的备份方法,其特征在于,本地备份的周期为每小时进行一次增 量备份,每隔一天进行一次全量备份。
9.如权利要求5所述的备份方法,其特征在于,包括如下步骤步骤500,开始步骤;步骤501,设定公共变量,包括主机列表,清楚日期,备份日期;步骤502,运行备份地址脚本;步骤503,设定备份地址;步骤507,开始清除过期备份进程。
10.如权利要求9所述的备份方法,其特征在于,当步骤502中判断备份地址脚本中备 份地址2不存在时,设定备份地址2为目标备份地址,并清除备份地址1的文件;当备份地址2存在时,选择备份 地址1为目标备份地址并清除备份地址2的文件。
全文摘要
本发明提供了一种数据库异地备份系统,其包括同城数据库,第一异城数据库,第二异城数据库,离线磁带机,财务/银行保管系统,本地电信机房,本地网通机房。分别实现本地备份、异地备份、离线备份。此外各异城数据库(12),第二异城数据库均包括有各自的脚本模块,各脚本模块之间互相连接,传输备份进行过程所需的参数、变量。本发明的数据库异地备份系统及方法能够提供一种宏观的数据灾备体系的架设方法,且其具有较强的适应性能,可以广泛应用于各种数据库备份系统中,并且通过本城异地、异城异地的多层分级的备份系统的建立,能够有效的提高整个数据库系统的容灾强度,保障了数据的安全性和稳定性。
文档编号G06F11/14GK101957783SQ20091005469
公开日2011年1月26日 申请日期2009年7月13日 优先权日2009年7月13日
发明者周枫, 姚艳庆, 徐景春, 谭俊青 申请人:升东网络科技发展(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1