数据库中表的恢复方法、系统及具有该系统的服务器技术方案

技术编号:14509856 阅读:79 留言:0更新日期:2017-02-01 02:27
本发明专利技术提供一种数据库中表的恢复方法、系统及具有该系统的服务器,表的恢复方法包括:生成用以创建辅数据库的参数文件,以创建辅数据库;恢复辅数据库的系统表空间;打开辅数据库,查询需恢复的表所在的表空间,并判断表空间是否在辅数据库的系统表空间中;若是,将需恢复的表从辅数据库导出,并将导出的表导入主数据库中;若否,表示需恢复的表所在的表空间在辅数据库的用户表空间中,恢复需恢复的表所在的用户表空间,并将需恢复的表从辅数据库导出,并将导出的表导入主数据库中。本发明专利技术支持跨服务器的表恢复,达到减少对生产服务器的影响,降低了恢复的风险的目的,提高了恢复的速度。

【技术实现步骤摘要】

本专利技术属于结构化数据保护领域,涉及一种恢复方法和系统,特别是涉及一种数据库中表的恢复方法、系统及具有该系统的服务器
技术介绍
如果用户因为误操作DELETE或者UPDATE了数据并最终提交,我们必须通过闪回区或者备份来纠正这些错误。闪回区技术有自身的局限性,如只能恢复最近一段时间内的数据,可以闪回到过去多长时间取决于系统中undo数据量的大小等。当闪回区功能不能满足需求时,只是通过恢复备份集的方法恢复数据。Oracle10g之后,oracle提供表空间级别的时间点恢复功能。为了恢复表空间里面的某几张表,而去恢复整个表空间,不是一个很有效的方式,因为会影响到表空间内的其他对象。Oracle12c之后才提供表时间点的恢复功能。该功能不能恢复sys用户创建的对象,不能恢复表空间system,sysaux里面的对象,并且需要主库和辅助库存在于同个服务器内。辅助库会占用一定的内存和磁盘空间。为了恢复几张表,万一耗尽生产服务器的计算机资源,影响了正常的生产,带来的影响会更大。Oracle12c的表恢复,是基于主库的状态设置恢复到的时间点的。如果主库resetlogs之后,表恢复的时间点是只能从resetlogs开始,到当前时间。也就说,主库的状态会影响表的恢复。因此,如何提供一种数据库中表的恢复方法、系统及具有该系统的服务器,以解决现有技术中表恢复影响主库状态,造成耗尽计算机资源,影响正常生产等缺陷,实以成为本领域从业者亟待解决的技术问题。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种数据库中表的恢复方法、系统及具有该系统的服务器,用以解决现有技术中表恢复影响主库状态,造成耗尽计算机资源,影响正常生产的问题。为实现上述目的及其他相关目的,本专利技术一方面提供一种数据库中表的恢复方法,用以恢复主数据库中的表,所述数据库中表的恢复方法包括以下步骤:生成用以创建辅数据库的参数文件,以创建所述辅数据库;恢复所述辅数据库的系统表空间;打开所述辅数据库,查询需恢复的表所在的表空间,并判断所述表空间是否在所述辅数据库的系统表空间中;若是,将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中;若否,表示需恢复的表所在的表空间在所述辅数据库的用户表空间中,恢复需恢复的表所在的用户表空间,并将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中。于本专利技术的一实施例中,所述主数据库和辅数据库包括存储表的数据文件,记录所述数据文件的位置的控制文件,和/或记录所述控制文件的参数文件;在所述生成用以创建辅数据库的参数文件的步骤之前,所述数据库中表的恢复方法还包括分析所述主数据库的参数文件。于本专利技术的一实施例中,所述辅数据库的参数文件包括用以与所述主数据库的数据库名称相同以使用所述主数据库所产生的备份片的数据库名称,用以与所述主数据库在进程区分的标识,和/或用所述控制文件;所述生成用以创建辅数据库的参数文件的步骤还包括在所述辅数据库的文本文件中配置所述参数文件。于本专利技术的一实施例中,所述辅助数据库的启动过程包括用以加载参数文件的未挂载状态,用以根据记录所述控制文件的位置,加载所述控制文件的挂载状态,及用以挂载所述数据文件的打开状态;所述恢复所述辅数据库的系统表空间的步骤包括:将所述辅数据库启动到所述未挂载状态;还复所述控制文件;将所述辅数据库启动到所述挂载状态;重命名所述系统表空间中在线日志的位置;还原所述系统表空间中的数据文件,恢复所述数据文件中的表,并转入所述打开所述辅数据库,查询需恢复的表所在的表空间,并判断所述表空间是否为所述辅数据库的系统表空间的步骤。于本专利技术的一实施例中,若恢复的表所在的表空间为用户表空间时,所述恢复需恢复的表所在的用户表空间的步骤包括:关闭所述辅数据库,并将所述辅数据库启动到挂载状态;重命名所述用户表空间的位置;还原所述表所在的用户表空间,并恢复所述用户表空间中的表,转入所述将需恢复的表从所述辅数据库导出的步骤。于本专利技术的一实施例中,通过所述辅数据库的系统视图查询需恢复的表所在的表空间。于本专利技术的一实施例中,通过所述辅数据库提供的转储工具将需恢复的表从所述辅数据库导出;若所述辅数据库进行跨服务器表恢复,通过所述辅数据库提供的支持远程导入工具将导出的表导入所述主数据库中。本专利技术另一方面提供一种数据库中表的恢复系统,所述数据库的表恢复系统包括:创建模块,用于生成用以创建辅数据库的参数文件,以创建所述辅数据库;主恢复模块,用于恢复所述辅数据库的系统表空间;处理模块,用于打开所述辅数据库,查询需恢复的表所在的表空间,并判断所述表空间是否在所述辅数据库的系统表空间中;若是,将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中;若否,表示需恢复的表所在的表空间在所述辅数据库的用户表空间中,令次恢复模块恢复需恢复的表所在的用户表空间,并将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中。于本专利技术的一实施例中,所述处理模块通过所述辅数据库提供的转储工具将需恢复的表从所述辅数据库导出;若所述辅数据库进行跨服务器表恢复,通过所述辅数据库提供的支持远程导入工具将导出的表导入所述主数据库中。本专利技术又一方面提供一种服务器,所述服务器包括:如权利要求8-9中任一项所述的数据库中表的恢复系统。如上所述,本专利技术的数据库中表的恢复方法、系统及具有该系统的服务器,具有以下有益效果:第一,通过创建一个与主数据库状态无关的辅数据库,支持Oracle10g之后版本的表恢复,可以恢复主库resetlogs之前的表的信息,也可以恢复sys的对象。第二,辅助数据库可以与主库在不同的服务器上,支持跨服务器的表恢复,达到减少对生产服务器的影响,降低了恢复的风险的目的。第三,不同于市面上使用的的备份恢复软件,由于市面上使用的的备份恢复软件是使用duplicate命名创建辅助数据库的。而duplicate命令会强制数据库对表空间进行自包含检测,如果不满足自包含,恢复会失败。因此,为了满足表空间自包含,会恢复与表无关的表空间。恢复的数据量变大,恢复时间变长,还有辅助数据库库占用的磁盘空间会变多。本专利技术无需恢复与表无关的表空间,相对于现有备份恢复软件恢复数据量不大,并提高了恢复速度。附图说明图1显示为本专利技术的数据库中表的恢复方法于一实施例中的流程示意图。图2显示为本专利技术的数据库中表的恢复方法中步骤S3的流程示意图。图3显示为本专利技术的数据库中表的恢复方法中步骤S6的流程示意图。图4显示为本专利技术的数据库中表的恢复系统于一实施例中的原理结构示意图。图5显示为本专利技术的服务器于一实施例中的原理结构示意图。元件标号说明1数据库中表的恢复系统11分析模块12创建模块13主恢复模块14处理模块15次恢复模块2服务器S1~S7步骤S31~S35步骤S61~S63步骤具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,本文档来自技高网...

