ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN处理split block问题

RMAN处理split block问题

原创 Linux操作系统 作者:tolywang 时间:2011-07-11 15:49:10 0 删除 编辑
Oracle 10.2.0.4.0  ,   Linux AS 5.4   


默认情况下, RMAN 备份会有下面的简单几个过程 :

1.  RMAN 将需要备份的数据文件的所有数据块(Oracle block, 不管是否已格式化,是否有数据) 读入输入缓冲区
     (PGA的一部分) , 这个过程是以Oracle block为最小单位进行的, 不存在OS Block级别的拷贝或备份, 那
     么这个过程是不会产生所谓的"split block " 的  ?   

2.  随后一个重要过程是Memory-To-Memory 过程, 也就是输入缓冲区写满后写入输出缓冲区 (默认也是PGA
     的一部分) ,  这个过程中会有一些事情要做。    Oracle 10.2.0.2.0 首先判断oracle block是否被使用过(
    头信息是否为零),    如果数据块未被使用过, 就不会发生到输出缓冲区的写操作,同时丢弃此数据块, 如果
    使用过, 然后判断是否存在数据 (估计也是判断头信息), 如果存在就会在这个数据块上执行检验和checksum
     操作 。 最后判断Oracle block头和脚注是否匹配, 判断是否是split block,  如果不是就写入输出缓冲区,
     如果是split block,  那么重新将block备份到输入缓冲区 。

这里有个问题:  写入输入缓冲区的Oracle block 不会存在split block (如果存在,是如何产生的?),  这些
block在session特定的pga中存放,  那么后面做Memory-To-Memory 过程中为何还要判断 split block  ?   

3.   写入输出缓冲区的Oracle block达到一定程度 (满了) , 会写入备份位置 (假设为磁盘) 。

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

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

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13780713