数据库备份恢复方法和装置制造方法及图纸

技术编号:4053101 阅读:244 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据库备份恢复方法和装置,包括:备份旧版本数据库,其中,保存旧版本数据库的表结构;清空新版本数据库的所有表的记录,并获取新版本数据库的表结构;比较旧版本数据库的表结构与新版本数据库的表结构,确定表结构发生变化;根据变化的类型以及对应的预设策略,将旧版本数据库的备份恢复到新版本数据库中。本发明专利技术实现了数据库备份恢复的前向兼容。

【技术实现步骤摘要】

本专利技术涉及数据库领域,具体而言,涉及一种数据库备份恢复方法和装置
技术介绍
现有技术中,数据库结构设计(包括表结构和数据内容)往往随着功能模块的变 化而变迁,各个版本之间的差异可能较大。新版本和旧版本之间由于表结构和数据内容不 兼容,现有的数据库在备份恢复时,所以不能够将备份的旧版本的数据库恢复到数据库结 构设计发生变化的新版本的数据库中。图1示出了现有技术中的数据库备份恢复方法的流程图,通常采用的处理流程如 下(1)启动旧版本数据库;(2)启动新版本数据库;(3)清空新版本数据库中所有表的记录;(4)人工判断每一个新旧表格是否发生变化;(5)对于没有变化的表格,采用数据库管理系统提供的数据迁移工具,将旧数据库 中表结构相同的每一个表的记录迁移到新数据库中;(6)采用数据库管理系统提供的数据迁移工具,对于旧数据库中表结构不相同的 每一个表,判断哪些列需要舍弃,哪些列需要进行数据类型转换等特殊策略,选择对应的操 作类型后,将记录迁移到新数据库中;(7)如果某些表的记录内容还需要进行特殊修改才能满足新版本程序的要求,则 可以执行一系列sql语句,或者执行一些程序来进行处理;数据恢复结束。上述步骤是个非常繁琐的过程,尤其是第(4)、(5)、(6)三步,在表格比较多的情 况,操作起来是非常耗时的事情。
技术实现思路
本专利技术旨在提供数据库备份恢复方法和装置,以实现数据库备份恢复的前向兼容。根据本专利技术的一个方面,提供了一种数据库备份恢复方法,包括备份旧版本数据 库,其中,保存旧版本数据库的表结构;清空新版本数据库的所有表的记录,并获取新版本 数据库的表结构;比较旧版本数据库的表结构与新版本数据库的表结构,确定表结构发生 变化;根据变化的类型以及对应的预设策略,将旧版本数据库的备份恢复到新版本数据库 中。根据本专利技术的另一方面,提供了一种数据库备份恢复装置,包括备份模块,用于 备份旧版本数据库,其中,保存旧版本数据库的表结构;获取模块,用于清空新版本数据库 的所有表的记录,并获取新版本数据库的表结构;比较模块,用于比较旧版本数据库的表结构与新版本数据库的表结构,确定表结构发生变化;恢复模块,用于根据变化的类型以及对 应的预设策略,将旧版本数据库的备份恢复到新版本数据库中。本专利技术通过分析表结构的变化,解决了现有技术不能够将备份的旧版本的数据库 恢复到数据库结构设计发生变化的新版本的数据库中的问题,进而实现了数据库备份恢复 的前向兼容。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中图1示出了现有技术中的数据库备份恢复方法的流程图;图2示出了根据本专利技术实施例的数据库备份恢复方法的流程图;图3示出了根据本专利技术优选实施例的数据库备份恢复方法的流程图;图4示出了根据本专利技术实施例的数据库备份恢复装置的示意图。具体实施例方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。数据库通常包括多个数据表,每个数据表由多个列构成,每列都具有数据结构。本 专利技术的实施例以该数据库为基础予以实施。图2示出了根据本专利技术实施例的数据库备份恢复方法的流程图,包括步骤S10,备份旧版本数据库,其中,保存旧版本数据库的表结构,例如在旧版本中 备份所需的表结构信息、表数据以及当前版本号,用文件形式保存起来;步骤S20,清空新版本数据库的所有表的记录,并获取新版本数据库的表结构;步骤S30,比较旧版本数据库的表结构与新版本数据库的表结构,确定表结构发生 变化;步骤S40,根据变化的类型以及对应的预设策略,将旧版本数据库的备份恢复到新 版本数据库中。该实施例通过分析表结构的变化,解决了现有技术不能够将备份的旧版本的数据 库恢复到数据库结构设计发生变化的新版本的数据库中的问题,进而实现了数据库备份恢 复的前向兼容。优选地,确定表结构发生变化包括确定新版本数据库的表结构发生了以下至少一 种变化(1)新版本数据库中删除了表;(2)新版本数据库中增加了表;(3)新版本数据库中的表改名;(4)新版本数据库中的表删除了列;(5)新版本数据库中的表增加了列;(6)新版本数据库中的表中的列改名;(7)新版本数据库中的表中的列改变了顺序;(8)新版本数据库中的表中的列改变了数据类型。以上几种数据库结构的变化,可能单独出现,也可能组合在一起出现,比如新版本 中可能出现这种情形某个表A改名为表B,同时表B里面的某个列a也被删除。另外,以 上的表或者列并不限定于一个或者多个。本实施例通过大量地分析研究,最后对各种数据库结构变化归纳为以上八类。以 上八类变化,通过表结构的比较,可以很容易地识别。优选地,对应的预设策略包括以下至少一项(1)对于变化1,略过对删除的表的恢复;(2)对于变化2,略过对新增的表的恢复;(3)对于变化3,将备份中被改名的表恢复到新版本数据库中改名的表;(4)对于变化4,略过对删除的列的恢复;(5)对于变化5,如果预设了默认值,则将新增的列设置为默认值,如果没有预设 默认值,则将新增的列设置为NULL值,或者指示的值;或者略过对新增的列的恢复;(6)对于变化6,将备份中被改名的列恢复到新版本数据库中改名的列;(7)对于变化7,按照新的顺序,将备份中的列恢复到新版本数据库中的列;(8)对于变化8,将备份中的列中的值转换为新的数据类型,然后恢复到新版本数 据库中的列中,如果无法转换,则将新版本数据库中的列恢复为指定的值。通过执行上述兼容处理,就可以适应新老版本数据库的结构设计的所有八种变 化,从而很好地实现了数据库备份恢复的前向兼容,能够应用于绝大多数场景。优选地,本方法还包括预先建立XML文件,通过解析XML文件,执行将旧版本数据 库的备份恢复到新版本数据库中,其中,XML文件中包括执行预设策略3、5、6、8的至少一项 的规则。预设策略3、5、6、8比较特殊,需要灵活多变地适应用户的设置,所以不适合直接固 化到程序中。而XML文件可以很容易地由用户来编辑,所以适合配置预设策略3、5、6、8的 规则。优选地,XML文件中还包括以下至少一项规则列修改规则指示将新版本数据库中指定的列的值设置成默认值;列删除规则指示将新版本数据库中指定的列的值设置成NULL值;表修改规则指示对新版本数据库中的表中的多个列采用列修改规则和列删除规 则的组合;后处理规则指示在已经将备份恢复到新版本数据库的基础上,通过执行SQL语 句或专门的代码段以修改新版本数据库中的数据。在某些场景下,新版本数据库的结构也许没有变化,但是用户期望能自由地设置 新版本数据库中表的内容,即不希望将备份中的内容直接恢复到新版本数据库中,而是可 以在恢复过程中改变内容。而本实施例通过在XML文件中配置上述的规则,很好地满足了 用户的上述需求。优选地,本方法还包括预先建立执行程序,通过执行程序直接执行预设策略1、2、 4、7的至少一项的规则。因为预设策略1、2、4和7比较简单,不需要用户进行配置,所以可 以直接写入程序,以减轻用户操作负担和加快执行速度。优选地,通过bcp (block copy,块拷贝)方式将旧版本数据库本文档来自技高网...

【技术保护点】
一种数据库备份恢复方法,其特征在于,包括:备份旧版本数据库,其中,保存所述旧版本数据库的表结构;清空新版本数据库的所有表的记录,并获取所述新版本数据库的表结构;比较所述旧版本数据库的表结构与所述新版本数据库的表结构,确定表结构发生变化;根据变化的类型以及对应的预设策略,将所述旧版本数据库的备份恢复到所述新版本数据库中。

【技术特征摘要】

【专利技术属性】
技术研发人员:龙涛
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1