前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试784】在Oracle中,什么是块改变跟踪?

【DB笔试面试784】在Oracle中,什么是块改变跟踪?

作者头像
AiDBA宝典
发布2020-05-07 15:28:16
5450
发布2020-05-07 15:28:16
举报

题目部分

在Oracle中,什么是块改变跟踪?

答案部分

执行增量备份是为了只备份自上一次备份以来更改过的数据块。使用RMAN可创建数据文件、表空间或整体数据库的增量备份。在执行增量备份时,RMAN将扫描数据文件的每个块以确定自上次备份以来哪些块发生过更改。这会减小备份大小,因为只备份更改过的块。此外,由于减少了需要还原的块数,因此还会加快恢复速度。

块改变跟踪(Block Change Tracking)是在使用RMAN执行增量备份的情况下,若启用块改变跟踪,则会把自上次备份以来所有块的改变记录到文件中,这个文件称为跟踪文件,通过后台进程CTWR(Change Tracking Writer Process)对其进行实时地写入。这样在做增量备份时就可以避免扫描所有数据文件中的所有块,而改为参考跟踪文件,直接访问需要备份的块,会大大缩短RMAN备份的时间,从而提高RMAN备份的性能。当然0级备份时还是需要扫描所有的数据文件,毕竟需要创建一个基准,以此来判断哪些块发生了改变。因此,通过启用块更改跟踪,可执行快速增量备份。

跟踪文件的维护是完全自动进行的,不需要用户的干预。块改变跟踪默认是禁用的,如果配置了增量备份,那么建议开启块改变跟踪。数据库在OPEN或者MOUNT状态都可以启用块改变跟踪。可以使用如下命令开启块改变跟踪:

代码语言:javascript
复制
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/mydir/rman_change_track.f' REUSE;

如果是RAC环境,那么跟踪文件必须放在共享设备上。如果设置DB_CREATE_FILE_DEST参数值,那么可以直接启用:

代码语言:javascript
复制
ALTER SYSTEM SET DB_CREATE_FILE_DEST = '+FRA' SCOPE=BOTH SID='*';
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;

若想禁用块改变跟踪,则可以使用如下命令:

代码语言:javascript
复制
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;

在V$BLOCK_CHANGE_TRACKING视图的输出中会显示块改变跟踪文件的位置、块改变跟踪的状态(ENABLED/DISABLED)和文件大小(字节),可以使用如下命令查看是否启用了块改变跟踪:

代码语言:javascript
复制
COL STATUS FORMAT A8
COL FILENAME FORMAT A60
SELECT STATUS,FILENAME,BYTES FROM V$BLOCK_CHANGE_TRACKING;

对V$BACKUP_DATAFILE视图进行查询,可显示块改变跟踪功能对最大限度减少增量备份I/O的作用(PCT_READ_FOR_BACKUP列)。值比较高时表示RMAN在增量备份期间从数据文件中读取的块非常多。通过减少增量备份之间的时间间隔可降低这个比率。

代码语言:javascript
复制
SELECT FILE#,
       AVG(DATAFILE_BLOCKS),
       AVG(BLOCKS_READ),
       AVG(BLOCKS_READ / DATAFILE_BLOCKS) * 100 AS PCT_READ_FOR_BACKUP,
       AVG(BLOCKS)
  FROM V$BACKUP_DATAFILE
 WHERE USED_CHANGE_TRACKING = 'YES'
   AND INCREMENTAL_LEVEL > 0
 GROUP BY FILE#;

真题1、You have not configured Oracle Managed Files (OMF) in your database. You do not want to scan the entire datafile every time an incremental backup is performed. You decide to enable the block change tracking feature. Which statement should you use to enable the block change tracking feature?

A、ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;

B、ALTER SYSTEM ENABLE BLOCK CHANGE TRACKING USING FILE <path>;

C、ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE <path>;

D、ALTER SYSTEM ENABLE BLOCK CHANGE TRACKING;

答案:C。

题目翻译过来的意思为,没有在数据库中配置Oracle管理文件(OMF)的情况下,不想每次执行增量备份时扫描整个数据文件,所以决定启用块改变跟踪功能。你应该使用哪种语句启用块更改跟踪功能?

启用块改变跟踪功能使用的是ALTER DATABASE,所以排除B和D选项。由于题目中说明,并没有配置OMF功能,所以DB_CREATE_FILE_DEST参数的值必为空,所以在启用块改变跟踪功能的时候必须使用USING FILE选项,故选项C正确。

& 说明:

有关块改变跟踪的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2140902/

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档