11g中关于控制文件自动备份的改进

在之前做一个测试演示的时候,使用的是11gR2的库,在说rman的备份配置的时候有一个功能时控制文件的自动备份,
CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF;
然后自己简单介绍了下,说controlfile autobackup功能还是蛮实用的,一般还是建议开启。之前自己在10g的环境中也测试过,印象中数据库级的一些操作,比如创建表空间,删除数据文件等等,都会重新生成对应的控制文件,然而在演示的时候,竟然还是掉了链子。
我们创建了一个表空间,没有自动备份控制文件,然后我们又创建了一个表空间,还是没有生成备份控制文件,在短时间内做了几个操作,都没有生成控制文件的备份,自己都有点怀疑数据库是不是故意不配合啊。如果这样,rman里面配置控制文件的自动备份感觉就没有什么实际意义了。
回来后,自己找了套10gR2的库,做了同样的操作,这个时候autobackup的功能又好使了。
我们短时间内创建了一个表空间,然后删除,然后再创建。
SQL> create tablespace data3 datafile '/u02/oracle/oradata/TEST10G/data03.dbf' size 5M;1

Tablespace created.

SQL> drop tablespace data3;

Tablespace dropped.

SQL> create tablespace data3 datafile '/u02/oracle/oradata/TEST10G/data03.dbf' size 5M reuse;

Tablespace created.

查看控制文件的备份路径,发现生成了3个对应的控制文件备份。尽管大小都一样。
-rw-r----- 1 oracle dba 14745600 Aug  8 23:16 ctl_c-1135735312-20150808-0d
-rw-r----- 1 oracle dba 14745600 Aug  8 23:17 ctl_c-1135735312-20150808-0e
-rw-r----- 1 oracle dba 14745600 Aug  8 23:17 ctl_c-1135735312-20150808-0f
这个时候就有些疑惑,倒底在演示的环境和自己之后测试环境有哪些不同之处,翻来覆去找差别,也做了一些测试,发现原来还是数据库版本的不同。
在10g的版本中,开启控制文件的自动备份,这个时候发生了创建表空间,数据文件变更的操作时,会立即生成控制文件的备份。
当然在11g里面也不是不生成控制文件,在一定的时候之后,查看备份目录还是会生成一个备份控制文件。所以控制文件自动备份功能还是起作用的,但是似乎还是有一定的延迟。
对于这个问题,没有立刻就查看官方文档求证,自己从一些trace日志里面挖掘挖掘,看看有什么发现。
结果我把延时创建的控制文件的时间戳和关键字在trace文件里搜了一圈,发现有一个文件中刚好有我需要找的内容。
 less TEST_m000_6627.trc
Starting control autobackup
*** 2015-08-01 21:11:08.014
Control autobackup written to DISK device
        handle '/u02/ora11g/flash_recovery_area/TEST/ctl_c-2182319634-20150801-10'
通过日志就能够看到,后台是开始做了一个autobackup的操作,
这个时候查看了metalink,找到一篇相关的文章。
RMAN CONTROLFILE AUTOBACKUP NOT CREATED DURING DB STRUCTURE CHANGE (文档 ID 1068182.1) 
在这篇文章中解释了这个延时的原因,还是基于性能的考虑。避免因为大量的数据库级变更产生了大量的控制文件备份。‘
官方的解释还是比较详细的。会在后台触发MMON去做控制文件的自动备份。

FIX

Beginning with Oracle Database Release 11g Release 2, Controlfile Autobackup Deferral feature has been implemented、
In order to increase performance the controlfile autobackup creation after structural changes, has been deferred.
In previous releases, one controlfile autobackup is created with each DDL command that makes structural changes in the database and we can see in the alert.log a message about controlfile autobackup creation after each DDL command executed. This can provoke serious performance problems when multiple structural changes are made together.

From Oracle Database Release 11g Release 2, RMAN takes only one control file autobackup when multiple structural changes contained in a script have been applied (for example, adding tablespaces, altering the state of a tablespace or datafile, adding a new online redo log, renaming a file, and so on ) . 

In this release, the controlfile autobackups are created by MMON slaves after few minutes of the structural changes, which increases performance.

So, It's  the expected behaviour to get the controlfile autobackup several minutes after the structural change on the database and it's also expected that no message about controlfile autobackup creation will appear in the alert.log.  
There will be generated one MMON slave trace file with the controlfile creation information, that will be a file named:  
  SID__m000_<OS_PID>.trc

当然我们可以更近一步,比如我们知道控制文件备份是一个延时的过程,那么这个延时的默认值是多少呢,是5分钟。
  1  select a.ksppinm name, b.ksppstvl value, a.ksppdesc description
  2    from x$ksppi a, x$ksppcv b
  3*  where a.indx = b.indx and a.ksppinm like '%control%delay%'
NAME                           VALUE                DESCRIPTION
------------------------------ -------------------- --------------------------------------------------------------------------------
_controlfile_autobackup_delay  300                  time delay (in seconds) for performing controlfile autobackups

所以通过这个案例我们可以发现很多时候在10g的基础上还是做了很多的改进和优化,很多功能的细节之中都加入了更多的考量,从这一点上来说,控制文件的延时自动备份还是合理的。
我们在分析这个问题的时候,还是需要细心,自己主动去发现问题,自己先去求证,再查看官方的解释,没准就会有意外的收获。

时间: 2024-08-02 13:32:06

11g中关于控制文件自动备份的改进的相关文章

[20171116]11GR2控制文件自动备份.txt

20171116]11GR2控制文件自动备份.txt SYS@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx  

FileGee文件自动备份软件,文件万无一失

大家都知道,文件自动备份是保护电脑内资料安全的一个重要手段,http://www.aliyun.com/zixun/aggregation/19352.html">FileGee个人文件同步备份系统绝对是您在文件备份方面的好帮手,FileGee有着强劲的文件自动备份效果,满足用户的各种文件自动备份需求,现在跟我一起来了解FileGee的备份设置功能吧! FileGee风信网下载地址:http://www.ithov.com/soft/21854.shtml FileGee官方下载地址:ht

FileGee轻松搞定文件自动备份

文件备份是日常文件管理的基本任务,完全借助手工的操作,不仅浪费时间,还会影响文件备份的效率.有没有一款文件自动备份软件?如何选择合适的文件自动备份软件?是文件管理人员值得深思的问题. 在日益增多的海量信息中,文件备份显得尤为重要,如果备份出错,会为以后的数据恢复带来不便.在每天繁多的文件中,我们不能完全保证手动备份不 会出现错误.文件自动备份,可有效的降低出错的可能.只要你对其进行设置,它就会自动执行,而不会出现遗忘备份的现象.什么样的文件自动备份软件,对q其 做什么样的设置才能做到文件备份的零

FileGee帮你U盘文件自动备份?

  利用FileGee实现U盘文件自动备份具体步骤: 首先,需要建立一个任务,当然这个任务的源目录或者目标目录中至少有一个是在移动存储设备上的.然后,把这个任务设置成实时执行. 任务建立后,可以在任务列表中看到这个任务.当移动存储设备插在电脑上时,任务前方的图标为,表示当前任务可以正常执行. 当移动存储设备未插上电脑,盘符不可用的情况下,任务前方的图标为,这时候任务不会自动执行,直到移动存储设备插上后才会自动执行. 插上时,任务也会触发执行.我们还需要考虑一种情况,盘符虽然一样,但可能是不同的移

win7数据库/文件自动备份(转载)

自己创建自动备份程序的优点: 1.完全自己定制,可以根据自己的需要建立各类自动处理程序: 2.运用操作系统原生服务程序,最大化利用系统资源,减少第三方程序资源消耗: 3.自己创建程序,无任何第三方辅助,杜绝服务器受病毒入侵风险: 4.运用操作系统功能,减少软件采购成本.   一.自动备份批处理程序 打开记事本程序,输入(可直接复制粘贴)以下代码:   备份数据库批处理代码: @echo off echo 备份78oa数据库 :start net stop 78oa_mdbserver xcopy

Oracle控制文件的备份方法

备份控制文件的原则是:在数据库物理结构发生变化后备份控制文件. 1.trace :用于控制文件重建 (生成的trace文件在udump) SQL> alter database backup controlfile to trace; Database altered. 以下是控制文件的备份: CREATE CONTROLFILE REUSE DATABASE "LX01" NORESETLOGS  ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS

表空间 数据文件-oracle数据库表空间中的数据文件自动扩展到32G后不再自动扩展

问题描述 oracle数据库表空间中的数据文件自动扩展到32G后不再自动扩展 CSDN移动问答oracle表空间中的数据文件自动扩展到32G后不再自动扩展,报ora-01653错误,我之后手动加了个数据文件,但是不久之后这个数据文件自动扩展到了32G又报错,请问这是什么原因,难道以后只能手动添加数据文件么????

服务器文件自动备份到另一个服务器上

问题描述 服务器文件自动备份到另一个服务器上 各位大神帮忙求解,前段时间我的一台服务器上的东西糟到而已删除, 现在想进行每天定时自动备份到另一台服务器上,以免悲剧再次发生, 自动备份的资料保留5天后自动删除,怎么做?非常感谢! 解决方案 httpclient从一个服务器传送文件到另一个服务器服务器文件自动备份工具另一个用libevent实现的echo服务器 解决方案二: 通过rsync等来在服务器之间备份同步http://www.cnblogs.com/itech/archive/2009/08

关于网站文件自动备份程序的一点思考_应用技巧

摘要:  本文提供了一种使用asp php脚本来实现网站文件备份的思路,可以实现指定文件的按天备份.  个人网站往往在虚拟主机上,对主机的控制权限很小,因此不能使用诸如任务计划来实现定时备份,我们需要换一种思路来实现相似的自动备份.  我们可以利用用户对网站的访问来实现对指定文件的按天备份.  基本思路是:用户访问网站 → 读取最后备份日期.读取当前日期然后比较,如果这两个日期不一致则调用备份程序来实现对指定文件的备份,备份完成后再写入新的日期标记,这时候用户再访问网站,日期已经是最新的了,就会