♣题目 部分
在Oracle中,什么是块改变跟踪?
♣答案部分
执行增量备份是为了只备份自上一次备份以来更改过的数据块。使用RMAN可创建数据文件、表空间或整体数据库的增量备份。在执行增量备份时,RMAN将扫描数据文件的每个块以确定自上次备份以来哪些块发生过更改。这会减小备份大小,因为只备份更改过的块。此外,由于减少了需要还原的块数,因此还会加快恢复速度。
块改变跟踪(Block Change Tracking)是在使用RMAN执行增量备份的情况下,若启用块改变跟踪,则会把自上次备份以来所有块的改变记录到文件中,这个文件称为跟踪文件,通过后台进程CTWR(Change Tracking Writer Process)对其进行实时地写入。这样在做增量备份时就可以避免扫描所有数据文件中的所有块,而改为参考跟踪文件,直接访问需要备份的块,会大大缩短RMAN备份的时间,从而提高RMAN备份的性能。当然0级备份时还是需要扫描所有的数据文件,毕竟需要创建一个基准,以此来判断哪些块发生了改变。因此,通过启用块更改跟踪,可执行快速增量备份。
跟踪文件的维护是完全自动进行的,不需要用户的干预。块改变跟踪默认是禁用的,如果配置了增量备份,那么建议开启块改变跟踪。数据库在OPEN或者MOUNT状态都可以启用块改变跟踪。可以使用如下命令开启块改变跟踪:
1ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/mydir/rman_change_track.f' REUSE;
如果是RAC环境,那么跟踪文件必须放在共享设备上。如果设置DB_CREATE_FILE_DEST参数值,那么可以直接启用:
1ALTER SYSTEM SET DB_CREATE_FILE_DEST = '+FRA' SCOPE=BOTH SID='*';
2ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
若想禁用块改变跟踪,则可以使用如下命令:
1ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
在V$BLOCK_CHANGE_TRACKING视图的输出中会显示块改变跟踪文件的位置、块改变跟踪的状态(ENABLED/DISABLED)和文件大小(字节),可以使用如下命令查看是否启用了块改变跟踪:
1COL STATUS FORMAT A8
2COL FILENAME FORMAT A60
3SELECT STATUS,FILENAME,BYTES FROM V$BLOCK_CHANGE_TRACKING;
对V$BACKUP_DATAFILE视图进行查询,可显示块改变跟踪功能对最大限度减少增量备份I/O的作用(PCT_READ_FOR_BACKUP列)。值比较高时表示RMAN在增量备份期间从数据文件中读取的块非常多。通过减少增量备份之间的时间间隔可降低这个比率。
1SELECT FILE#,
2 AVG(DATAFILE_BLOCKS),
3 AVG(BLOCKS_READ),
4 AVG(BLOCKS_READ / DATAFILE_BLOCKS) * 100 AS PCT_READ_FOR_BACKUP,
5 AVG(BLOCKS)
6 FROM V$BACKUP_DATAFILE
7 WHERE USED_CHANGE_TRACKING = 'YES'
8 AND INCREMENTAL_LEVEL > 0
9 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正确。
作者:小麦苗