Oracle block change tracking
Table of Contents
1 什么是块追踪
Block Change Tracking(块跟踪)主要用于RMAN备份的增量备份,将自从上一次备份以来数据块的变化记录到block change tracking文件中,相关后台进程CTWR(Change Tracking Writer), 主要目的是改善增量备份性能,RMAN可以不再扫描整个文件以查找变更数据。第一个0级的增量备份扫描整个datafile。 随后的增量备份使用block changetracking file的信息,只扫描自上次备份以来被标记为change 的block,RMAN 不会对该文件进行备份。。从10g开始提供此功能。
Block change tracking 默认是禁用的,如果备份策略中使用incrementalbackup,那么建议开启block change tracking。 启用后,不需要其他的维护操作。
在备份期间,change tracking会维护已经标记为change 的block 的bitmap 信息。
trace 记录保留
Oracle 会自动管理change tracking file的大小,只保留最近最近8次blockchange 的信息。 超过8次, 那么最前面的block bitmap 信息会被current change 覆盖。要考虑change tracking file 的8次限制与备份策略的关系。 如果我们在0级备份之后又进行了7次不同的增量备份,那么这时block change tracking 就包含了8个bitmaps信息。 如果我们在进行1级的增量备份,那么此时的增量就不是最优的, 还会扫描整个data file。 因为我们之前0级的bitmap信息被我们当前的bitmap 信息覆盖掉了,这样就没有了参考的依据。所以,两次全量备份的时间间隔要控制在8天以内(包含)。
trace 文件存放
oracle 不建议使用RAWdevice来存放block tracking. 如果是RAC一定要放到共享存储上。
trace 文件重置
- change tracking file 变为无效。
- RMAN 进行恢复时。
文件大小
- 与数据库中的数据文件总大小相关,与数据量无关。每次递增10M,初始化文件时,300G 数据文件会配置10M ,600G 数据文件会配置20m .1T 及以上数据文件以32M 为标准。
- 每个datafile,在tracking file里最少需要分配320k的空间,所以如果有大量的小data file, change tracking file 也会相对较大。
2 块追踪相关操作
-
开启
alter database enable block change tracking using file '+DATA';
-
关闭
alter database disable block change tracking;
-
修改追踪文件
在保留文件内容的前提下,修改文件的路径与名称,需要关闭实例。通过开启与关闭 block_change_track的方式也可以修改文件路径和名称,但是会丢失文件中的内容。
- 关闭数据库
- 操作系统全名移动文件到其他路径,重命名等。
-
启动数据库实例到mount状态,然后执行rename操作
alter database rename file '+DATA/BOSS/CHANGETRACKING/ctf.305.1029032819' to '+ARCH/BOSS/CHANGETRACKING/ctf.306.1040683553';
- 启动数据库
3 相关视图
3.1 v$block_change_tracking
-
开启前
select * from v$block_change_tracking; STATUS FILENAME BYTES ---------- ------------------------------ ---------- DISABLED
-
开启后
SET LINES 32767 PAGES 5000 COL FILENAME FOR A60 select * from v$block_change_tracking; STATUS FILENAME BYTES CON_ID ---------- ------------------------------------------------------------ ---------- ---------- ENABLED +ARCH/BOSS/CHANGETRACKING/ctf.306.1040683553 32571392 0
Created: 2020-05-17 Sun 23:02