Symptoms
客戶RMAN備份報錯,controlfile autobackup出錯,錯誤如下:
查看metalink,ORA-245: In RAC environment from 11.2 onwards Backup Or Snapshot controlfile needs to be in shared location (文檔 ID 1472171.1)
以下幾種情況均會出現ORA-00245錯誤:
1. In RAC environment controlfile autobackup fails with ora-0245
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. In RAC environment, backup controlfile to non shared location fails
SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/home/rac1122/test/control.bk' REUSE
*
ERROR at line 1:
ORA-245: control file backup operation failed
3. In RAC environment backing up standby controlfile to non shared location fails
SQL> alter database create standby controlfile as '/home/oracle/renostdbycntrl.ctl';
alter database create standby controlfile as
'/home/oracle/renostdbycntrl.ctl'
*
ERROR at line 1:
ORA-245: control file backup operation failed
4. In RAC environment copy current controlfile to '${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. In RAC environment, Rman backup fails if snapshot controlfile is not in shared location.
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
Cause
在 11gR2 及更高版本中,控制文件的備份在執行時不會持有 CF enqueue。對於非 RAC 數據庫,這不會造成任何影響。但是,對於 RAC數據庫,由於在 11gR2 中控制文件備份機制發生了更改,集羣中的任何實例都可以寫入到 snapshot/backup(快照/備份)控制文件。因此,Snapshot(快照)控制文件需要對所有實例都可見。從 SQL*Plus 直接創建控制文件的備份時也存在這種情況。集羣中的任何實例都可以寫入到備份控制文件。控制文件備份,即使使用 SQL“alter database
backup controlfile...”,也必須在共享設備上創建備份。
Snapshot(快照)控制文件必須可由 RAC 數據庫的所有節點訪問;如果 snapshot(快照)控制文件不在共享設備上,則在 RMAN備份獲取控制文件的 snapshot(快照)時會引發錯誤。這適用於使用 SQL*Plus 備份控制文件和在非共享位置配置了控制文件自動備份的情況。
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
解決方案是將 Snapshot/backup(快照/備份)控制文件位置更改到共享設備上,否則將會失敗,並出現 ORA-245: control file backup operation failed。
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-0245錯誤
The backup of the controlfile actualy makes a backup of the SNAPSHOT controlfile. The Snapshot 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.
Snapshot controlfile是一個控制文件的read-consistent copy
Solution
RMAN> show snapshot controlfile name;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name HMES are:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/11g/dbs/snapcf_hmes2.f'; # default
/oracle/app/11g/dbs/snapcf_hmes2.f非共享,需要設置到共享目錄,或者ASM上
2. Configure the snapshot controlfile to a shared disk:
Or in case of ASM use
本次設置爲:
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+data/snapcf_hmes2.f';
設置後,備份成功!