一种Oracle数据库的备份恢复系统及其方法与流程

文档序号:23628636发布日期:2021-01-12 10:42阅读:163来源:国知局
一种Oracle数据库的备份恢复系统及其方法与流程

本发明涉及数据备份恢复技术领域,尤其是涉及一种oracle数据库的备份恢复系统及其方法。



背景技术:

传统的oracle数据库备份为脱机备份,又被称为冷备份。在备份开始前,数据库必须彻底关闭,并且需要将数据库使用的每个文件都备份下来。

在oracle数据库第6版推出了联机备份的概念,也就是热备份。热备份是在数据库运行的情况下,采用archivelogmode方式备份数据库的方法。

在oracle数据库第8版推出了恢复管理器(rman,recoverymanager),作为oracle数据库的推荐备份方式。rman是随oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。rman采用备份级别实现增量备份,在一个完整的备份基础上采用增量备份减少备份的数量。

使用rman进行备份会产生备份集格式的文件,备份集(backupset)是一种压缩格式,一个备份集文件可以包含多个文件内容。当使用备份集方式备份时,rman能够跳过空数据块,减少备份文件的大小,且可以通过额外的压缩算法进一步减少备份集文件的大小。虽然使用备份集方式产生的备份文件体积小,能够节省备份空间,但是数据恢复时需要先执行restore操作,再结合解压缩操作,往往会导致业务数据灾难恢复时间的大大延长。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种oracle数据库的备份恢复系统及其方法,既能够保证数据的完整备份,同时能实现快速恢复的目的。

本发明的目的可以通过以下技术方案来实现:一种oracle数据库的备份恢复系统,包括服务器端、代理客户端和oracle生产环境,所述代理客户端与服务器端相互连接,所述代理客户端安装于oracle生产环境,所述oracle生产环境内设置有依次连接的数据库和rman工具,所述服务器端连接有存储单元,所述服务器端用于控制存储单元的工作状态,以及发送备份或恢复任务指令给代理客户端,并接收代理客户端返回的执行结果;

所述代理客户端根据服务器端发送的指令对oracle生产环境执行相应处理,并将执行结果返回给服务器端;

所述存储单元通过对应的挂载存储单元与rman工具相互连接,所述挂载存储单元用于存放数据备份或恢复的镜像副本。

进一步地,所述存储单元通过挂载链路与对应的挂载存储单元相互连接。

进一步地,所述挂载链路包括iscsi链路和fc链路。

一种oracle数据库的备份恢复方法,包括:

数据备份流程:

a1、用户建立备份任务,服务器端根据任务配置发送备份任务指令给代理客户端;

a2、代理客户端对oracle数据库进行状态检测,若检测正常则执行步骤a3,否则结束任务;

a3、根据任务配置,服务器端通过挂载链路将存储单元挂载至oracle生产环境中,得到挂载存储单元;

a4、对挂载存储单元进行存储格式化操作;

a5、基于rman工具进行数据备份;

a6、卸载挂载存储单元;

a7、执行清理操作,结束备份流程;

数据恢复流程:

b1、用户建立恢复任务,服务器端根据任务配置发送恢复任务指令给代理客户端;

b2、代理客户端对oracle数据库是否正在运行,若oracle数据库正在运行,则结束任务,否则执行步骤b3;

b3、根据任务配置,服务器端通过挂载链路将存储单元挂载至oracle生产环境中,得到挂载存储单元;

b4、根据任务配置,依次创建密码文件、生成或修改参数文件,之后基于rman工具进行数据恢复;

b5、数据恢复结束后,对恢复结果进行检查,若恢复成功则执行步骤b6,若恢复失败则执行步骤b7;

b6、打开数据库,结束恢复流程;

b7、关闭当前数据库,之后卸载挂载存储单元、执行清理操作,最后结束恢复流程。

进一步地,所述步骤a2具体包括以下步骤:

a21、代理客户端检查需要保护实例的数据库状态是否为open,如果状态为非open状态,则任务结束,否则执行步骤a22;

a22、代理客户端检查需要保护实例的数据库的模式是否为归档模式,如果为非归档模式,则任务结束,否则执行步骤a3。

进一步地,所述步骤b2具体是由代理客户端检查数据库状态是否为open,如果状态为open,表明oracle数据库正在运行,则结束任务,否则执行步骤b3。

进一步地,所述步骤a4中存储格式化操作具体是根据oracle数据库搭建模式的不同,可格式化为文件系统存储格式或asm存储格式。

进一步地,所述步骤a5具体包括以下步骤:

a51、rman工具从数据库获取待备份数据;

a52、采用镜像副本方式,rman工具将待备份数据传输给挂载存储单元;

a53、挂载存储单元将接收的待备份数据同步共享至存储单元。

进一步地,所述待备份数据包括完全备份数据、增量备份数据和归档日志备份数据,所述完全备份数据包括参数文件、控制文件、数据文件和归档日志文件,所述增量备份数据包括增量数据、控制文件和归档日志文件,所述归档日志备份数据包括控制文件和归档日志文件。

进一步地,所述步骤b4具体包括以下步骤:

b41、根据任务配置,创建密码文件;

b42、若任务指定挂载新的实例,则根据任务配置,结合待恢复数据中的参数文件,生成新的参数文件;

若任务指定在原实例上进行浏览恢复,则不执行此步骤;

b43、基于rman工具,首先将存储单元中的副本注册到控制文件中,若任务指定挂载新的实例,则将待恢复数据快速切换为挂载存储单元中的镜像副本,之后执行recover操作;

若任务指定在原实例上进行浏览恢复,则先进行restore操作,之后执行recover操作。

与现有技术相比,本发明具有以下优点:

一、本发明通过将服务器端的存储单元挂载到oracle生产环境中,得到挂载存储单元,以作为备份数据存储的目的地,使用rman工具进行备份时,可将数据直接写入到挂载存储单元中,从而有效地保证了数据备份的完整性,此外,基于rman工具,采用镜像副本的方式进行数据备份,能够保证数据文件的原生格式,无需考虑文件格式问题,每个文件都是一个原生格式的文件副本,为后续数据恢复增加了操作的灵活性,从而提高数据恢复的速度。

二、本发明通过将服务器端的存储单元挂载到oracle生产环境中,在数据恢复时能够访问挂载存储单元中的待恢复数据,在挂载恢复为一个新的实例时,只需要对参数文件进行部分修改,指定新的实例名和新的控制文件位置,然后使用rman工具,将数据文件快速切换到挂载存储单元中的镜像副本,结合recover操作,即可快速将新实例拉起;在对原实例浏览恢复时,则直接先进行restore操作,再结合recover操作即可,无需进行解压缩操作,由此大大缩短了数据恢复的时间、提高了数据恢复的速度。

附图说明

图1为本发明的系统结构示意图;

图2为本发明数据备份的流程示意图;

图3为本发明数据恢复的流程示意图;

图中标记说明:1、服务器端,2、代理客户端,31、数据库,32、rman工具,11、存储单元,110、挂载存储单元。

具体实施方式

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

实施例

如图1所示,一种oracle数据库的备份恢复系统,包括服务器端1、代理客户端2和oracle生产环境,代理客户端2与服务器端1相互连接,代理客户端2安装于oracle生产环境,oracle生产环境内设置有依次连接的数据库31和rman工具32,服务器端1连接有存储单元11,服务器端1用于控制存储单元11的工作状态,以及发送备份或恢复任务指令给代理客户端2,并接收代理客户端2返回的执行结果;

代理客户端2根据服务器端1发送的指令对oracle生产环境执行相应处理,并将执行结果返回给服务器端1;

存储单元11通过iscsi链路和fc链路连接至对应的挂载存储单元110,再与rman工具32相互连接,挂载存储单元110用于存放数据备份或恢复的镜像副本。

基于上述系统进行数据备份恢复,其具体工作流程如图2和图3所示,在数据备份过程中,主要包括以下步骤:

a1、用户建立备份任务,服务器端根据任务配置发送备份任务指令给代理客户端;

a2、代理客户端对oracle数据库进行状态检测,若检测正常则执行步骤a3,否则结束任务;

a3、根据任务配置,服务器端通过挂载链路将存储单元挂载至oracle生产环境中,得到挂载存储单元;

a4、对挂载存储单元进行存储格式化操作;

a5、基于rman工具进行数据备份;

a6、卸载挂载存储单元;

a7、执行清理操作,结束备份流程;

在数据恢复过程中,主要包括以下步骤:

