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

简介: 在之前做一个测试演示的时候,使用的是11gR2的库,在说rman的备份配置的时候有一个功能时控制文件的自动备份, CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF; 然后自己简单介绍了下,说controlfile autobackup功能还是蛮实用的,一般还是建议开启。

在之前做一个测试演示的时候,使用的是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的基础上还是做了很多的改进和优化,很多功能的细节之中都加入了更多的考量,从这一点上来说,控制文件的延时自动备份还是合理的。
我们在分析这个问题的时候,还是需要细心,自己主动去发现问题,自己先去求证,再查看官方的解释,没准就会有意外的收获。


目录
相关文章
|
5天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
2429 16
|
6天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1067 3
|
云安全 安全 网络安全
|
5天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
|
6天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
18天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3219 50
|
12天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2116 2
|
11天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。

热门文章

最新文章