一.问题说明
操作系统: Redhat 5.8
数据库: 11.2.0.3
2节点RAC.
使用RMAN 备份的时候,报如下错误:
ORA-00245: control file backup failed;target is likely on a local file system
这个问题只存在Oracle 11gR2以后的RAC 环境。
二.ORA-245 触发条件
在以下的5种环境下,会出现ORA-00245的错误。
2.1 RAC 环境下,自动备份备份控制文件,会因为ORA-245的错误而失败
Autobackup of controlfile in RMAN isfailing 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.2 RAC 环境下,备份控制文件到非共享的本地路径,也会失败
SQL> ALTER DATABASE BACKUP CONTROLFILETO '/u01/backup/control.bk' REUSE
*
ERROR at line 1:
ORA-245: control file backup operation failed
2.3 在RAC 环境下,创建standby controlfile 到非共享的本地路径也会失败
SQL> alter database create standby controlfileas '/home/oracle/renostdbycntrl.ctl';
alter database create standby controlfileas
'/home/oracle/renostdbycntrl.ctl'
*
ERROR at line 1:
ORA-245: control file backup operation failed
2.4 在RAC 环境下,copy 当前的控制文件到本地路径
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
2.5 RAC 环境下,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
三. 错误原因
From 11gR2onwards, the controlfile backup happens without holding the controlfileenqueue. For non-RAC database, this doesn't change anything. But for RACdatabase, due to the changes made to the controlfile backup mechanism in 11gR2,any instance in the cluster may write to the snapshot controlfile. Due to thissnapshot controlfile need to be visible to all instances.
--从Oracle11gR2 开始,在备份控制文件时,不在需要锁住controlfile enqueue。对于非RAC 的数据库, 没有任何改变,但对于RAC 数据库,因为控制文件备份机制的改变,集群中的任何instance 可以需要写入到快照控制文件,因此snapshot controlfile需要对所有实例是可见的。
In RACenvironment any form of controlfile backup may fail with ORA-0245 if thelocation of the Snapshot Controlfile is not a shared location.
--在RAC 环境下,如果snapshot controlfile 不在共享的位置,控制文件任何形式的都可能报ORA-245的错误。
The backup ofthe controlfile actualy makes a backup of the SNAPSHOT controlfile. TheSnapshot controlfile is created when the controlfile is about to be backed up.
--控制文件的备份实际上是生成一个SNAPSHOT controlfile,在备份时生成快照文件。
The Snapshotcontrolfile is a read-consistent copy of the controlfile.
--快照控制文件是控制文件的一个read-consistent copy。
The snapshotcontrolfile MUST be accessible by all nodes of a RAC database, if the snapshotcontrolfile does not reside on a shared device error will be raised at the timeof RMAN backup while taking snapshot of controlfile.
--快照控制文件必须能被所有节点访问,如果快照控制不是存放在共享设备上,那么在RMAN 进行控制文件的快照备份时就会报错。
This applies to backingup controlfile using sqlplus / having autobackup of controlfileconfigured on non-shared location.
ORA-245 error message description
----------------------------------------
00245, 00000, "control file backup operation failed"
*Cause: Failed to create a control file backup because some process signaled anerror during backup creation.
*Action: Check alert files for further information. This usually happens becausesome process could not access the backup file during backup creation. Anyprocess of any instance that starts a read/write control file transaction musthave an access to the backup control file during backup creation.
四. 解决方法
4.1. 检查快照控制文件位置
RMAN> show snapshot controlfile name;
4.2 配置snapshot controlfile 到共享位置
RMAN> CONFIGURE SNAPSHOT CONTROLFILENAME TO '<shared_disk>/snapcf_<DBNAME>.f';
如果使用了ASM,就指定到对应的ASM disk group:
RMAN> CONFIGURE SNAPSHOT CONTROLFILENAME TO '+<DiskGroup>/snapcf_<DBNAME>.f';
In RAC environment from 11.2 onwards BackupOr Snapshot controlfile needs to be in shared location [ID 1472171.1]
RMAN backup fails with Ora-00245 AndRman-08132 [ID 1365484.1]
RMAN BACKUP TO LOCAL DEVICE WITH SNAPSHOTON SHARED FAILS ORA-00245 [ID 1516654.1]
---------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Skype: tianlesoftware
QQ: tianlesoftware@gmail.com
Email: tianlesoftware@gmail.com
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware