暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于BCT的学习

原创 张伟垚 2020-07-09
1934

BCT的意义

Block Change Tracking 是在Oracle 10g里推出的新特性。BCT的原理是记录数据文件里每个数据块修改之后信息,这些修改之后的tracking信息保存在设置的tracking文件里。启动BCT后,RMAN或者XTTS使用tracking file里的信息,只需要读取改变的数据块信息,而不用再对全部数据文件进行扫描,从而提高了RMAN或者XTTS增量备份的性能。

BCT的使用

数据库默认情况下的BCT是禁用的,可以通过v$block_change_tracking视图进行查询。
image.png
在启动BCT时,如果有设置oracle的OMF(oracle manage file),那么不指定路径的情况下,会自动设置在这里。
image.png
image.png
那么如果想指定路径的话只需要加一个using file 后面接一个路径名即可
首先先禁用,再重新开启。
image.png
这里发现禁用后,bct file会随着禁用而自动被删除清理。
image.png
image.png
如果在RAC的场景下,bct file是必须放在ASM共享存储里面。

BCT的相关问题

预估开启后BCT所占空间

image.png
image.png
理解为:
以500GB大小的数据库为例,并且这个数据库只有一个线程,RMAN存有8个备份集,经过计算得知:
1*(8+2)(500GB/250000)=20.48MB左右。
以200GB大小的两节点RAC为例,并且这个数据库RMAN存有8个备份集,经过计算得知:
2
(8+2)*(200GB/250000)=16.384MB左右。
BCT FILE大小因素是由以下因素决定:
1、 数据库数据量大小
2、 启用线程的数量
3、 数据库备份集的数量

理解隐含参数的意义

bct_bitmaps_per_file默认为8,我理解为保留最近8次block change的信息。

在备份期间,change tracking会维护已经被标记为change的block的bitmap信息。Oracle 会自动管理change tracking file的大小,只保留最近8次block change 的信息。如果超过8次,那么最前面的block bitmap信息会被最近一次的change所覆盖。
image.png
基于这个覆盖,官方文档也给出一个情景的考虑,在进行0级增量备份以及7次差异增量备份之后,8次block bitmap已经填满bct file(默认_bct_bitmaps_per_file=8的情况下),那么这时候再进行一次1级的累积增量备份,就会进行全datafile扫描,因为累积增量备份是比较0级备份以后的变化情况,而0级备份会被覆盖,所以这个隐含参数的设定值也会影响不同增量备份的方式的效果。

PS:以上均为个人学习之后的理解,如有错误,恳请指正。
学习来源:官方文档、RMAN 10g : How To Size the Block Change Tracking File (Doc ID 306112.1)等。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论