问题描述:巡检发现告警日志中报错ORA-00245,如下所示:
系统:centos 7.6 64位
数据库:oracle 11.2.0.4 64位
环境:rac 双节点
告警日志:
Sat Dec 31 04:57:04 2022
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_232036.trc:
ORA-00245: control file backup failed; target is likely on a local file system
异常原因:
此异常会出现在oracle 11.2.0.1.0及以后的版本中,所有平台仅rac环境会发生,因oracle 11g r2控制文件备份机制的改变,
集群中任何实例都要写入快照文件,所以此文件要对所有实例可见,进而此快照文件需要设置在共享存储中.
当前设置如下:
RMAN> show all;

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl1.f'; # default
说明:如上所示,快照控制文件设置在本地文件系统.
解决方案:
修改rman备份配置,将控制文件快照指定到共享磁盘组.(注意:只需在一个节点修改即可)
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘+DATADG/ORCL/snapcf_orcl1.f’;
相关知识:
快照控制文件作用:控制文件在数据库的运行过程中时刻都在变化,rman备份需要依赖于控制文件和恢复目录.
也就是说在整个rman备份的过程中,控制文件中的检查点信息,SCN信息和记录的文件结构信息不能改变,一旦改变那么数据的一致性就无法被保证,备份也就失去意义.
如果将控制文件锁定确实能保证数据库从备份开始到结束数据的一致性,但在锁定期间数据库无法正常进行操作,代价一样很大.
所以为了解决此问题快照控制文件应运而生,给备份开始时的控制文件做一个快照,整个备份过程都使用快照控制文件进行备份和同步操作.
快照控制文件是RMAN在系统指定位置生成的当前控制文件的一个副本.RMAN在备份或同步操作期间对实际的控制文件进行一个短暂的锁定,
并根据控制文件内容生成或刷新快照控制文件,当这个动作完成后rman就切换到快照控制文件进行备份和同步.保证了rman备份和同步的过程中使用的控制文件是不变的.

参考文档:https://blog.csdn.net/weixin_45694422/article/details/118145346