[Oracle工程师手记]增量备份的BCT文件限制

Oracle 的 RMAN 进行增量备份的时候,如果用户设置了 block_change_tracking  有效,完成了全备份之后,所有的变更的块,都会被记录到 BCT 文件中,RMAN 不必全扫描所有的数据文件,它只是去读取 BCT 文件,可以大大提高备份速度。

不过,它有一个很大的限制,就是BCT文件只有8个槽位,或者说8 个 BitMap 表。一旦增量备份次数超过 8 次, 再次进行增量备份时,就需要扫描所有的数据文件。如果此时执行了全备份,那么8个槽位清空,又可以再次在增量备份中使用 BCT 文件。

如果每一次都想通过读取BCT文件进行增量备份,那么可以设置隐含参数 _bct_bitmaps_per_file 为  0, 这样就可以无限回使用 BCT 文件了。

使用BCT文件,还有一个好处,可以读取BCT文件中的数据块数,估算增量备份的大小。

select file#,
       blocks_changed,
       block_size,
       blocks_changed * block_size bytes_changed,
       round(blocks_changed / blocks * 100, 2) percent_changed
from v$datafile join
     (select fno
             file#,
             sum(bct) blocks_changed
      from (select distinct fno, bno, bct from x$krcbit
            where vertime >= (select curr_vertime from x$krcfde
                              where csno=x$krcbit.csno and fno=x$krcbit.fno))
      group by fno order by 1)
using(file#);
原文地址:https://www.cnblogs.com/gaojian/p/14636185.html