一种Oracle多通道并行备份及恢复方法

文档序号:9326767阅读:3276来源:国知局
一种Oracle多通道并行备份及恢复方法
【技术领域】
[0001]本发明涉及结构化数据保护领域,尤其是涉及一种Oracle多通道并行备份及恢复方法。
【背景技术】
[0002]根据最具权威的IT研究与顾问咨询公司Gartner公司公布的2012年全球关系型数据库市场调查报告,以软件总收入计算,Oracle以48.3%继续占据着第一的位置,且收入份额大于四个最接近的竞争对手的总和。由此可看出作为数据库之王的Oracle在全球的用户是最多的。当前就我国很多行业部署的数据库也是Oracle,随着信息技术在我国的高速发展且使用时间越来越长,用户的Oracle数据库数据量越来越大,像公安厅的户口系统、铁道部门的订票系统等一个库通常达到几十TB的数据量。
[0003]传统的Oracle异机备份恢复或磁带备份恢复是单通道串行的。也就是开启一个RMAN备份恢复channel,一个Oracle进程备份时读取数据、恢复时写入数据,然后再发送给备份软件。当后端数据库存储性能非常强劲的情况下,不能充分地利用高性能的存储10PS,效率较低,备份恢复所消耗的时间非常长,特别是当用户Oracle数据库损坏的情况下不能快速及时的恢复,数据保护效果不佳。
[0004]传统的串行备份在数据量不大的情况下,我们可以采用提升传输速度和存储的读写性能来提升备份性能,但是当数据呈指数增长的时候,很显然备份时间的增长指数和数据量的增长指数是一致的,那么就无法实现高可靠性的数据保护,当数据达到TB级别时,传统的备份时间将超越24小时,意思是如果数据出现问题,我们即无法保证在此之前24小时数据的完整性,也无法保证数据在24小时内完整的恢复出来。

【发明内容】

