关于BCT,你需要知道的是...

墨墨导读:本文来自墨天轮读者投稿,如需投稿可在本篇文章下方留言即可。最近使用 XTTS,里面涉及到增量备份的步骤需要开启BCT,并且RMAN的增量备份也会涉及到BCT,本文列出工作中 BCT 需要知道的相关内容,希望对大家有帮助。

BCT的意义

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


BCT的使用

数据库默认情况下的BCT是禁用的,可以通过v$block_change_tracking视图进行查询。

在启动BCT时,如果有设置oracle的OMF(oracle manage file),那么不指定路径的情况下,会自动设置在这里。


那么如果想指定路径的话只需要加一个using file 后面接一个路径名即可
首先先禁用,再重新开启。

这里发现禁用后,bct file会随着禁用而自动被删除清理。



如果在RAC的场景下,bct file是必须放在ASM共享存储里面。


BCT的相关问题

预估开启后BCT所占空间



理解为:
以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所覆盖。


基于这个覆盖,官方文档也给出一个情景的考虑,在进行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)等。

墨天轮原文链接:https://www.modb.pro/db/27453(复制到浏览器中打开或者点击“阅读原文”)

推荐阅读:144页!分享珍藏已久的数据库技术年刊

视频号,新的分享时代,关注我们,看看有什么新发现?

数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!

点击下图查看更多 ↓

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

猜你喜欢

转载自blog.csdn.net/Enmotech/article/details/107373424