restoring OMF and NON OMF datafiles via RMAN

Problem
if when restoring a database which has a mixture of OMF and NON OMF datafiles
you come across this error

channel c1: ORA-19870: error while restoring backup piece bk_6559_1_906629460
ORA-19504: failed to create file "+ASM_DATA/HFMP/DATAFILE/oddevcontent.dbf"
ORA-17502: ksfdcre:3 Failed to create file +ASM_DATA/HFMP/DATAFILE/oddevcontent.dbf
ORA-15001: diskgroup "ASM_DATA" does not exist or is not mounted
ORA-15001: diskgroup "ASM_DATA" does not exist or is not mounted

failover to previous backup

Recovery catalog is down or not connected to catalog, trying to reconnect.
Reconnection with the recovery catalog is successful.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00601: fatal error in recovery manager
RMAN-03012: fatal error during compilation of command
RMAN-03028: fatal error code for command restore : 600
RMAN-00600: internal error, arguments [7530] [] [] [] []
[orahfm@rac1 (LMT:hfmp1) HFMP_20160329 ] $
[orahfm@rac1 (LMT:hfmp1) HFMP_20160329 ] $

Solution
The solution is to use “SET NEWNAME” when restoring non-OMF files. If using OMF files
then only the DB_CREATE_FILE_DEST needs to be set. But when it is a mixed env you must
use “SET NEWNAME” for all non-OMF datafiles that will be restored.

Eg
set newname for DATAFILE 7 to ‘+PRE_ASM_DATA/HFMP/DATAFILE/oddevcontent.dbf’;
switch DATAFILE 7 to datafilecopy ‘+PRE_ASM_DATA/HFMP/DATAFILE/oddevcontent.dbf’;