[0005]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种Oracle多通道并行备份及恢复方法,极大地提升备份恢复效率,能大幅度缩小备份窗口、灾难发生时缩短恢复时间。
[0006]本发明的目的可以通过以下技术方案来实现:
[0007]—种Oracle多通道并行备份方法,包括如下步骤:
[0008]al)介质管理库创建多个用于发送Oracle数据块的通道;
[0009]a2)备份软件客户端开启多个线程和各通道配对连接;
[0010]a3)介质管理库获取一 Oracle的备份片,该备份片中的各数据块分别通过一通道发送给备份软件客户端;
[0011]a4)备份软件客户端通过相应的线程接收数据块,并转发至备份服务器中;
[0012]a5)当前备份片中所有的数据块发送完毕之后,再进行下一个备份片的数据块发送;
[0013]a6)所有的备份片都发送完成之后,释放通道的连接。
[0014]所述通道与线程的数量相同。
[0015]所述配对连接具体通过通道名称与线程的PID进行配对,并记录配对状态。
[0016]—种Oracle多通道并行恢复方法,包括如下步骤:
[0017]bl)介质管理库创建多个用于发送Oracle数据块的通道;
[0018]b2)备份软件客户端开启多个线程和各通道配对连接;
[0019]b3)介质管理库发送需要恢复的备份片信息到备份软件客户端;
[0020]b4)备份软件客户端多个线程将存储于备份服务器内的相应备份片的数据块发送到对应的通道中;
[0021]b5)介质管理库将接收到的数据块组合;
[0022]b6)当前备份片中所有的数据块恢复完毕之后,再进行下一个备份片的恢复;
[0023]b7)所有的备份片都恢复完成之后,释放通道的连接。
[0024]所述通道与线程的数量相同。
[0025]所述配对连接具体通过通道名称与线程的PID进行配对,并记录配对状态。
[0026]与现有技术相比,本发明具有以下优点:
[0027]I)本发明在备份恢复时开辟多个RMAN channel (通道),并产生和channel数相同的Oracle备份恢复进程,对整库的数据文件进行拆分,分别去读取、写入部分数据文件,并发执行,能充分地利用高读写性能的存储,提升单位时间内的数据吞吐量,解决大数据Oracle数据库的数据保护难题。
[0028]2)本发明充分利用了日益强大的硬件资源,多路并发,无论是在数据的备份上,还是在数据的恢复上,都具有很强的竞争力,在实现了传统备份的功能的基础上,大大缩短了数据的备份时间,相应的缩短了数据的保护周期。如果出现灾难性事故,那么丢失的数据将更少。
【附图说明】
[0029]图1为Oracle多通道并行备份恢复系统的拓扑图;
[0030]图2为Oracle与备份客户端的配对连接图;
[0031]图3为备份过程数据流程走向图;
[0032]图4为恢复过程数据流程走向图。
【具体实施方式】
[0033]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0034]通过使用介质管理器,RMAN (Recovery Manager)将数据备份到磁带上或者远程存储上(以下统称为远程存储)。介质管理器(Media Manager)由第三方软件商提供,它将数据块中的数据流从RMAN通道进程传递到相应的磁带中。
[0035]计算机系统必需安装了介质管理(MM)客户端才能使用介质管理器。介质管理的客户端可以连接介质管理服务器,并通过网络传送数据。还必须为介质管理器安装Oracle模块,Oracle模块(Oracle Moudle)是一个用于Oracle RDBMS的软件插件,它可以连接RMAN与客户端介质管理软,后者可以把数据传送到MM服务器。Oracle用于备份恢复的插件名称是介质管理库(MEDIA MANAGEMENT LIBRARY简写MML)。
[0036]本发明通过配置多个channel (通道)来并行读取数据库的数据,生成固定大小的数据块,然后并行发送数据块到备份软件客户端,备份软件客户端会对应的产生线程来接收对应的channel发送过来的数据块,然后将数据块发送到远程存储上,通过并行的数据传输来提升数据的传输效率,有效地缩短Oracle大数据背景下的数据备份和恢复时间。本发明采用的Oracle多通道并行备份恢复系统的拓扑图如图1所示。
[0037]本发明的技术实现难点在于:
[0038]1、多线程的数据收发和组装。备份软件客户端需要开启多个线程和channel进行配对,然后收发消息和数据。
[0039]2、0racle多个备份恢复进程与备份软件客户端多个收发数据线程间的配对通信。实现Oracle多个备份恢复进程间的消息数据传输,首先必须解决进程间的配对问题及重连问题,如果配对或者重连错误,就会导致数据错乱。配对连接具体通过通道名称与线程的PID进行配对,并记录配对状态。具体的配对连接方法如图2所示:
[0040]I)控制台发起任务,客户端调用调度管理模块读取初始化连接记录文件。
[0041]2)若记录不存在,那么直接写入新的三元组,若记录存在,则读取此三元组,并检测记录是否超时。三元组包括线程的PID、通道名称和创建时间信息。
[0042]3)若超时,那么清空后写入新的三元组信息,若没有超时,那么根据设置的等待时间进入等待状态,并实时检测记录的状态。若被清空或者记录超时,那么写入新的三元组信息,否则,等待时间结束后,返回连接失败。一般设置超时时间小于或等于等待时间可以有效的控制返回连接失败的概率。
[0043]4)更新初始化连接记录文件成功后,客户端使用脚本调度oracle的rman发送对应的实例的数据,同时oracle调用它对外开放且由我们实现的API接口。
[0044]5)接口中调用调度管理模块,读取已配对连接记录文件中的三元组信息,查询自己的PID对应的三元组信息是否存在。
[0045]6)若存在,那么是之前已连接过得记录,那么直接连接三元组中记录的管道,发送数据给客户端的数据处理模块。
[0046]7)若不存在,那么读取初始化连接记录文件,读取三元组信息,判断信息是否超时,若超时,连接失败,否则连接对应的管道。
[0047]8)将客户端进程PID,管道名称,oracle数据发送进程PID组成新的三元组,追加到已配对连接记录文件中。
[0048]9)清空初始化连接记录文件,等待下一个连接的发起。
[0049]10) Oracle发送数据到客户端,通过不同的消息ID,完成不同数据的发送,例如首先发送数据文件,将数据文件记录到对应的备份片中,数据文件单独形成一个备份集。然后消息通知数据文件发送完成,将开始先一个数据源的发送,如此循环。
[0050]11)数据发送完毕,发送消息通知客户端数据发送结束,然后断开连接。
[0051]12)客户端接到消息后释放管道资源,然后调用调度管理模块清除已配对连接记录文件中对应的三元组信息。
[0052]13)控制台同时发起其他oracle实例的备份,流程如I)?9)。
[0053]备份过程中数据流程走向图如图3所示,主要的技术操作流程如下:
[0054]1、实现oracle提供的第三方接口,编译生成MML供oracle加载使用。
[0055]2、编写多通道的RMAN备份脚本,连接RMAN,执行此脚本。
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1