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. hdu 4737 A Bit Fun 尺取法

    A Bit Fun Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Proble ...

  2. GreenDao 多表事务操作

    场景:Android APP多表操作事务管理 使用Android自带的sql操作类操作的时候需要手动处理事务,使用GreenDao的时候不用管了,啥都处理好了.但是,如果是多表操作的话,怎么统一管理事 ...

  3. Oracle中的BLOB和CLOB【转载】

    原文地址:http://jelly.iteye.com/blog/65796 一.区别和定义 LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多 ...

  4. 在调用boostrap的model时获取到是哪个html元素调用

    调用的html代码: <a class="bk-round bk-border-info bk-border-darken bk-bg-lighten bk-border-3x bk- ...

  5. PHP error_get_last() 函数

    error_get_last() 函数返回最后发生的错误 返回了一个关联数组,描述了最后错误的信息,以该错误的 "type". "message"." ...

  6. FilterDispatcher处理流程

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 前身是:org.apache.struts2.dispatc ...

  7. sp_rename sqlserver 表 列 索引 类型重命名

    --[语法] sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object ...

  8. Generator函数介绍

    Generator函数 基本概念 英文意思为 "生成器". generator函数是es6提供的一种异步编程解决方案,语法行为与传统函数完全不同.从状态上,首先我们把他理解成一种状 ...

  9. RK30SDK开发板驱动分析(一):platform device 的概念与注册

    做过51单片机或者ARM开发的人都知道,单片机内部都有自己的“片内外设”,比如UART,比如I2C,比如SPI等等... 写单片机程序的时候,比如对于UART的驱动,我们都是在程序中直接写一套函数,来 ...

  10. Eclipse 快捷键大全(群里共享的,留下来以后兴许会用到)

    Eclipse快捷键大全Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行 ...