适用于:
Oracle Database Backup Service - 版本 N/A 和更高版本
Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
本文档所含信息适用于所有平台
从11gR2开始,controlfile备份时不再持有controlfile enqueue。对于非RAC数据库,这个改变没有任何影响。但是对于RAC数据库,由于11gR2中controlfile备份机制的改变,集群中任何实例都可能写snapshot controlfile。因此snapshot controlfile需要被所有实例可见。
Snapshot controlfile必须可被RAC数据库中所有的节点访问,如果snapshot controlfile不放置于共享设备,那么RMAN备份阶段产生snapshot controlfile时就会报错。
这适用于当使用sqlplus备份控制文件或者controlfile自动备份配置在非共享存储的场景。
ORA-245错误消息描述
00245, 00000, "control file backup operation failed"
*Cause: Failed to create a control file backup because some process
signaled an error during backup creation.
*Action: Check alert files for further information. This usually happens
because some process could not access the backup file during
backup creation. Any process of any instance that starts a
read/write control file transaction must have an access to the
backup control file during backup creation.
说明
1. 在RAC环境控制文件自动备份发生ora-245错误
Autobackup of controlfile in RMAN is failing with error:
RMAN-571: ===========================================================
RMAN-569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-571: ===========================================================
RMAN-3009: failure of Control File and SPFILE Autobackup command on
ORA_DISK_1 channel at 10/27/2010 12:13:31
ORA-245: control file backup operation failed
2. 在RAC环境,备份控制文件到非共享存储失败
SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/path/control.bk' REUSE
*
ERROR at line 1:
ORA-245: control file backup operation failed
3. 在RAC 环境备份standby controlfile到非共享存储失败
SQL> alter database create standby controlfile as '/path/renostdbycntrl.ctl';
alter database create standby controlfile as
'/path/renostdbycntrl.ctl'
*
ERROR at line 1:
ORA-245: control file backup operation failed
4. 在RAC环境拷贝当前controlfile到'${DB_BACKUP_DIR}/rac_tnctv_control.bak';
channel ch1: starting datafile copy
copying current control file
RMAN-571: ===========================================================
RMAN-569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-571: ===========================================================
RMAN-3009: failure of backup command on 10/07/2011 11:36:42 channel at ch1
ORA-245: control file backup operation failed
5. 在RAC环境,若snapshot controlfile 不在共享存储,rman备份失败
RMAN-00571: ========================================================
RMAN-00569: ============ ERROR MESSAGE STACK FOLLOWS =============
RMAN-00571: =========================================================
RMAN-03009: failure of resync command on default channel at 03/13/2012 10:19:41
ORA-00245: control file backup operation failed
6. 在RAC环境,没有RMAN活动,但是controlfile自动备份由于数据库结构变化而创建。比如,增加数据文件或者可自动扩展的数据文件大小调整。Alert.log中显示:
2016-12-30 23:46:10.244000 +00:00
Errors in file /path/db_name_m000_24118.trc:
ORA-19624: operation failed, retry possible
ORA-19504: failed to create file "/path/c-3364950485-20161230-00.cf"
ORA-27040: file create error, unable to create file
SVR4 Error: 2: No such file or directory
Additional information: 1
发生条件
只影响Real application Cluster (RAC),11.2以上。
症状
在RAC环境,如果snapshot controlfile不在共享存储上,任何形式的控制文件备份都可能由于ORA-0245错误而失败。Controlfile的备份实际上产生一个SNAPSHOT Controlfile 的备份。Snapshot controlfile在controlfile即将被备份时创建。Snapshot controlfile是一个controlfile的read-consistent拷贝。
注意:当备份位置不是共享存储时也可能引发另一个错误,参考
RMAN BACKUP TO LOCAL DEVICE WITH SNAPSHOT ON SHARED FAILS ORA-00245 (Doc ID 1516654.1)
根据bug 18073805(关闭为’not a bug’),当文件的位置不是共享存储时,"alter database backup controlfile to <file>" 也可能导致ORA-00227错误。
规避方法
解决方案:
这是一个RAC特有的配置问题,正确的配置如下:
需要RAC环境中的snapshot controlfile在一个共享的存储上
1. 检查snapshot controlfile的位置:
RMAN> show snapshot controlfile name;
2. 配置snapshot controlfile到一个共享存储:
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '<shared_disk>/snapcf_<DBNAME>.f';
或者如果使用了ASM
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+<DiskGroup>/snapcf_<DBNAME>.f';
补丁
NA
历史记录
02-07-2012 created and Published alert
07-12-2015 updated
参考
BUG:16012614 - ORA-245 ON RMAN CONTROLFILE BACKUP ON LOCAL DEVICE WITH SNAPSHOT ON SHARED
BUG:10263733 - SNAPSHOT CONTROLFILE USED BY RMAN MUST RESIDE ON SHARED DEVICE FOR RAC DATABASE
BUG:10252378 - CONTROLFILE AUTOBACKUP FAILS WITH ORA-00245: CONTROL FILE BACKUP OPERATION FAILE
BUG:12311429 - ALTER DATABASE BACKUP CONTROLFILE FAILS WITH ORA-245
NOTE:1516654.1 - RMAN BACKUP TO LOCAL DEVICE WITH SNAPSHOT ON SHARED FAILS ORA-00245
BUG:17824928 - ORA-00245 ERROR RMAN BACKUP WITH SNAPSHOT ON SHARED FAILS
BUG:18073805 - ORA-227: CORRUPT BLOCK DETECTED IN CONTROL FILE
BUG:13085539 - ORA-245 OCCURS DURING RMAN COPY CORRENT CONTROLFILE.
BUG:13780443 - CONTROLFILE BACKUP MUST RESIDE ON SHARED DEVICE WITH RAC DATABASE