I hit error ORA-19563 during rman restore last week.
I was restoring a database backup from Oracle 11.2 on ASM to a Oracle 11.2 on Filesystem.
Although not the same procedure, MOS RMAN Duplicate Fails With RMAN-06136 ORA-19563 (Doc ID 453123.1) helped me on this issue when it mentioned I could have duplicate filenames.
There was duplicated filenames indeed !

My restore script was:
run { set newname for database to '/oradata/%b'; restore database; switch datafile all; }
Which means that datafile 55 was overwritten by datafile 56 hence rman error on switch step.
Quick fix:
- remove datafile 56
- restore only datafile 55 and 56 using set newname clause but specifying different filename:
run { set newname for datafile 55 to '/oradata/svm910t02.dbf'; set newname for datafile 56 to '/oradata/svm910t03.dbf'; restore datafile 55; restore datafile 56; }
- run original script again which this time will just perform the switch step
How to prevent this from happening again ?
- Check if you have duplicate filenames before restoring:
select substr ( file_name, instr( file_name, '/', -1)) file_name, count() from dba_data_files group by substr ( file_name,instr( file_name, '/', -1)) having count() > 1 /
- If yes, run rman restore like this:
run { set newname for datafile 56 to '/oradata/svm910t03.dbf'; set newname for database to '/oradata/%b'; restore database; switch datafile all; }
More information can be found at Oracle 11.2 docs here.