Oracle 块修改跟踪 (Block Change Tracking)

简介

Block ChangeTracking 是Oracle 10g里推出的特性,简称BCT。
BCT 的状态有两种:enable 表示已经启用BCT ,disable 表示没有启用。该特性默认是关闭的,即disabled。
BCT启用以后将会在后台创建一个名称为CTWR 的进程。
块变化跟踪文件是位图文件。
如果是RAC 环境,change tracking file 必须放在共享设备上。
查询BCT状态:

select status from V$block_change_tracking;

BCT的作用

Block change tracking 会记录datafile(数据文件)里每个block的update 信息,这些tracking信息保存在tracking 文件里。 当启动block change tracking 后,RMAN 使用trackingfile里的信息,只读取改变的block信息(扫描自上次备份以来被标记为change 的block),而不用在对整个data file进行扫描,从而提高了RMAN 备份的性能。
当启用了incrementalbackup时,建议开启block change tracking。 启用BCT后,不需要其他的维护操作。
数据库在每次备份之前执行位图切换。OracleDatabase自动管理更改跟踪文件中的空间,以保留包含八个最新备份的块更改数据。当到达8个位图的最大值后,最老的位图将被跟踪当前变化的位图覆盖。
在开发增量备份策略时,请考虑8位图的限制。例如,如果执行0级数据库备份,然后执行7个不同的增量备份,那么块更改跟踪文件现在包括8位图。如果随后进行了累积级1增量备份,则rman无法优化备份,因为与parentlevel 0备份对应的位图会被跟踪当前更改的位图覆盖。
关于不同级别增量备份的概念可查看文章“RMAN教程—备份”

BCT文件位置

BCT是针对整个数据库的。默认情况下,changetracking文件是作为一个Oracle托管文件创建的。由DB_CREATE_FILE_DEST 初始化参数设定默认位置。也可以将更改跟踪文件放置在您选择的任何位置,方法是在启用块更改跟踪时指定它的名称。Oracle不建议使用原始设备(即没有文件系统的磁盘)作为更改跟踪文件。
如果是RAC 环境,change tracking file 必须放在共享设备上。
RMAN不支持BCT文件的备份和恢复。当数据库确定BCT文件无效时,它将重置BCT踪文件。如果您恢复整个数据库或一个子集,那么数据库将重置BCT文件并再次开始跟踪更改。进行0级增量备份后,下一个增量备份可以使用更改跟踪数据。
查询BCT文件名称及位置:

select filename from  V$block_change_tracking;

BCT文件的大小

BCT文件的大小与数据库的大小和启用重做线程的数量成比例。BCT文件的大小可以随着数据库的更改而增加或减少。大小与数据库更新的频率无关。
通常,单个实例的BCT文件所需的空间大约是要跟踪的数据块大小的1/30,000。对于Oracle RA,它是数据库大小的1/30,000,乘以启用的线程数。
为了避免在数据库增长时分配空间的开销,BCT文件大小从10兆字节开始。新空间以10 MB的增量分配。因此,对于任何高达300GB的数据库,文件大小不小于10mb,对于高达600GB的数据库,文件大小不小于20mb,依此类推。
对于每个数据文件,无论数据文件的大小如何,BCT文件中至少分配320 kb的空间。因此,如果您有大量相对较小的数据文件,那么对于包含相同数据的较大数据文件的数据库来说,BCT文件要大一些。

启用或关闭BCT

数据库在open 或者 mounted 状态都可以启用blockchange tracking。
如果该参数没有设置,并且数据库是open 状态,可可以修改该参数。
修改默认位置:

alter system set db_create_file_dest = '/u01/bct/' scope=both sid='*';

开启BCT并指定BCT文件路径:

alter database enable block change tracking using file 'E:\oracle\zeng\oradata\BCT\bct.txt' reuse;

reuse 关键字表示如果指定的文件存在覆盖掉已经存在的文件。
关闭BCT特性:

alter database disable block change tracking;

当disable BCT 的时候跟踪文件将会被删除。

移动BCT文件

要移动BCT文件,请使用ALTER DATABASE RENAME file语句。数据库必须是mounted状态。该语句更新控制文件以引用新的位置并保存更改跟踪文件的内容。如果无法关闭数据库,则可以禁用和启用块更改跟踪。在这种情况下,您将丢失现有块更改跟踪文件的内容。
如果可以,先关闭数据库:

shutdown immediate

使用主机操作系统命令,将BCT文件移动到它的新位置。
mount数据库并将BCT文件移动到有更多空间的位置。例如:

alter database rename file '/disk1/bct/RDBMS/changetracking/o1_mf_2f71np5j_.chg' to  '/disk2/bct/RDBMS/changetracking/o1_mf_2f71np5j_.chg';

打开数据库:

alter database open;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值