首页 > Oracle > 使用Block Change Tracking 缩短RMAN备份的时间!
2013
11-27

使用Block Change Tracking 缩短RMAN备份的时间!

Block Change Tracking 是在oracle 10G就推出的新特性,主要作用是用来提高RMAN备份的性能,Block Change Tracking会记录datafile里每个block的update信息,这些信息保存在tracking文件里,启动这个特性之后,RMAN就会使用trackfile里的信息,读取改变的block信息,从而提高性能。

oracle默认是禁用这个特性的,而且这个特性只在增量备份的时候才有用,如果生产系统中使用了增量备份的话,这个特性建议开启,并且BCT不需要其他维护成本。

在RMAN备份的时候,如果是第一个0级备份,oracle会扫描整个数据库,随后的增量备份使用BCT file里的信息,只扫描改变过的数据块。BCT file可以在DB_CREATE_FILE_DEST目录下找到,如果是rac环境的话,这个文件必须放在共享设备上,至于为什么就不用说明了吧。

上面说过开启BCT这个特性,不需要其他维护,如果BCT file无效时,就会reset BCT file。如果对数据库进行还原的话,那也会reset BCT file,然后重新开始tracking。当然要使用这个特性,还需要注意一点就是BCT file 的大小:

1. 为了减少BCT file所占用的空间,初始值默认是10M,每次增长10M,如果数据库在500G左右,文件不能小于20M。

2. 每个datafile在tracking file里最少需要分配320K的空间,所以如果数据库有大量的datafile,那么BCT file也会随之增大。

 

下面我们来看下BCT的应用,首先检查DB_CREATE_FILE_DEST参数的配置,默认数据库是没有配置这个参数的,为该参数设置一个值:

启动Block Change Tracking

同时可以使用v$block_change_tracking视图查看BCT的启动情况。当然也可以用另一种方式启动BCT,即在启动的时候配置参数目录:

这里带了一个reuse参数,这个选项是可选的,设置这个参数后,如果BCT file已经存在,那么oracle也会覆盖已经存在的文件。

 

禁用BCT:

当然还可以改变BCT file文件的位置,使用alter database rename 命令来修改,需要在数据库mount状态下,如果数据库不能重启,那么可以先disable这个特性,然后指定新的位置启动,这样会丢失以前在tracking file里的数据,但这样也是最快的,而且不用重启数据库。

改变BCT file 的位置:

1. 首先查看当前BCT文件的位置和状态

2. 如果可以关闭数据库,则关闭数据库

如果不能关闭数据库,先disable掉,然后用新路径启动:启动之后做第三步操作,然后忽略后面的操作

3. 在操作系统上把文件move到新的位置

4. 启动数据库到mount状态,移动change tracking file的位置,如果用新路径启动的方式,忽略这一步极其以后的步骤

5. 打开数据库就可以了

这样BCT file的路径就修改过来了。是不是so easy。妈妈再也不用担心数据库备份慢了。

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL