oracle控制文件生成_一场因快照控制文件设置不当引起的备份bug

概述

记录一次因快照控制文件配置不当导致备份脚本不定时bug的报错,下面一起来看看吧~

先介绍下快照控制文件的概念。以下基于oracle11.2.0.4


快照控制文件

快照控制文件是由RMAN恢复管理器在系统指定位置生成的当前控制文件的一个副本。

控制文件在整个数据库生命期中在不断的时时刻刻发生变化,RMAN备份需要依赖于控制文件或恢复目录,也就是说需要知道备份开始时的检查点SCN以及所有文件结构信息并且在整个备份期间这些信息需要保持一致,但又不能锁定控制文件(锁定操作无法执行检查点,切换日志等)。因此既要保持一致性,又不影响数据库的正常操作。快照控制文件就应运而生了。RMAN只在备份或同步操作期间对实际控制文件进行一个短暂的锁定,并根据其内容来生成或刷新快照控制文件。一旦该动作完成之后,RMAN将切换到使用快照控制文件进行备份及同步操作。从而保证备份期间控制文件,数据文件等等的一致性。

综上所述,其主要作用是使用RMAN同步恢复目录或备份时能得到一个一致性的控制文件。


报错

最近发现1级增备脚本有时日志会报错:

RMAN-03009: failure of Control File and SPFILE Autobackup command on c1 channel at 05/14/2019 03:28:23ORA-00245: control file backup failed; target is likely on a local file systemRMAN> 

看了下脚本内容:

14c300dfa52fc2312d701dfef1adef06.png

发现其实是快照控制文件的问题

bb2b57df40ebae2cd25971fef8651455.png

原因:

查询MOS发现是Oracle 11.2上Oracle改变了控制文件镜像的访问方式。11.2之前,RAC的各个节点上的ORACLE_HOME/dbs目录分别保存镜像。而11.2之后,Oracle要求这个镜像控制文件在两个节点上都可以访问到,因此可以通过设置控制文件镜像到共享磁盘的方式解决这个问题。总之11.2rac中,snapshot controlfile位置一定要改到共享目录下,否则在rman备份时,会遇到(不是每次都遇到)如下错误:

e12f45e5b43373b45431b3cd5f0aaed1.png

解决方法:

ORA-245: In RAC environment from 11.2onwards Backup Or Snapshot controlfile needs to be in shared location (文档 ID 1472171.1)

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RFDATA/snapcf_RFDB1.f'; 
e2fcc8859f219cc8844b8f3172fbb7ed.png

修复控制文件配置后备份脚本执行都不会报错了。


之所以发现这个问题,其实是因为归档空间满(ASM空间),发现跟理解的不太一样,因为我们设置正常是放在本地的,不存放在ASM的,然后去看了下备份情况(最近几天没有备份),看了日志才发现是快照控制文件的问题。

我们一般都习惯用rman去备份,但是RAC和单实例一些配置上的区别也是需要注意的,今天这个报错就是其中一个例子,平时还是要多加注意的,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

ce5980fb584b1742bd921e4b3788f00d.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值