一.问题说明
操作系统: 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 controlfile enqueue. For non-RAC database, this doesn't change anything. But for RAC database, 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 this snapshot controlfile need to be visible to all instances.

--从Oracle11gR2 开始,在备份控制文件时,不在需要锁住controlfile enqueue。对于非RAC 的数据库, 没有任何改变,但对于RAC 数据库,因为控制文件备份机制的改变,集群中的任何instance 可以需要写入到快照控制文件,因此snapshot controlfile需要对所有实例是可见的。

In RAC environment any form of controlfile backup may fail with ORA-0245 if the location 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 Snapshot controlfile is a read-consistent copy of the controlfile.

--快照控制文件是控制文件的一个read-consistent copy。

The snapshot controlfile MUST be accessible by all nodes of a RAC database, if the snapshot controlfile 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 controlfile configured 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 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.

四. 解决方法

4.1. 检查快照控制文件位置
RMAN> show snapshot controlfile name;

4.2 配置snapshot controlfile 到共享位置
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME 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]

最新文章

  1. JavaScript学习笔记-简单的欢迎cookie
  2. JS小记
  3. VC7 HTML Dialog开发实例讲解
  4. MVC4.0 使用Form认证,自定义登录页面路径Account/Login
  5. nginx日志切割并使用flume-ng收集日志
  6. lightoj1027(期望dp)
  7. xamarin之 安装工具介绍
  8. OCR图片识别引擎
  9. BugKu 这是一张单纯的图片
  10. WPF样式中TargetType 属性 (Property) 和 x:Key 属性 (Attribute)
  11. jquery调用iframe里面的方法
  12. centos安装discuz论坛
  13. HDFS简单测试
  14. LINQ to SQL 中 Concat、Union、Intersect、Except 方法的使用
  15. Codeforces 251C Number Transformation
  16. [codeforces][Educational Codeforces Round 53 (Rated for Div. 2)D. Berland Fair]
  17. Python自动化开发 - 面向对象(一)
  18. iOS页面性能优化
  19. DOS批处理基础
  20. 致Python初学者:Anaconda入门使用指南

热门文章

  1. CSS文本溢出效果&amp;滚动条样式设置
  2. 聚焦LS-MIMO的四大层面,浅谈5G关键技术
  3. AWT02-ContainerAPI
  4. 阿里云,批量删除oss所有的bucket
  5. Vagrant批量安装CentOS7
  6. JAVA中创建线程池的五种方法及比较
  7. 面试官问我:Object o = new Object() 占用了多少个字节?
  8. 你只用do-while来实现循环?太浪费了!
  9. Python之excel第三方库xlrd和xlwt
  10. Vitis AI--个人调试篇