b1、用户建立恢复任务,服务器端根据任务配置发送恢复任务指令给代理客户端;

b2、代理客户端对oracle数据库是否正在运行,若oracle数据库正在运行,则结束任务,否则执行步骤b3;

b3、根据任务配置,服务器端通过挂载链路将存储单元挂载至oracle生产环境中,得到挂载存储单元;

b4、根据任务配置,依次创建密码文件、生成或修改参数文件,之后基于rman工具进行数据恢复;

b5、数据恢复结束后,对恢复结果进行检查,若恢复成功则执行步骤b6,若恢复失败则执行步骤b7;

b6、打开数据库,结束恢复流程;

b7、关闭当前数据库,之后卸载挂载存储单元、执行清理操作,最后结束恢复流程。

具体的,在数据备份场景中,将备份软件服务器端的存储,挂载到需要数据保护的oracle生产环境上,然后对这些挂载存储进行格式化操作,并创建相关子目录,通过rman将生产数据以镜像副本的方式,备份到上述存储子目录中,备份结束后卸载相应的存储,从而达到对oracle数据库中数据的备份保护。

在灾难数据恢复场景中,将备份软件服务器端含有备份数据的存储,挂载到需要数据恢复的oracle环境上,通过rman执行特定的恢复脚本,将数据文件快速切换到挂载存储中的镜像副本,从而快速地拉起业务数据。

其中,服务器端为备份软件的控制台,是备份软件的管理单元,担负和用户交互的任务。在服务器中管理所有的资源,包括对存储的管理和对代理客户端的管理。服务器发送备份任务的指令给对应的代理客户端,同时,接收代理客户端返回的执行结果,监控任务的执行情况。

oracle生产环境上安装代理客户端。代理客户端作为备份软件在生产环境上的代理,负责与服务器进行交互,接收服务器下达的命令,并针对命令做出相应的处理,并将执行结果返回给服务器。

服务器端的存储,可以通过iscsi或者fc链路(不局限于这两种方式)挂载到oracle生产环境上,然后进行存储格式化操作,根据生产环境上oracle数据库搭建模式的不同,可格式化为文件系统存储格式,或者asm存储格式。

oracle数据库实例中的生产数据,由oracle自带的备份恢复管理工具rman进行备份及输出到服务器端挂载过来的存储中,使用的备份方式为镜像副本(imagecopy),完全备份需要备份参数文件、控制文件、数据文件和归档日志文件,增量备份需要备份增量数据、控制文件和归档日志文件,归档日志备份需要备份控制文件和归档日志文件;

挂载恢复时,将服务器端的存储挂载到数据恢复目的端的机器上,然后使用rman工具执行特定的脚本进行恢复操作。

将上述系统及方法应用于实际,当保护的生产环境需要达到分钟级的恢复效果时,可部署备份任务,该任务中需要一个oracle生产环境。用户发起任务时,会按照以下步骤执行:

备份任务过程如下:

1.用户选择需要保护的数据源及对象,建立备份任务,此时服务器端会根据任务的配置,生成对应的存储卷,创建卷映射,将存储卷对客户端开放访问权限。发起任务,执行下一步,实际当发起任务时,会包含详细的数据库状态检查、存储链路及存储设备文件检查、备份数据检查等操作。

2.任务启动后,代理客户端根据创建任务时的选项检测生产环境是否符合软件运行要求,如果状态正常,则执行步骤3,如果状态异常,任务结束:

首先,代理客户端检查需要保护实例的数据库状态是否为open,如果状态为非open状态,则任务结束;否则,进行下一步;

之后,代理客户端检查需要保护实例的数据库的模式是否为归档模式,如果状态为非归档模式,则任务结束;否则,进行下一步。

3.根据任务的配置,挂载服务器端的存储,执行下一步。

4.对上述存储进行格式化操作,执行下一步。

5.根据任务的配置,编写并执行特定的rman脚本,脚本中指定了数据存放的目的地位上述存储中,执行下一步。

6.卸载服务器端的存储,执行下一步。

7.执行清理操作,主要包括清理存储块设备、清理本地相关配置文件、临时文件等,执行下一步。

8.整个备份流程结束。

挂载恢复任务过程如下:

1.用户选择需要挂载恢复的时间点数据及恢复目的地,建立挂载恢复任务,此时服务器端会根据任务的配置,将对应的存储卷,创建卷映射,向客户端开放访问权限。发起任务,执行下一步。

