rman backup recovery备份恢复性能优化tuning方法二

/****调节rman备份与恢复性能方法***/
依次采用如下方法进行调优

1,从通道配置中移除rate参数
 
2,如果采用同步io,配置dbwr_io_slaves
 
3,如果未配置共享内存,配置large_pool_size
 
4,调节读写拷贝工作过程


1,从通道配置中移除rate参数
  这里有个rate参数,它是什么呢,请参见:
  /***rate参数***//
  RATE Channel Parameter
   1,用于allocate和configure channel命令之中,指定每个通道每秒读取多少个byte数据;
   2,用此参数可以设置一个上限值,令rman不会花费或占用过多的磁盘带宽,而令整体库性能降低
   3,此参数其实就是一个阀值门.
   4,打个比方,如配置此参数1500k,而每个磁盘每秒可传递3mb,这样在备份时通道就会剩余一些磁盘带宽给在线系统
   5,就类似于dbms_resource_manager,可以合理限制资源
  
  自此参数我们可知,设置它其实就是降低了备份的性能;
  如果备份没有采用streaming tape(即多种速度备份tape),确认或查看rate没有被配置
  (也就是说如果tape为固定速度,不用配置rate,rate用于多种速度的备份)
 
  那么如何移除rate参数呢,可参考如下流程:
   1,查看备份脚本
   2,如备份采用run命令,移除rate参数;如在allocate命令中指定rate,略去下面的流程
     如备份未采用run命令,启动rman,直接运行下一个流程
   3,运行show all查看当前rman配置
   4,如配置了rate,自configure channel中移除它

 

2,如果采用同步io,配置dbwr_io_slaves
  这个是什么意思呢?目前一些操作系统支持异常io.但如果你的磁盘不支持它,可以配置dbwr_io_slaves,
  可以模拟异步,开启多个固定数量的disk io slaves进程
 
  关于如何优化异步io
  参考http://space.itpub.net/9240380/viewspace-757528
 
  这个不用说了,上述链接已言明

 

3,如果未配置共享内存,配置large_pool_size
   何时要配置large_pool_size?
     如果alert发现:ksfqxcre: failure to allocate shared memory means sync I/O will be used whenever
          async I/O to file not supported natively
   表明未开启disk io slave,即未配置dbwr_io_slaves.且共享内存不足;可配置large_pool_size
 
   如何配置large_pool_size?
    1,可选项:查看v$sgastat.pool确认对象驻存在内存哪个pool,到底是shared pool或是large pool
      (如未配置后者rman备份采用前者)
    2,alter sysetm set large_pool_size=分配的备份channels*(16mb + (4 * size_of_tape_buffer));
      (解释下:即大池=rman备份分配的通道个数*(16mb + (4 * 备份磁带的buffer大小))
    3,配置完后重启rman

 


4,调节读写拷贝工作过程
 可参考:http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmtunin.htm#BRADV89862
    如何确定到底是输出设备(即备份到的设备在此为tape)性能不行还是输入的disk io(存储数据文件的disk)不足,可采用如下方法
   
    1,采用rman之backup validate和backup;比较二者的时间;
    2,如果backup validate和backup时间差不多,从磁盘读取就是瓶颈所在,即存储数据文件的disk io不足
      如果backup validate明显少于backup的时间,写入到输出的备份设置就是瓶颈所在,即要备份到的tape性能不行
     
     
     下面我们一个个来讲:
     1,调节读的工作
         rman不可能马上实时把数据变更的数据块发送到备份的设备上
         比如说:在增量备份时,它仅备份上次变更的数据块,如未开启block change tracing
         功能;rman就要扫描整个数据文件,以获知哪个数据块发生了变化;
         当rman查找这样的变化数据块时就会填充输出buffer;
         如果仅仅很小部分的数据块变化了,采用的是sbt磁带备份;rman不会很快填充输出的buffer以保持
         磁带流化功能即备份多种速度切换功能
        
         此时,为了提升备份的性能,oracle建议采用level of multiplexing
         /**何为多路级别***/
         level of multiplexing
         即同时进行多个输入文件的读写到同一个rman backup piece中
         The number of input files simultaneously read and then written into the same RMAN backup piece.
        
         /***何为rman backup piece****/
         用于存储rman backup set的一种物理文件格式;每个rman backup set 包括1或多个物理备份集
        
         /***何为rman backup set*****/
         1,一个或多个数据文件,控制文件,spfile or pfile和归档日志文件的备份
         2,每个备份集包括1或多个二进制文件
         3,上述的二进制文件即备份片(参看上述)
         4,每个备份片以rman可识别的文件格式写入并易于恢复
         5,它是由rman backup产生的.
         6,一般而言,backup set包括一个备份片.
           但是如果在allocate channel或configure channel中使用maxpiecesize指定备份片文件的大小,
           则一个备份集可能会包含多个备份片文件
          
    简要介绍一众术语后,继续我们的调节工作:
     level of multiplexing,就是同时对多个输入文件进行读,并把它们写入到备份片中
         此参数从:channel的maxopenfiles配置和每个备份集的输入文件个数,选取其小者为其值
        
         oracle也给出一些关于如何配置level of multiplexing的表格:
        
         是否asm            是否为条带化磁盘         oracle给出的建议方案
         -----------------------------------------------------------------------------
         no                  yes                              从上述选取小值后,再增加它的值
                                    采用这种方法,其实就是增了rman备份时填充tape buffer的速度;
                                                              这样tape buffer就最大可能被送到tape media manger,从而实现tape streaming
 
         no                  no                               这个很简单:增加channel上的maxopenfiles
        
         yes                 no                               配置channel上的maxopenfiles为1或者2


        
/****最后一讲:如何调节写入拷贝的过程****/        
Tuning the Copy and Write Phases                                                                                 

1,如果自输出设备读性能很不错,显然写和拷贝就可能出现了瓶颈问题
2,特别值得一提的是;如果rman发送数据块到了磁带驱动也足以支持tape streaming;
 但tape未能streaming;此时sbt 写过程就显然出问题了,如何改进它的写性能呢?
   1,如采用full backup,可采用增量backup
         
      2,如备份采用基本压缩算法,可采用高级压缩功能
     
      3,如果数据库主机有多个cpu,备份采用二进制压缩,可以增加channel个数
        
      4,如果备份进行了加密,可采用AES128算法进行加密
        aes128算法是一种消耗cpu比较少的算法
      5,如果备份到磁带,可尝试作如何调整
          1,调节tape io buffer大小
              通过allocate channel或configure channel命令中的parms和blksize参数配置
              tape io buffer size和具体的os平台有关;
              blksize配置可覆盖默认值
          2,调节tape media software一些配置参数
             包括tape block size
                 这些对备份性能影响很大
         
      6,如果rman备份到asm,增加channel个数
        比如:备份数据库到16物理磁盘的单一asm磁盘组,分配4个通道;最大可为16;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-757532/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-757532/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值