Oracle的block change tracking用于记录上次备份以来改变过的block信息,因此打开block change tracking可以大大加快增量备份的速度。

1. Enable block change tracking

1.1 检查数据库是否已经开启了block change tracking

SQL> set linesize 120
SQL> col filename format a60
SQL> SELECT filename, status, bytes FROM v$block_change_tracking;

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

disabled 表示未启用

1.2 开启block change tracking

SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA_DG01/beiacce/block_change_tracking.log';

Database altered.

1.3 确认block change tracking已开启

SQL> SELECT filename, status, bytes FROM v$block_change_tracking;

FILENAME                                                                         STATUS          BYTES
------------------------------------------------------------                ----------       ----------
+DATA_DG01/beiacce/block_change_tracking.log                 ENABLED      53542912

备注:启动block change tracking时,oracle会启动一个CTWR的后台进程,这个进程的作用就是把信息写入block change tracking文件。如果是RAC系统,oracle会在每个实例上都启动这个后台进程。启动CTWR进程的信息记录在alert文件中。

……

Fri Aug 16 09:38:08 2013
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA_DG01/beiacce/block_change_tracking.log'
Fri Aug 16 09:38:09 2013
Block change tracking file is current.
Fri Aug 16 09:38:10 2013
Starting background process CTWR
CTWR started with pid=92, OS id=20330
Block change tracking service is active.
Fri Aug 16 09:38:11 2013
Completed: ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA_DG01/beiacce/block_change_tracking.log'

……

2. Disable block change tracking

1.1 检查数据库是否已经开启了block change tracking

SQL> SELECT filename, status, bytes FROM v$block_change_tracking;

FILENAME STATUS BYTES
------------------------------------------------------------ ---------- ----------
+DATA_DG01/beiacce/block_change_tracking.log ENABLED 53542912

1.2 关闭block change tracking

SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;

Database altered.

1.3 确认block change tracking已关闭

SQL> SELECT filename, status, bytes FROM v$block_change_tracking;

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

备注:关闭block change tracking时,oracle会停止后台进程CTWR,停止CTWR进程的信息记录在alert文件中。另外需要注意一下,关闭block change tracking时,block change tracking文件是否也同时被删除了。如果没有被删除,可能需要执行手工删除。

……

Fri Aug 16 09:39:21 2013
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING
Fri Aug 16 09:39:22 2013
Block change tracking service stopping.
Fri Aug 16 09:39:22 2013
Stopping background process CTWR
Fri Aug 16 09:39:23 2013
WARNING: Cannot delete file +DATA_DG01/beiacce/block_change_tracking.log
Fri Aug 16 09:39:23 2013
Errors in file /app/oracle/admin/BEIACCE/udump/beiacce1_ora_18564.trc:
ORA-01265: Unable to delete CHANGE TRACKING +DATA_DG01/beiacce/block_change_tracking.log
ORA-15028: ASM file '+DATA_DG01/beiacce/block_change_tracking.log' not dropped; currently being accessed
Completed: ALTER DATABASE DISABLE BLOCK CHANGE TRACKING

……

alert日志表明删除block change tracking文件没有成功,原因是文件正被使用。使用这个文件的进程基本上就是2个,一个是CTWR,另一个就是RMAN备份。从alert日志中可以看出,停止block change tracking时是先停CTWR进程,再删除文件。因此占用这个文件的进程不太可能是CTWR,十有八九是备份进程。

删除block change tracking文件(ASM)

$> export ORACLE_SID=+ASM1
$> sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.4.0 - Production on Fri Aug 16 09:48:53 2013

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> alter diskgroup DATA_DG01 drop file '+DATA_DG01/beiacce/block_change_tracking.log';

Diskgroup altered.

如果没删除block change tracking文件,下次开启block change tracking又使用的是同一文件,会报以下错误:

SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA_DG01/beiacce/block_change_tracking.log';
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA_DG01/beiacce/block_change_tracking.log'
*
ERROR at line 1:
ORA-19751: could not create the change tracking file
ORA-19750: change tracking file: '+DATA_DG01/beiacce/block_change_tracking.log'
ORA-17502: ksfdcre:4 Failed to create file +DATA_DG01/beiacce/block_change_tracking.log
ORA-15005: name "beiacce/block_change_tracking.log" is already used by an existing alias

 