2.任务启动后,代理客户端根据创建任务时的选项检测生产环境是否符合软件运行要求,如果挂载任务指定的实例为open状态,为了不破坏正在运行的数据,任务结束,否则,执行下一步。

3.挂载服务器端的存储,执行下一步。

4.根据任务指定的配置,创建密码文件,执行下一步。

5.根据任务的配置,生成或修改参数文件:

·若任务指定的是挂载为新的实例,则需要根据任务配置,结合备份数据中的参数文件,生成新的参数文件内容,并创建对应的spfile;

·若任务指定的是在原实例上进行浏览恢复,则不需要此执行步骤。

6.根据任务的配置,编写并执行特定的rman脚本,执行下一步。

·rman脚本中包含catalog语句,将存储中的副本注册到控制文件中;

·若任务指定的是挂载为新的实例,脚本中通过switch命令将数据文件指定为asm磁盘组中的镜像副本,然后执行recover操作;

·若任务指定的是在原实例上进行浏览恢复,则会先进行restore操作,然后进行recover操作。

7.rman恢复结束,检查恢复结果。

·恢复成功,执行步骤8。

·恢复失败,执行步骤9。

8.打开数据库。执行步骤12。

9.关闭当前数据库实例。

10.卸载服务器端的存储。

11.执行清理操作。

12.整个任务流程结束。

以挂载恢复为新的单机实例举例,挂载恢复完成后,新的实例运行在服务器端挂载的存储上,用户可根据实际业务需要,进行数据回迁操作。用户也可以选择在原实例上进行浏览恢复操作。

由此可知,在实际应用中,服务器端与oracle生产环境上的代理客户端需要处于同一网络中,并且必须具有相互访问的权限,用户必须拥有代理客户端的管理权限,在对oracle生产数据备份时,数据库实例必须为open状态且数据库需开启归档模式。

综上所述,本发明通过采用一种基于使用rmanimagecopy的方法,对oracle生产环境进行数据保护,显著缩短了oracle业务数据灾难恢复的时间。通过将存储挂载到生产环境上,并进行格式化操作(文件系统格式或asm格式),然后使用rman的imagecopy备份方式,将oracle生产环境数据备份到挂载存储上,在灾难恢复时,将包含备份数据的存储挂载到数据恢复目的端(含有oracle数据库环境)上,修改相关配置,使用switch语句,将数据文件快速切换到挂载存储的镜像副本,以此快速拉起业务数据,从而保证生产环境尽可能短时间的停机。通过本发明提出的技术方案,可达到以下效果:

1、通过将server端的存储挂载到生产环境上,作为备份数据存储的目的地,使用rman备份时,可将数据直接写入到这些存储中,避免了使用第三方提供的介质管理库(mediamanagementlibrary,mml)以及备份数据的切块传输,在数据传输层面上,有效地保证了数据的完整性。

2、对server端挂载过来的存储,可以根据oracle数据库模式来进行格式化操作。比如oracle单机模式下,格式化为文件系统存储格式。比如rac集群模式,可以通过创建asm磁盘组的方式,将存储格式化为asm存储格式。

3、使用rman镜像副本方式备份出来的数据,保证了数据文件的原生格式,无需考虑文件格式问题,每个文件都是一个原生格式的文件副本,为数据恢复增加了操作的灵活性。

4、首次完备,后续永久增量。在server端的存储中,只保留一份黄金副本,每次备份任务结束,通过对存储进行快照操作,生成当前时间点快照。增量备份数据,通过ramn合并到黄金副本中,然后再次进行快照操作,生成新的时间点。对备份数据的管理,转变为对时间点快照的管理,极大地减少了存储的消耗。

5、挂载恢复时,将server端的存储挂载到数据恢复的目标机器上,即可访问其中的备份数据。可根据需要,将备份数据挂载为一个全新的实例,或者浏览恢复到原实例。

6、挂载恢复为一个全新实例时,只需要对参数文件进行部分修改,指定新的实例名和新的控制文件位置,然后将实例启动到mount状态,使用rman,将数据文件switch到数据文件副本,结合recover操作,即可快速将新实例拉起。

7、数据恢复时,支持指定时间点恢复,支持指定scn号恢复。

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