日期:2014-05-16  浏览次数:20393 次

Oracle:启用Block Change Tracking-10g新特性

Block chage tracking是Oracle10g的一个新特性,Block change tracking进程(CTWR)记录自从上一次0级备份(只能是累计增量备份吗?)以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的提高了备份性能和速度,RMAN可以不再扫描整个文件以查找变更数据

?

?

一般情况下,block change tracking是被disabled的
SQL> select * from v$block_change_tracking;

block change tracking文件的默认位置是根据db_create_file_dest参数指定的,如果此参数未设定,在打开block change tracking时会出现ora-19773 must specify change file name的错误信息。
SQL> show parameter db_create_file_dest;
启动block change tracking
SQL> alter database enable block change tracking;
启用block change tracking后,它会自己在db_create_file_dest指定的目录下建立自己的子目录和一个系统跟踪文件,此文件为二进制文件,初始化大小为10M
SQL> select * from v$block_change_tracking;

在启动时,或者可以自己指定路径和文件名
SQL> alter database enable block change tracking using file 'D:\ORADATA\ORCL\ORCL\CHANGETRACKING\blockchange.trc';
alter database enable block change tracking using file 'D:\ORADATA\ORCL\ORCL\CHANGETRACKING\blockchange.trc'
第 1 行出现错误:
ORA-19752: 已经启用块更改跟踪
SQL> alter database disable block change tracking;
数据库已更改。
SQL> alter database enable block change tracking using file 'D:\ORADATA\ORCL\ORCL\CHANGETRACKING\blockchange.trc';
数据库已更改。
SQL> select * from v$block_change_tracking
下面我们看一看alert.log文件最后的内容:
Completed: alter database disable block change tracking
Tue Oct 12 16:33:48 2010
alter database enable block change tracking using file 'D:\ORADATA\ORCL\ORCL\CHANGETRACKING\blockchange.trc'
Block change tracking file is current.
Starting background process CTWR
2b)Bh)@ S6E0c9?0CTWR started with pid=20, OS id=4128
Block change tracking service is active.
Tue Oct 12 16:33:49 2010
Completed: alter database enable block change tracking using file 'D:\ORADATA\ORCL\ORCL\CHANGETRACKING\blockchange.trc'
Tue Oct 12 16:34:48 2010
Incremental checkpoint up to RBA [0x1fd.33ab.0], current log tail at RBA [0x1fd.33b8.0]
=================================================================================================================
以下启用Block Change Tracking和没启用Block Change Tracking特性的时间对比:

启用? ?alter database enable block change tracking;

RMAN> backup incremental level 0 format='d:\backup\%U' database;

启动 backup 于 26-5月 -08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件,
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF
_SYSTEM_422B1M98_.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF
_UNDOTBS1_422B1MC7_.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF
_SYSAUX_422B