如果出现这种情况,可以在sql语句中加个reuse来重用已经存在的文件。即:

ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA_DG01/beiacce/block_change_tracking.log' reuse;

enable or disable Oracle block change tracking的更多相关文章

  1. Oracle Block Change Tracking功能(转)

    from:http://space.itpub.net/?uid-25744374-action-viewspace-itemid-732091 通过使用block change tracking功能 ...

  2. Oracle 10g Block Change Tracking特性

    Using Block Change Tracking to Improve Incremental Backup Performance 使用块改变跟踪改善增量备份的性能 The block cha ...

  3. Oracle 块修改跟踪 (Block Change Tracking) 说明

    Block ChangeTracking 是Oracle 10g里推出的特性.官网对Block change tracking 的定义如下: Adatabase option that causes ...

  4. Block Change Tracking (块改变跟踪)

    理论背景:Block ChangeTracking 是Oracle 10g里推出的特性. Block change tracking 会记录data file里每个block的update 信息,这些 ...

  5. Entity Framework Code First - Change Tracking

    In this post we will be discussing about change tracking feature of Entity Framework Code First. Cha ...

  6. Change Tracking of SQLServer

    1.Enable the change tracking at the database level. ALTER DATABASE AdventureWorks2008 SET CHANGE_TRA ...

  7. SQL Server审计功能入门:更改跟踪(Change Tracking)

    原文:SQL Server审计功能入门:更改跟踪(Change Tracking) 介绍 更改跟踪是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制.常规的,自定义变更跟踪和读取跟踪数据, ...

  8. How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows and Windows Server

    转自:https://support.microsoft.com/en-us/help/2696547/detect-enable-disable-smbv1-smbv2-smbv3-in-windo ...

  9. Oracle block 格式

    Oracle block 格式 信息参考:  http://www.ixora.com.au/ 特别感谢 overtime 大哥对我的无私的帮助和对我一直鼓励支持我的网友这些资料是没得到oracle ...

随机推荐

  1. SQL server 2008 T-sql 总结

    数据库的实现 1.添加数据:insert [into] 表名 (字段1,字段2,···) values (值1,值2,····)     其中,into可选. 2.修改数据:update 表名 set ...

  2. Eclipse下利用Maven创建SpringBoot的Restful风格程序

    参考文章:https://spring.io/guides/gs/rest-service/ 中文翻译:https://blog.dubby.cn/detail.html?id=9040 1.目标是什 ...

  3. jstl: <c:url> 标签

    这个标签主要是用来重写 URL 地址.它的使用格式如下所示:<c:url value=”value” [context=”context”] [var=”varName”] [scope=”pa ...

  4. Sublime Text 3总是出现“1 missing dependency was just installed.”

    Sublime Text 3总是出现“1 missing dependency was just installed.” 原因及结果 https://github.com/wbond/package_ ...

  5. LVM MBR分区(装载)

    必须有至少一个主分区(P),主分区个数+扩展分区个数<= 4个. 创建完主分区,可以创建扩展分区(E),扩展分区可以有1个,或者没有(扩展分区). 主分区(Primary  Partion)可以 ...

  6. AI探索(四)NumPy库的使用

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. umPy 是一个运行速度非常快的数学库, ...

  7. android Application Project目录结构

    src:存放java源文件 gen: 资源配置文件 Android4.0: 4.0 类库 Android Private Lib: 支持库 Android Dependencies: android ...

  8. C++结构体成员列表初始化

    C++关于struct和class的区别,可以看上一篇文章:c ++ class和struct[转] 结构体成员列表初始化,来个例子: #include <iostream> #inclu ...

  9. SVN管理多个项目版本库 (windows,linux 通用)

    SVN管理多个项目版本库: . 安装SVN服务器软件,路径: C:\Program Files\Subversion . 在D盘创建svn根目录D:\SVN-CM . 在D:\SVN-CM下创建SVN ...

  10. STL迭代器辅助函数——advance

    Advance(i, n) increments the iterator i by the distance n. If n > it it , the call has no effect. ...