Block Change Tracking

       改变跟踪技术又叫块改变跟踪技术,英文叫做BLOCK CHANGETRACKING,还是英文的好理解,说白了就是把上级备份以来所有块的改变记录到文件中,这个文件称为跟踪文件,通过后台进程对其进行实时的写入,这样就可以避免扫描所有数据文件中的所有块,改为参考跟踪文件,直接访问需要备份的块,当然0级备份时还是需要扫描所有的数据文件,这也很好理解,毕竟需要创建一个基准,以此来判断哪些块发生了改变。
默认情况下,块跟踪是关闭的,因为会给数据库带来一些额外的开销,不过这开销估计也就象归档和非归档模式之间的差别一样,如果DB中的块有频繁修改操作,那么打开此功能对于RMAN备份操作来讲还是很有好处的。

1.查看当前是否开启了块跟踪

SQL> select * from v$block_change_tracking;

STATUS     FILENAME                            BYTES
---------- ------------------------------ ----------
DISABLED


2.开户块跟踪

SQL> alter database enable block change tracking;

Database altered.


或加文件名

SQL> alter database enable block change  tracking using file'/opt/oracle/oradata/blktrace/blk_trace.dbf';
 


Database altered.

注:在RAC环境中,change tracking file需要放在共享存储上

block change tracking file的大小和数据库的大小及 enabledthreads of redo 的数量有关系,tracking file 的大小会根据数据库大小的变化和变化, 和更新频率没有关系。




SQL> select * from v$block_change_tracking;

STATUS     FILENAME                            BYTES
---------- ------------------------------ ----------
ENABLED    +DATA/rac/changetracking/ctf.2   11599872
           95.833629455

3.关闭块跟踪
SQL> alter database disable block change tracking;

Database altered.

SQL> select * from v$block_change_tracking;

STATUS     FILENAME                            BYTES
---------- ------------------------------ ----------
DISABLED

SQL>

4. 改变change tracking file的位置

1) 不关闭数据库的方式

SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;

SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'new_location';

注意:这种方式会丢失change tracking file的内容

2) 关闭数据库的方式

SQL> SELECT FILENAME FROM V$BLOCK_CHANGE_TRACKING;(确定当前的文件名)

SQL> SHUTDOWN IMMEDIATE

用操作系统命令将文件move到新路径

SQL> ALTER DATABASE RENAME FILE

'/disk1/changetracking/o1_mf_2f71np5j_.chg' TO

'/disk2/changetracking/o1_mf_2f71np5j_.chg';


SQL> ALTER DATABASE OPEN;



你可能感兴趣的:(Block Change Tracking)