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

文档序号:9326767阅读:来源:国知局
0056]3、MML开启多个通道同时发送Oracle的数据块。
[0057]4、备份软件客户端开启多个线程接收RMAN发送的数据块。
[0058]5、备份软件客户端将数据块转发到远程存储,将数据以特定的格式组织生成备份片,存储在备份服务器中。
[0059]6、当前备份片中所有的数据块发送完毕之后,再进行下一个备份片的数据块发送。
[0060]7、所有的备份片都发送完成之后,释放通道连接。
[0061]在RMAN备份脚本中分配多个通道,以完全备份双通道为例,具体脚本如下:
[0062]RMAN>run {
[0063]RMAN>allocate channel cl device type sbt ;
[0064]RMAN>allocate channel c2 device type sbt ;
[0065]RMAN>backup incremental level 0 format’ 0RDB— % d_ % s_ % pJ databasetag’2015—05—15—10—00—00’ ;
[0066]RMAN>release channel cl ;
[0067]RMAN>release channel c2 ;
[0068]RMAN〉}
[0069]RMAN>run {
[0070]RMAN>allocate channel cl device type sbt ;
[0071]RMAN>allocate channel c2 device type sbt ;
[0072]RMAN>backup archi velog all format’ARCH_ % d_ % s_ %p’tag’2015—05—15—10—00—00’ ;
[0073]RMAN>release channel cl ;
[0074]RMAN>release channel c2 ;
[0075]RMAN〉}
[0076]RMAN>run {
[0077]RMAN>allocate channel cldevice type sbt ;
[0078]RMAN>allocate channel c2device type sbt ;
[0079]RMAN>backup current controlfile format’CTRL_ % d_ % s_ %p’tag’2015—05—15—10—00—00’ ;
[0080]RMAN>release channel cl ;
[0081]RMAN>release channel c2 ;
[0082]RMAN〉}
[0083]此时多个Oracle备份进程加载SBT (Segmented Bond Tool)库,同时发起调度拆分数据文件读取数据。通过本地进程间通信方式-管道,SBT端作为管道的客户端将数据发送给备份软件的客户端。
[0084]客户端开辟和RMAN channel数量相同的备份线程,各个线程创建一个管道,作为管道的服务端接收SBT端的Oracle数据块,再通过网络并行发送给备份服务器。备份服务器接收到客户端的数据,通过备份软件特定的数据组织格式存放在备份服务器的磁盘中。
[0085]恢复过程中数据流程走向图相比于备份,是一个逆向数据流,如图4所示,主要的技术操作流程如下:
[0086]1、实现Oracle提供的SBT第三方接口,编译生成MML供Oracle加载使用。
[0087]2、编写多通道的RMAN恢复脚本,连接RMAN,执行此脚本。
[0088]3、MML发送需要恢复的备份片信息到备份软件客户端,并开启多个通道等待接收备份软件客户端发送的数据块。
[0089]4、备份软件客户端开启多个线程将远程存储的数据以特定的块大小发送到对应的 Channel 中。
[0090]5、RMAN接收到数据组合成对应的数据文件。
[0091 ] 6、此备份片所有的数据块恢复完毕之后,再进行下一个备份片的数据恢复。
[0092]7、所有的备份片都恢复完成之后,再释放通道连接。
[0093]在RMAN恢复脚本中分配多个通道,以完全备份备份集的双通道完整恢复为例,具体脚本如下:
[0094]RMAN>run {
[0095]RMAN>allocate channel cldevice type sbt ;
[0096]RMAN>allocate channel c2device type sbt ;
[0097]RMAN>restore controlfile from ‘CTRL_XXX_XXX_XXX’ ;
[0098]RMAN>release channel cl ;
[0099]RMAN>release channel c2 ;
[0100]RMAN〉}
[0101]RMAN>alter database mount ;
[0102]RMAN>run {
[0103]RMAN>allocate channel cldevice type sbt ;
[0104]RMAN>allocate channel c2device type sbt ;
[0105]RMAN>restore database ;
[0106]RMAN>recover database ;
[0107]RMAN>release channel cl;
[0108]RMAN>release channel c2 ;
[0109]RMAN〉}
[0110]此时多个Oracle恢复进程加载SBT库,同时发起调度根据完全备份集记录备份时拆分的数据文件分别进行写入数据。通过本地进程间通信方式-管道,SBT端作为管道的客户端将Oracle需要恢复的备份片名称发送给备份软件客户端。
[0111]Oracle根据SBT端请求的备份片名称,再向备份服务器要之前完全备份时的备份片数据。备份服务器通过网络发送给客户端。客户端开启和RMAN channel数量相同的恢复线程,各个线程创建一个管道,先通过网络并行接收备份服务器传输过来的此完全备份集Oracle数据块,然后再作为管道的服务端将接收到的数据传递给SBT端。SBT端通过管道对备份软件客户端发送的数据进行接收,未接收到数据就阻塞等待,有数据则接收然后再写入到Oracle数据库。
【主权项】
1.一种Oracle多通道并行备份方法,其特征在于,包括如下步骤: al)介质管理库创建多个用于发送Oracle数据块的通道; a2)备份软件客户端开启多个线程和各通道配对连接; a3)介质管理库获取一 Oracle的备份片,该备份片中的各数据块分别通过一通道发送给备份软件客户%5 ; a4)备份软件客户端通过相应的线程接收数据块,并转发至备份服务器中; a5)当前备份片中所有的数据块发送完毕之后,再进行下一个备份片的数据块发送; a6)所有的备份片都发送完成之后,释放通道的连接。2.根据权利要求1所述的Oracle多通道并行备份方法,其特征在于,所述通道与线程的数量相同。3.根据权利要求1所述的Oracle多通道并行备份方法,其特征在于,所述配对连接具体通过通道名称与线程的PID进行配对,并记录配对状态。4.一种Oracle多通道并行恢复方法,其特征在于,包括如下步骤: bl)介质管理库创建多个用于发送Oracle数据块的通道; b2)备份软件客户端开启多个线程和各通道配对连接;b3)介质管理库发送需要恢复的备份片信息到备份软件客户端;b4)备份软件客户端多个线程将存储于备份服务器内的相应备份片的数据块发送到对应的通道中; b5)介质管理库将接收到的数据块组合; b6)当前备份片中所有的数据块恢复完毕之后,再进行下一个备份片的恢复; b7)所有的备份片都恢复完成之后,释放通道的连接。5.根据权利要求1所述的Oracle多通道并行恢复方法,其特征在于,所述通道与线程的数量相同。6.根据权利要求1所述的Oracle多通道并行恢复方法,其特征在于,所述配对连接具体通过通道名称与线程的PID进行配对,并记录配对状态。
【专利摘要】本发明涉及一种Oracle多通道并行备份及恢复方法,通过介质管理库创建多个用于发送Oracle数据块的通道,同时备份软件客户端开启多个线程和各通道配对连接,多个通道来并行读取数据库的数据,生成固定大小的数据块,然后并行发送数据块到备份软件客户端,备份软件客户端的线程接收对应的通道发送过来的数据块,然后将数据块发送到远程存储上。与现有技术相比,本发明通过并行的数据传输来提升数据的传输效率,有效地缩短Oracle大数据背景下的数据备份和恢复时间。
【IPC分类】G06F11/14
【公开号】CN105045681
【申请号】CN201510405568
【发明人】罗强, 黄开德
【申请人】上海爱数软件有限公司
【公开日】2015年11月11日
【申请日】2015年7月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1