ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN备份时候内存区域的使用及split block处理问题

RMAN备份时候内存区域的使用及split block处理问题

原创 Linux操作系统 作者:tolywang 时间:2009-02-12 17:06:57 0 删除 编辑
Oracle9i , 10g  
Linux, Unix, Windows OS

          RMAN基于备份算法规则来编译要备份的数据文件列表。基于通道数和同时备份的数据文件数, RMAN在ORACLE共享内存段中创建一些内存缓冲区, 一般是在PGA中, 不过有时候内存缓冲区会被推入SGA。 通道服务进程随后就开始读取数据文件,并在RMAN缓冲中填充这些数据块。一个缓冲区被填满时,输入缓冲区的数据就会推出到输出缓冲区。数据文件中的数据块都会发生这种memory-to-memory write 的过程,如果数据块符合备份的标准,并且memory-to-memory write操作没有检查到数据corruption,  则该数据块会被保存到输出数据缓冲区中,直到输出缓冲区被填满。一旦输出缓冲区被填满,输出缓冲区的内容就会被推到备份位置(磁盘或者磁带)

教材上说,只要配置了DBWR_IO_SLAVES,BACKUP_TAPE_IO_SLAVES其中一个初始化参数就可令RMAN使用large pool.


------------------------------------------


“基于通道数和同时备份的数据文件数, RMAN在ORACLE共享内存段中创建一些内存缓冲区, 一般是在PGA中, 不过有时候内存缓冲区会被推入SGA”


问题 :    RMAN在Oracle共享内存段中创建一些内存存缓冲区, 输入缓冲区和输出缓冲区都是创建的内存缓冲区中的一部分, 他们如何分配 ?       创建的内存缓冲区一般是在PGA中,那么可能在RMAN操作过程中甚至不会用到SGA中的large pool ?   有时候内存缓冲区会被推入SGA , 是PGA中内存不够用的时候 ? 还是... ?  







“ 一个缓冲区被填满时,输入缓冲区的数据就会推出到输出缓冲区。数据文件中的数据块都会发生这种memory-to-memory write 的过程,如果数据块符合备份的标准,并且memory-to-memory write操作没有检查到数据corruption,  则该数据块会被保存到输出数据缓冲区中,直到输出缓冲区被填满 ”  


也就是说RMAN检查split block 是在输入缓冲区写满需要写入到输出缓冲区的时候进行的 ? 如果是split block, 那么通道进程会将这个数据块重新写入到输入数据缓冲区  ?

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

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13336170