墨墨导读:本文来自墨天轮读者投稿,如需投稿可在本篇文章下方留言即可。最近使用 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

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

点击下图查看更多 ↓

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

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

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

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

  1. 你应该知道的25个非常有用的CSS技巧

    在我们的前端CSS编码当中,经常要设置特殊的字体效果,边框圆角等等,还要考虑兼容性的问题, CSS网页布局,说难,其实很简单.说它容易,往往有很多问题困扰着新手,在中介绍了非常多的技巧,这些小技巧与知 ...

  2. 关于机器学习,你应该知道的3个热门专业术语

    https://www.toutiao.com/a6683842829510246923/ 2019-04-25 22:43:48 关于机器学习,你应该知道的3个热门专业术语 原创: 吴郦军.罗人千 ...

  3. 有哪些事情是你成为程序员之后才知道的?

    来源 | 三太子敖丙(ID:JavaAudition) 昨天我教练问我:"有哪些事情是你成为程序员之后才知道的."我就写下来了. 身穿一件微微起球的格子衫,背着工整的双肩包,头发乱 ...

  4. 你需要知道的requestAnimationFrame

    你需要知道的requestAnimationFrame 随着前端的发展,css已经能够实现非常多的动画特效,但是仍然存在css无法完成的动画任务(比如页面滚动),通常的解决方案都是使用js中的setI ...

  5. 《抓住听众心理——演讲者要知道的100件事》一20.人们学习的最优长度是20分钟...

    本节书摘来异步社区<抓住听众心理--演讲者要知道的100件事>一书中的第1章,第20节,作者: [美]Susan M. Weinschenk 译者: 杨妩霞 , 杨煜泳 责编: 赵轩,更多 ...

  6. git分支指的是_你一定知道的Git分支模型

    原标题:你一定知道的Git分支模型 写在前面 本文不是一篇Git入门指南,也不是 Git命令行使用技巧的讲解,而是谈谈作者在过往工作中使用的几种代码版本管理工具的一些体会,同时重点讲解一下Git的分支 ...

  7. 29 个你必须知道的 Linux 命令

    29 个你必须知道的 Linux 命令 2016-08-12    分类:操作系统.编程开发.首页精华暂无人评论     来源:dwqs 分享到:更多0 虽然Linux发行版支持各种各样的饿GUI(g ...

  8. SQL Server 2005:你应该知道的13件事情

    距离微软的SQL Server 2005正式版的推出,已经将近一年的时间.随着最近两份研究报告的出炉,SQL Server 2005又引起了业界的关注和评论--微软凭借SQL Server 2005取 ...

  9. linux 终端 画圆,16个圆桌面Linux用户必须要知道的Shell命令

    16个圆桌面Linux用户必须要知道的Shell命令 16个圆桌面Linux用户必须要知道的Shell命令 日期:2014-05-16 浏览次数:20305 次 16个桌面Linux用户必须要知道的S ...

  10. 物联网产品:你需要知道的9种智能家居产品

     前NASA科研人员:你需要知道的9种智能家居产品 width="22" height="16" src="http://hits.sinajs. ...

最新文章

  1. AndroidManifest.xml文件详解(activity)(三)四种工作模式
  2. PAT 1037 在霍格沃茨找零钱(20)(代码+思路)
  3. 想从事分布式系统,计算,hadoop等方面,需要哪些基础,推荐哪些书籍?--转自知乎...
  4. 声光调制器实验研究_脉冲光抽运原子钟研究取得进展
  5. java项目使用mybatis
  6. 什么是pdh光端机?pdh光端机产品优点介绍!
  7. java实验金额转换_java 数字金额转换中文金额
  8. oracle身份管理器,分析Oracle身份管理器的各个元素(下)
  9. 搭建内网yum服务器
  10. osg geometry清空vertex
  11. 转载 Assert断言知识
  12. JavaScript 开闭原则OCP
  13. 黄聪:C#设置Word中表格某个列宽
  14. 隐藏版本信息号返回服务器名,Apache服务器隐藏版本号和系统
  15. 系统集成项目管理工程师(试题分析、考试大纲、教材目录)
  16. c语言求婚代码大全,求一个C语言表白的代码
  17. natapp使用教程
  18. 通过js的File对象获取图片的base64字符串
  19. 【重识云原生】第六章容器基础6.4.10.3节——StatefulSet实操案例-部署WordPress 和 MySQL
  20. 【C语言进阶】数组、指针、函数——传参篇

热门文章

  1. 使用wordpress_为什么我使用WordPress进行教育
  2. linux内核锁死怎么解决_解决Linux内核中的2038年问题
  3. opensource项目_Opensource.com的写作主题从A到Z
  4. (2)HTML基本标签
  5. 程序| 只要使用这个功能,程序运行速度瞬间提升,高到离谱!
  6. 关于浮点数的剪不断理还乱
  7. Bootstrap 响应式设计
  8. 二进制和八进制表示法
  9. Git笔记(32) 高级合并
  10. java虚拟机标志_《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合...