概述
记录一次因快照控制文件配置不当导致备份脚本不定时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> 看了下脚本内容:

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

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

解决方法:
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'; 
修复控制文件配置后备份脚本执行都不会报错了。
之所以发现这个问题,其实是因为归档空间满(ASM空间),发现跟理解的不太一样,因为我们设置正常是放在本地的,不存放在ASM的,然后去看了下备份情况(最近几天没有备份),看了日志才发现是快照控制文件的问题。
我们一般都习惯用rman去备份,但是RAC和单实例一些配置上的区别也是需要注意的,今天这个报错就是其中一个例子,平时还是要多加注意的,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~


430

被折叠的 条评论
为什么被折叠?