【技术保护点】
一种数据库中表的恢复方法,其特征在于,用以恢复主数据库中的表,所述数据库中表的恢复方法包括以下步骤:生成用以创建辅数据库的参数文件,以创建所述辅数据库;恢复所述辅数据库的系统表空间;打开所述辅数据库,查询需恢复的表所在的表空间,并判断所述表空间是否在所述辅数据库的系统表空间中;若是,将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中;若否,表示需恢复的表所在的表空间在所述辅数据库的用户表空间中,恢复需恢复的表所在的用户表空间,并将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中。

【技术特征摘要】
1.一种数据库中表的恢复方法,其特征在于,用以恢复主数据库中的表,所述数据库中表的恢复方法包括以下步骤:生成用以创建辅数据库的参数文件,以创建所述辅数据库;恢复所述辅数据库的系统表空间;打开所述辅数据库,查询需恢复的表所在的表空间,并判断所述表空间是否在所述辅数据库的系统表空间中;若是,将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中;若否,表示需恢复的表所在的表空间在所述辅数据库的用户表空间中,恢复需恢复的表所在的用户表空间,并将需恢复的表从所述辅数据库导出,并将导出的表导入所述主数据库中。2.根据权利要求1所述的数据库中表的恢复方法,其特征在于:所述主数据库和辅数据库包括存储表的数据文件,记录所述数据文件的位置的控制文件,和/或记录所述控制文件的参数文件;在所述生成用以创建辅数据库的参数文件的步骤之前,所述数据库中表的恢复方法还包括分析所述主数据库的参数文件。3.根据权利要求2所述的数据库中表的恢复方法,其特征在于:所述辅数据库的参数文件包括用以与所述主数据库的数据库名称相同以使用所述主数据库所产生的备份片的数据库名称,用以与所述主数据库在进程区分的标识,和/或用所述控制文件;所述生成用以创建辅数据库的参数文件的步骤还包括在所述辅数据库的文本文件中配置所述参数文件。4.根据权利要求3所述的数据库中表的恢复方法,其特征在于:所述辅助数据库的启动过程包括用以加载参数文件的未挂载状态,用以根据记录所述控制文件的位置,加载所述控制文件的挂载状态,及用以挂载所述数据文件的打开状态;所述恢复所述辅数据库的系统表空间的步骤包括:将所述辅数据库启动到所述未挂载状态;还复所述控制文件;将所述辅数据库启动到所述挂载状态;重命名所述系统表空间中在线日志的位置;还原所述系统表空间中的数据文件,恢复所述数据文件中的表,并转入所述打开所述辅数据库,查询需恢复的表所在...

【专利技术属性】
技术研发人员:陈沐豪
申请(专利权)人:上海爱数信息技术股份有限公司
类型:发明
国别省市:上海;31

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

1