In this post, we are going to learn about the ORA-00245. 

A snapshot controlfile is a read-consistent copy of a database controlfile which RMAN creates because the controlfile is changed constantly. As of Oracle 11.2 (11.2.0.2 to more precise), the snapshot controlfile must be on a location shared by all RAC nodes in a cluster (it must be accessible by all nodes on which instances for a RAC database can run). If you do not do so, you most likely will receive an ORA-00245 (ORA-00245: control file backup operation failed) when running an RMAN backup.

Although this is a requirement as of 11.2, when you create a RAC database using dbca the default location will still be the $ORACLE_HOME/dbs which in most cases is a non-shared location. Possible shared locations: cluster filesystems like OCFS and GPFS, ACFS and ASM.

PROBLEM:

While taking RMAN backup in Oracle RAC database, getting below error.

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of resync command on default channel at 12/10/2016 22:16:52
ORA-00245: control file backup failed; target is likely on a local file system
Recovery Manager complete.
No lines match the search criteria.

SOLUTION:

Check the snapshot controlfile location in rman configuration.

RMAN> show all;

RMAN configuration parameters for database with db_unique_name TESTDB2 are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
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 ENCRYPTION ALGORITHM ‘AES128’; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC’ AS OF RELEASE ‘DEFAULT’ OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/app/oracle/product/12.1.0.2/dbhome_1/dbs/snapcf_TESTDB21.f’; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/app/oracle/product/12.1.0.2/dbhome_1/dbs/snapcf_TESTDB21.f’; # default

The error is because, controlfile location is set to non shared file system.

To fix it, change the configuration to point it to a shared location or ASM disk.

RMAN> configure SNAPSHOT CONTROLFILE NAME TO ‘+NEWTST’;

new RMAN configuration parameters:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘+NEWTST’;
new RMAN configuration parameters are successfully stored

RMAN> show all;

RMAN configuration parameters for database with db_unique_name TESTDB2 are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
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 ENCRYPTION ALGORITHM ‘AES128’; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC’ AS OF RELEASE ‘DEFAULT’ OPTIMIZE FOR LOAD TRUE; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘+NEWTST’;

Now try to take backup again. it will work fine.

About The Author

Leave a Reply